Fnv1a hash function implementation. More...
#include <hash-fnv.h>
Public Member Functions | |
Fnv1a () | |
Constructor. More... | |
virtual void | clear (void) |
Restore initial state. More... | |
uint32_t | GetHash32 (const char *buffer, const size_t size) |
Compute 32-bit hash of a byte buffer. More... | |
uint64_t | GetHash64 (const char *buffer, const size_t size) |
Compute 64-bit hash of a byte buffer. More... | |
![]() | |
Implementation () | |
Constructor. More... | |
virtual | ~Implementation () |
Destructor. More... | |
![]() | |
SimpleRefCount () | |
Constructor. More... | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) const |
Decrement the reference count. More... | |
Private Types | |
enum | seed { SEED = 0x8BADF00D } |
Seed value. More... | |
Private Attributes | |
uint32_t | m_hash32 |
Cache last hash value, for incremental hashing. More... | |
uint64_t | m_hash64 |
Cache last hash value, for incremental hashing. More... | |
Additional Inherited Members | |
![]() | |
static void | Cleanup (void) |
Noop. More... | |
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 733 of file hash-fnv.cc.
References clear().
|
virtual |
Restore initial state.
Implements ns3::Hash::Implementation.
Definition at line 755 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 739 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 747 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().