Fnv1a hash function implementation. More...
#include <hash-fnv.h>
Public Member Functions | |
Fnv1a () | |
virtual void | clear (void) |
uint32_t | GetHash32 (const char *buffer, const size_t size) |
uint64_t | GetHash64 (const char *buffer, const size_t size) |
![]() | |
Implementation () | |
virtual | ~Implementation () |
![]() | |
SimpleRefCount () | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
Private Types | |
enum | seed { SEED = 0x8BADF00D } |
Private Attributes | |
uint32_t | m_hash32 |
uint64_t | m_hash64 |
Additional Inherited Members | |
![]() | |
static void | Cleanup (void) |
Fnv1a hash function implementation.
This is the venerable Fowler-Noll-Vo hash, version 1A. (See the FNV page.)
The implementation here is taken directly from the published FNV reference code, with minor modifications to wrap into this class. See the hash-fnv.cc file for details.
Definition at line 47 of file hash-fnv.h.
|
private |
ns3::Hash::Function::Fnv1a::Fnv1a | ( | ) |
Constructor
Definition at line 732 of file hash-fnv.cc.
References clear().
|
virtual |
Restore initial state
Implements ns3::Hash::Implementation.
Definition at line 754 of file hash-fnv.cc.
References FNV1_32A_INIT, FNV1A_64_INIT, m_hash32, and m_hash64.
Referenced by Fnv1a().
|
virtual |
Compute 32-bit hash of a byte buffer
Call clear () between calls to GetHash32() to reset the internal state and hash each buffer separately.
If you don't call clear() between calls to GetHash32, you can hash successive buffers. The final return value will be the cumulative hash across all calls.
[in] | buffer | pointer to the beginning of the buffer |
[in] | size | length of the buffer, in bytes |
Implements ns3::Hash::Implementation.
Definition at line 738 of file hash-fnv.cc.
References ns3::Hash::Function::Fnv1aImplementation::fnv_32a_buf(), and m_hash32.
|
virtual |
Compute 64-bit hash of a byte buffer.
Call clear () between calls to GetHash64() to reset the internal state and hash each buffer separately.
If you don't call clear() between calls to GetHash64, you can hash successive buffers. The final return value will be the cumulative hash across all calls.
[in] | buffer | pointer to the beginning of the buffer |
[in] | size | length of the buffer, in bytes |
Reimplemented from ns3::Hash::Implementation.
Definition at line 746 of file hash-fnv.cc.
References ns3::Hash::Function::Fnv1aImplementation::fnv_64a_buf(), and m_hash64.
|
private |
Cache last hash value, for incremental hashing.
Definition at line 101 of file hash-fnv.h.
Referenced by clear(), and GetHash32().
|
private |
Cache last hash value, for incremental hashing.
Definition at line 102 of file hash-fnv.h.
Referenced by clear(), and GetHash64().