]>
git.proxmox.com Git - ceph.git/blob - ceph/src/rgw/rgw_compression.h
e58d959e294a4e9f64efaa9d76b0089b908efba5
1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
4 #ifndef CEPH_RGW_COMPRESSION_H
5 #define CEPH_RGW_COMPRESSION_H
9 #include "compressor/Compressor.h"
12 class RGWGetObj_Decompress
: public RGWGetObj_Filter
15 CompressorRef compressor
;
16 RGWCompressionInfo
* cs_info
;
18 vector
<compression_block
>::iterator first_block
, last_block
;
24 RGWGetObj_Decompress(CephContext
* cct_
,
25 RGWCompressionInfo
* cs_info_
,
26 bool partial_content_
,
28 ~RGWGetObj_Decompress() override
{}
30 int handle_data(bufferlist
& bl
, off_t bl_ofs
, off_t bl_len
) override
;
31 int fixup_range(off_t
& ofs
, off_t
& end
) override
;
35 class RGWPutObj_Compress
: public RGWPutObj_Filter
38 bool compressed
{false};
39 CompressorRef compressor
;
40 std::vector
<compression_block
> blocks
;
42 RGWPutObj_Compress(CephContext
* cct_
, CompressorRef compressor
,
43 RGWPutObjDataProcessor
* next
)
44 : RGWPutObj_Filter(next
), cct(cct_
), compressor(compressor
) {}
45 ~RGWPutObj_Compress() override
{}
46 int handle_data(bufferlist
& bl
, off_t ofs
, void **phandle
, rgw_raw_obj
*pobj
, bool *again
) override
;
48 bool is_compressed() { return compressed
; }
49 vector
<compression_block
>& get_compression_blocks() { return blocks
; }
51 }; /* RGWPutObj_Compress */
53 #endif /* CEPH_RGW_COMPRESSION_H */