]>
git.proxmox.com Git - ceph.git/blob - ceph/src/rgw/rgw_compression.h
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
;
23 RGWGetObj_Decompress(CephContext
* cct_
,
24 RGWCompressionInfo
* cs_info_
,
25 bool partial_content_
,
27 ~RGWGetObj_Decompress() override
{}
29 int handle_data(bufferlist
& bl
, off_t bl_ofs
, off_t bl_len
) override
;
30 int fixup_range(off_t
& ofs
, off_t
& end
) override
;
34 class RGWPutObj_Compress
: public RGWPutObj_Filter
37 bool compressed
{false};
38 CompressorRef compressor
;
39 std::vector
<compression_block
> blocks
;
41 RGWPutObj_Compress(CephContext
* cct_
, CompressorRef compressor
,
42 RGWPutObjDataProcessor
* next
)
43 : RGWPutObj_Filter(next
), cct(cct_
), compressor(compressor
) {}
44 ~RGWPutObj_Compress() override
{}
45 int handle_data(bufferlist
& bl
, off_t ofs
, void **phandle
, rgw_raw_obj
*pobj
, bool *again
) override
;
47 bool is_compressed() { return compressed
; }
48 vector
<compression_block
>& get_compression_blocks() { return blocks
; }
50 }; /* RGWPutObj_Compress */
52 #endif /* CEPH_RGW_COMPRESSION_H */