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

Method DecodeFrom

src/leveldb/db/version_edit.cc:105–203  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

103}
104
105Status VersionEdit::DecodeFrom(const Slice& src) {
106 Clear();
107 Slice input = src;
108 const char* msg = nullptr;
109 uint32_t tag;
110
111 // Temporary storage for parsing
112 int level;
113 uint64_t number;
114 FileMetaData f;
115 Slice str;
116 InternalKey key;
117
118 while (msg == nullptr && GetVarint32(&input, &tag)) {
119 switch (tag) {
120 case kComparator:
121 if (GetLengthPrefixedSlice(&input, &str)) {
122 comparator_ = str.ToString();
123 has_comparator_ = true;
124 } else {
125 msg = "comparator name";
126 }
127 break;
128
129 case kLogNumber:
130 if (GetVarint64(&input, &log_number_)) {
131 has_log_number_ = true;
132 } else {
133 msg = "log number";
134 }
135 break;
136
137 case kPrevLogNumber:
138 if (GetVarint64(&input, &prev_log_number_)) {
139 has_prev_log_number_ = true;
140 } else {
141 msg = "previous log number";
142 }
143 break;
144
145 case kNextFileNumber:
146 if (GetVarint64(&input, &next_file_number_)) {
147 has_next_file_number_ = true;
148 } else {
149 msg = "next file number";
150 }
151 break;
152
153 case kLastSequence:
154 if (GetVarint64(&input, &last_sequence_)) {
155 has_last_sequence_ = true;
156 } else {
157 msg = "last sequence number";
158 }
159 break;
160
161 case kCompactPointer:
162 if (GetLevel(&input, &level) && GetInternalKey(&input, &key)) {

Callers 9

BuildTableFunction · 0.45
TESTFunction · 0.45
DoCompactionWorkMethod · 0.45
GetInternalKeyFunction · 0.45
ScanTableMethod · 0.45
TestEncodeDecodeFunction · 0.45
VersionEditPrinterFunction · 0.45
RecoverMethod · 0.45
WriteSnapshotMethod · 0.45

Calls 10

GetVarint32Function · 0.85
GetVarint64Function · 0.85
GetLevelFunction · 0.85
GetInternalKeyFunction · 0.85
CorruptionFunction · 0.85
GetLengthPrefixedSliceFunction · 0.70
ToStringMethod · 0.45
push_backMethod · 0.45
insertMethod · 0.45
emptyMethod · 0.45

Tested by 2

TESTFunction · 0.36
TestEncodeDecodeFunction · 0.36