MCPcopy Create free account
hub / github.com/ElementsProject/elements / EncodeTo

Method EncodeTo

src/leveldb/db/version_edit.cc:41–84  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

39}
40
41void VersionEdit::EncodeTo(std::string* dst) const {
42 if (has_comparator_) {
43 PutVarint32(dst, kComparator);
44 PutLengthPrefixedSlice(dst, comparator_);
45 }
46 if (has_log_number_) {
47 PutVarint32(dst, kLogNumber);
48 PutVarint64(dst, log_number_);
49 }
50 if (has_prev_log_number_) {
51 PutVarint32(dst, kPrevLogNumber);
52 PutVarint64(dst, prev_log_number_);
53 }
54 if (has_next_file_number_) {
55 PutVarint32(dst, kNextFileNumber);
56 PutVarint64(dst, next_file_number_);
57 }
58 if (has_last_sequence_) {
59 PutVarint32(dst, kLastSequence);
60 PutVarint64(dst, last_sequence_);
61 }
62
63 for (size_t i = 0; i < compact_pointers_.size(); i++) {
64 PutVarint32(dst, kCompactPointer);
65 PutVarint32(dst, compact_pointers_[i].first); // level
66 PutLengthPrefixedSlice(dst, compact_pointers_[i].second.Encode());
67 }
68
69 for (const auto& deleted_file_kvp : deleted_files_) {
70 PutVarint32(dst, kDeletedFile);
71 PutVarint32(dst, deleted_file_kvp.first); // level
72 PutVarint64(dst, deleted_file_kvp.second); // file number
73 }
74
75 for (size_t i = 0; i < new_files_.size(); i++) {
76 const FileMetaData& f = new_files_[i].second;
77 PutVarint32(dst, kNewFile);
78 PutVarint32(dst, new_files_[i].first); // level
79 PutVarint64(dst, f.number);
80 PutVarint64(dst, f.file_size);
81 PutLengthPrefixedSlice(dst, f.smallest.Encode());
82 PutLengthPrefixedSlice(dst, f.largest.Encode());
83 }
84}
85
86static bool GetInternalKey(Slice* input, InternalKey* dst) {
87 Slice str;

Callers 5

NewDBMethod · 0.45
WriteDescriptorMethod · 0.45
TestEncodeDecodeFunction · 0.45
LogAndApplyMethod · 0.45
WriteSnapshotMethod · 0.45

Calls 5

PutVarint32Function · 0.85
PutLengthPrefixedSliceFunction · 0.85
PutVarint64Function · 0.85
sizeMethod · 0.45
EncodeMethod · 0.45

Tested by 1

TestEncodeDecodeFunction · 0.36