void bluestore_extent_ref_map_t::encode(bufferlist& bl) const
{
- ENCODE_START(1, 1, bl);
- ::encode(ref_map, bl);
- ENCODE_FINISH(bl);
+ uint32_t n = ref_map.size();
+ small_encode_varint(n, bl);
+ for (auto& p : ref_map) {
+ small_encode_varint_lowz(p.first, bl);
+ p.second.encode(bl);
+ }
}
void bluestore_extent_ref_map_t::decode(bufferlist::iterator& p)
{
- DECODE_START(1, p);
- ::decode(ref_map, p);
- DECODE_FINISH(p);
+ uint32_t n;
+ small_decode_varint(n, p);
+ while (n--) {
+ uint64_t offset;
+ small_decode_varint_lowz(offset, p);
+ ref_map[offset].decode(p);
+ }
}
void bluestore_extent_ref_map_t::dump(Formatter *f) const
void bluestore_blob_t::encode(bufferlist& bl) const
{
ENCODE_START(1, 1, bl);
- ::encode(extents, bl);
- ::encode(compressed_length, bl);
- ::encode(flags, bl);
- ::encode(csum_type, bl);
- ::encode(csum_chunk_order, bl);
+ small_encode_obj(extents, bl);
+ small_encode_varint_lowz(compressed_length, bl);
+ small_encode_varint(flags, bl);
+ small_encode_varint(csum_type, bl);
+ small_encode_varint(csum_chunk_order, bl);
::encode(ref_map, bl);
::encode(unused, bl);
- ::encode(csum_data, bl);
+ small_encode_buf_lowz(csum_data, bl);
ENCODE_FINISH(bl);
}
void bluestore_blob_t::decode(bufferlist::iterator& p)
{
DECODE_START(1, p);
- ::decode(extents, p);
- ::decode(compressed_length, p);
- ::decode(flags, p);
- ::decode(csum_type, p);
- ::decode(csum_chunk_order, p);
+ small_decode_obj(extents, p);
+ small_decode_varint_lowz(compressed_length, p);
+ small_decode_varint(flags, p);
+ small_decode_varint(csum_type, p);
+ small_decode_varint(csum_chunk_order, p);
::decode(ref_map, p);
::decode(unused, p);
- ::decode(csum_data, p);
+ small_decode_buf_lowz(csum_data, p);
DECODE_FINISH(p);
}
#include "include/types.h"
#include "include/interval_set.h"
#include "include/utime.h"
+#include "include/small_encoding.h"
#include "common/hobject.h"
namespace ceph {
}
void encode(bufferlist& bl) const {
- ::encode(offset, bl);
- ::encode(length, bl);
+ small_encode_lba(offset, bl);
+ small_encode_varint_lowz(length, bl);
}
void decode(bufferlist::iterator& p) {
- ::decode(offset, p);
- ::decode(length, p);
+ small_decode_lba(offset, p);
+ small_decode_varint_lowz(length, p);
}
void dump(Formatter *f) const;
static void generate_test_instances(list<bluestore_pextent_t*>& ls);
uint32_t refs;
record_t(uint32_t l=0, uint32_t r=0) : length(l), refs(r) {}
void encode(bufferlist& bl) const {
- ::encode(length, bl);
- ::encode(refs, bl);
+ small_encode_varint_lowz(length, bl);
+ small_encode_varint(refs, bl);
}
void decode(bufferlist::iterator& p) {
- ::decode(length, p);
- ::decode(refs, p);
+ small_decode_varint_lowz(length, p);
+ small_decode_varint(refs, p);
}
};
WRITE_CLASS_ENCODER(record_t)