MCPcopy Create free account
hub / github.com/chen3feng/toft / Insert

Method Insert

container/bloom_filter.cpp:192–209  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

190}
191
192void BloomFilter::Insert(const void *key, size_t len)
193{
194 uint32_t digest[4];
195 for (size_t i = 0; i < m_num_hash_functions; ++i)
196 {
197 if (i % 4 == 0)
198 {
199 if (i != 0) // use original key at first time
200 MurmurHash3_x86_128(digest, 16, i, digest);
201 else
202 MurmurHash3_x86_128(key, len, 0, digest);
203 }
204
205 uint32_t bit_index = m_divisor.Modulu(digest[i % 4]);
206 assert(bit_index == digest[i % 4] % m_num_bits);
207 m_bitmap[bit_index / CHAR_BIT] |= (1 << (bit_index % CHAR_BIT));
208 }
209}
210
211bool BloomFilter::InsertUnique(const void *key, size_t len)
212{

Callers

nothing calls this directly

Calls 3

MurmurHash3_x86_128Function · 0.85
MurmurHash2AFunction · 0.85
ModuluMethod · 0.80

Tested by

no test coverage detected