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

Method GenerateFilter

src/leveldb/table/filter_block.cc:51–75  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

49}
50
51void FilterBlockBuilder::GenerateFilter() {
52 const size_t num_keys = start_.size();
53 if (num_keys == 0) {
54 // Fast path if there are no keys for this filter
55 filter_offsets_.push_back(result_.size());
56 return;
57 }
58
59 // Make list of keys from flattened key structure
60 start_.push_back(keys_.size()); // Simplify length computation
61 tmp_keys_.resize(num_keys);
62 for (size_t i = 0; i < num_keys; i++) {
63 const char* base = keys_.data() + start_[i];
64 size_t length = start_[i + 1] - start_[i];
65 tmp_keys_[i] = Slice(base, length);
66 }
67
68 // Generate filter for current set of keys and append to result_.
69 filter_offsets_.push_back(result_.size());
70 policy_->CreateFilter(&tmp_keys_[0], static_cast<int>(num_keys), &result_);
71
72 tmp_keys_.clear();
73 keys_.clear();
74 start_.clear();
75}
76
77FilterBlockReader::FilterBlockReader(const FilterPolicy* policy,
78 const Slice& contents)

Callers

nothing calls this directly

Calls 7

SliceClass · 0.50
sizeMethod · 0.45
push_backMethod · 0.45
resizeMethod · 0.45
dataMethod · 0.45
CreateFilterMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected