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... | |
Public Member Functions inherited from ns3::Hash::Implementation | |
Implementation () | |
Constructor. More... | |
virtual | ~Implementation () |
Destructor. More... | |
virtual uint32_t | GetHash32 (const char *buffer, const std::size_t size)=0 |
Compute 32-bit hash of a byte buffer. More... | |
virtual uint64_t | GetHash64 (const char *buffer, const std::size_t size) |
Compute 64-bit hash of a byte buffer. More... | |
Public Member Functions inherited from ns3::SimpleRefCount< Implementation > | |
SimpleRefCount () | |
Default constructor. More... | |
SimpleRefCount (const SimpleRefCount &o[[maybe_unused]]) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= ([[maybe_unused]] const SimpleRefCount &o) |
Assignment operator. 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... | |
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 53 of file hash-fnv.h.
|
private |
ns3::Hash::Function::Fnv1a::Fnv1a | ( | ) |
Constructor.
Definition at line 749 of file hash-fnv.cc.
References clear().
|
virtual |
Restore initial state.
Implements ns3::Hash::Implementation.
Definition at line 771 of file hash-fnv.cc.
References FNV1_32A_INIT, FNV1A_64_INIT, m_hash32, and m_hash64.
Referenced by Fnv1a().
uint32_t ns3::Hash::Function::Fnv1a::GetHash32 | ( | const char * | buffer, |
const size_t | size | ||
) |
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 |
Definition at line 755 of file hash-fnv.cc.
References ns3::Hash::Function::Fnv1aImplementation::fnv_32a_buf(), and m_hash32.
uint64_t ns3::Hash::Function::Fnv1a::GetHash64 | ( | const char * | buffer, |
const size_t | size | ||
) |
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 |
Definition at line 763 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 105 of file hash-fnv.h.
Referenced by clear(), and GetHash32().
|
private |
Cache last hash value, for incremental hashing.
Definition at line 106 of file hash-fnv.h.
Referenced by clear(), and GetHash64().