Quick Links: |
#include <bslh_spookyhashalgorithm.h>
Public Types | |
enum | { k_SEED_LENGTH = 16 } |
typedef bsls::Types::Uint64 | result_type |
Public Member Functions | |
SpookyHashAlgorithm () | |
SpookyHashAlgorithm (const char *seed) | |
~SpookyHashAlgorithm () | |
void | operator() (const void *data, size_t numBytes) |
result_type | computeHash () |
This class wraps an implementation of the "SpookyHash" hash algorithm in an interface that is usable in the modular hashing system in bslh
.
See Component bslh_spookyhashalgorithm
bslh::SpookyHashAlgorithm::SpookyHashAlgorithm | ( | ) |
Create a SpookyHashAlgorithm
using a default initial seed.
bslh::SpookyHashAlgorithm::SpookyHashAlgorithm | ( | const char * | seed | ) | [explicit] |
Create a bslh::SpookyHashAlgorithm
, seeded with a 128-bit (k_SEED_LENGTH
bytes) seed pointed to by the specified seed
. Each bit of the supplied seed will contribute to the final hash produced by computeHash()
. The behaviour is undefined unless seed
points to at least 16 bytes of initialized memory.
bslh::SpookyHashAlgorithm::~SpookyHashAlgorithm | ( | ) |
Destroy this object.
void bslh::SpookyHashAlgorithm::operator() | ( | const void * | data, | |
size_t | numBytes | |||
) |
Incorporate the specified data
, of at least the specified numBytes
, into the internal state of the hashing algorithm. Every bit of data incorporated into the internal state of the algorithm will contribute to the final hash produced by computeHash()
. The same hash value will be produced regardless of whether a sequence of bytes is passed in all at once or through multiple calls to this member function. Input where numBytes
is 0 will have no effect on the internal state of the algorithm. The behaviour is undefined unless data
points to a valid memory location with at least numBytes
bytes of initialized memory or numBytes
is zero.
result_type bslh::SpookyHashAlgorithm::computeHash | ( | ) |
Return the finalized version of the hash that has been accumulated. Note that this changes the internal state of the object, so calling computeHash()
multiple times in a row will return different results, and only the first result returned will match the expected result of the algorithm. Also note that a value will be returned, even if data has not been passed into operator()