Change bloom filter's dependence on size_t.

That type can vary across platforms, but factored in to a bloom
filter's internal state, e.g. size of the seed.
This commit is contained in:
Jon Siwek 2013-08-16 12:39:21 -05:00
parent f7a31ab004
commit 774dadfe9a
7 changed files with 11 additions and 13 deletions

View file

@ -492,10 +492,8 @@ BitVector::size_type BitVector::FindNext(size_type i) const
return block ? bi * bits_per_block + lowest_bit(block) : find_from(bi + 1);
}
size_t BitVector::Hash() const
uint64_t BitVector::Hash() const
{
size_t hash = 0;
u_char buf[SHA256_DIGEST_LENGTH];
SHA256_CTX ctx;
sha256_init(&ctx);
@ -504,7 +502,7 @@ size_t BitVector::Hash() const
sha256_update(&ctx, &bits[i], sizeof(bits[i]));
sha256_final(&ctx, buf);
return *reinterpret_cast<size_t*>(buf); // Use the first bytes as seed.
return *reinterpret_cast<uint64_t*>(buf); // Use the first bytes as seed.
}
BitVector::size_type BitVector::lowest_bit(block_type block)

View file

@ -15,7 +15,7 @@ namespace probabilistic {
*/
class BitVector : public SerialObj {
public:
typedef size_t block_type;
typedef uint64_t block_type;
typedef size_t size_type;
typedef bool const_reference;
@ -281,7 +281,7 @@ public:
*
* @return The hash.
*/
size_t Hash() const;
uint64_t Hash() const;
/**
* Serializes the bit vector.

View file

@ -111,7 +111,7 @@ BasicBloomFilter* BasicBloomFilter::Clone() const
std::string BasicBloomFilter::InternalState() const
{
return fmt("%" PRIu64, (uint64_t)bits->Hash());
return fmt("%" PRIu64, bits->Hash());
}
BasicBloomFilter::BasicBloomFilter()
@ -219,7 +219,7 @@ CountingBloomFilter* CountingBloomFilter::Clone() const
string CountingBloomFilter::InternalState() const
{
return fmt("%" PRIu64, (uint64_t)cells->Hash());
return fmt("%" PRIu64, cells->Hash());
}
IMPLEMENT_SERIAL(CountingBloomFilter, SER_COUNTINGBLOOMFILTER)

View file

@ -153,7 +153,7 @@ CounterVector operator|(const CounterVector& x, const CounterVector& y)
}
size_t CounterVector::Hash() const
uint64_t CounterVector::Hash() const
{
return bits->Hash();
}

View file

@ -131,7 +131,7 @@ public:
*
* @return The hash.
*/
size_t Hash() const;
uint64_t Hash() const;
/**
* Serializes the bit vector.

View file

@ -10,7 +10,7 @@
using namespace probabilistic;
size_t Hasher::MakeSeed(const void* data, size_t size)
uint64_t Hasher::MakeSeed(const void* data, size_t size)
{
u_char buf[SHA256_DIGEST_LENGTH];
SHA256_CTX ctx;
@ -29,7 +29,7 @@ size_t Hasher::MakeSeed(const void* data, size_t size)
}
sha256_final(&ctx, buf);
return *reinterpret_cast<size_t*>(buf); // Use the first bytes as seed.
return *reinterpret_cast<uint64_t*>(buf); // Use the first bytes as seed.
}
Hasher::digest_vector Hasher::Hash(const HashKey* key) const

View file

@ -30,7 +30,7 @@ public:
*
* @return A seed suitable for hashers.
*/
static size_t MakeSeed(const void* data, size_t size);
static uint64_t MakeSeed(const void* data, size_t size);
/**
* Destructor.