]>
git.proxmox.com Git - ceph.git/blob - ceph/src/rgw/rgw_compression_types.h
1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab ft=cpp
5 * Ceph - scalable distributed file system
7 * Copyright (C) 2019 Red Hat, Inc.
9 * This is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License version 2.1, as published by the Free Software
12 * Foundation. See file COPYING.
18 #include "rgw_common.h"
20 struct compression_block
{
25 void encode(bufferlist
& bl
) const {
26 ENCODE_START(1, 1, bl
);
33 void decode(bufferlist::const_iterator
& bl
) {
40 void dump(Formatter
*f
) const;
42 WRITE_CLASS_ENCODER(compression_block
)
44 struct RGWCompressionInfo
{
45 std::string compression_type
;
47 boost::optional
<int32_t> compressor_message
;
48 std::vector
<compression_block
> blocks
;
50 RGWCompressionInfo() : compression_type("none"), orig_size(0) {}
51 RGWCompressionInfo(const RGWCompressionInfo
& cs_info
) : compression_type(cs_info
.compression_type
),
52 orig_size(cs_info
.orig_size
),
53 compressor_message(cs_info
.compressor_message
),
54 blocks(cs_info
.blocks
) {}
56 void encode(bufferlist
& bl
) const {
57 ENCODE_START(2, 1, bl
);
58 encode(compression_type
, bl
);
59 encode(orig_size
, bl
);
60 encode(compressor_message
, bl
);
65 void decode(bufferlist::const_iterator
& bl
) {
67 decode(compression_type
, bl
);
68 decode(orig_size
, bl
);
70 decode(compressor_message
, bl
);
75 void dump(Formatter
*f
) const;
77 WRITE_CLASS_ENCODER(RGWCompressionInfo
)