#include <hash.h>
UniqueHasher allows to compute a 128-bit UniqueHash from a sequence of values. The values are passed to the hasher using a series of calls to Combine() functions. At the end, the Finalize() function returns the final hash value.
Computing the hash value through a series of calls is slower than a one-shot computation of a single byte block using UniqueHash::GetUniqueHashCode(). For better performance, you should prefer the one-shot computation if possible.
Public Types | |
using | ValueType = UniqueHash |
Public Member Functions | |
UniqueHasher () | |
void | Combine (const Block< const Byte > &bytes) |
void | Combine (const Byte *ptr, Int count) |
void | Combine (const UniqueHash &value) |
template<typename HASH = DefaultCompare, typename T > | |
void | CombineHash (const T &value) |
UniqueHash | Finalize () const |
operator UniqueHash () const | |
Private Attributes | |
UInt64 | _state [72] |
using ValueType = UniqueHash |
void CombineHash | ( | const T & | value | ) |
Mixes a hash value of the given value into the hasher state. If value's type T is trivially hashable, the raw bytes of value are used for mixing. Otherwise the hash value returned by {HASH::GetUniqueHashCode(value)} is used.
[in] | value | A hash value. |
|
private |