A Discrete-Event Network Simulator
API
Hash Functions

Generic Hash function interface. More...

+ Collaboration diagram for Hash Functions:

Modules

 FNV Hash Implementation
 
 Hash test suite
 
 Murmur3 Hash Implementation
 

Files

file  hash-example.cc
 Example usage of ns3::Hash.
 
file  hash-fnv.cc
 ns3::Hash::Function::Fnv1a implementation.
 
file  hash-fnv.h
 ns3::Hash::Function::Fnv1a declaration.
 
file  hash-function.cc
 ns3::Hash::Implementation::GetHash64 default implementation.
 
file  hash-function.h
 ns3::Hash::Implementation, ns3::Hash::Function::Hash32 and ns3::Hash::Function::Hash64 declarations.
 
file  hash-murmur3.cc
 ns3::Hash::Function::Murmur3 implementation.
 
file  hash-murmur3.h
 ns3::Hash::Function::Murmur3 declaration.
 
file  hash-test-suite.cc
 Hash test suite.
 
file  hash.cc
 ns3::Hasher implementation.
 
file  hash.h
 ns3::Hasher, ns3::Hash32() and ns3::Hash64() function declarations.
 

Namespaces

namespace  ns3::Hash
 Hash function implementations.
 
namespace  ns3::Hash::Example
 Namespace for hasher-example.
 
namespace  ns3::Hash::Function
 Hash functions.
 

Classes

class  ns3::Hash::Function::Fnv1a
 Fnv1a hash function implementation. More...
 
class  ns3::Hash::Function::Hash32
 Template for creating a Hash::Implementation from a 32-bit hash function. More...
 
class  ns3::Hash::Function::Hash64
 Template for creating a Hash::Implementation from a 64-bit hash function. More...
 
class  ns3::Hasher
 Generic Hash function interface. More...
 
class  ns3::Hash::Implementation
 Hash function implementation base class. More...
 
class  ns3::Hash::Function::Murmur3
 Murmur3 hash function implementation. More...
 

Functions

uint32_t ns3::Hash32 (const char *buffer, const std::size_t size)
 Compute 32-bit hash of a byte buffer, using the default hash function. More...
 
uint32_t ns3::Hash32 (const std::string s)
 Compute 32-bit hash of a string, using the default hash function. More...
 
uint64_t ns3::Hash64 (const char *buffer, const std::size_t size)
 Compute 64-bit hash of a byte buffer, using the default hash function. More...
 
uint64_t ns3::Hash64 (const std::string s)
 Compute 64-bit hash of a string, using the default hash function. More...
 
typedef uint32_t(* ns3::Hash::Hash32Function_ptr) (const char *, const std::size_t)
 Function pointer signatures for basic hash functions. More...
 
typedef uint64_t(* ns3::Hash::Hash64Function_ptr) (const char *, const std::size_t)
 Function pointer signatures for basic hash functions. More...
 

Detailed Description

Generic Hash function interface.

See Hasher for main entry point. See hash-example.cc for example usage.

Typedef Documentation

◆ Hash32Function_ptr

typedef uint32_t(* ns3::Hash::Hash32Function_ptr) (const char *, const std::size_t)

Function pointer signatures for basic hash functions.

See Hash::Function::Hash32 or Hash::Function::Hash64

Definition at line 113 of file hash-function.h.

◆ Hash64Function_ptr

typedef uint64_t(* ns3::Hash::Hash64Function_ptr) (const char *, const std::size_t)

Function pointer signatures for basic hash functions.

See Hash::Function::Hash32 or Hash::Function::Hash64

Definition at line 114 of file hash-function.h.

Function Documentation

◆ Hash32() [1/2]

uint32_t ns3::Hash32 ( const char *  buffer,
const std::size_t  size 
)
inline

Compute 32-bit hash of a byte buffer, using the default hash function.

Parameters
[in]bufferPointer to the beginning of the buffer.
[in]sizeLength of the buffer, in bytes.
Returns
32-bit hash of the buffer.

Definition at line 282 of file hash.h.

References ns3::Hasher::GetHash32(), and ns3::GetStaticHash().

Referenced by ns3::tests::DefaultHashTestCase::DoRun(), ns3::ArpQueueDiscItem::Hash(), ns3::Ipv4QueueDiscItem::Hash(), ns3::Ipv6QueueDiscItem::Hash(), and ns3::Ipv4L3Protocol::UpdateDuplicate().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Hash32() [2/2]

uint32_t ns3::Hash32 ( const std::string  s)
inline

Compute 32-bit hash of a string, using the default hash function.

Parameters
[in]sString to hash.
Returns
32-bit hash of the string.

Definition at line 296 of file hash.h.

References ns3::Hasher::GetHash32(), and ns3::GetStaticHash().

+ Here is the call graph for this function:

◆ Hash64() [1/2]

uint64_t ns3::Hash64 ( const char *  buffer,
const std::size_t  size 
)
inline

Compute 64-bit hash of a byte buffer, using the default hash function.

Parameters
[in]bufferPointer to the beginning of the buffer.
[in]sizeLength of the buffer, in bytes.
Returns
64-bit hash of the buffer.

Definition at line 289 of file hash.h.

References ns3::Hasher::GetHash64(), and ns3::GetStaticHash().

Referenced by ns3::tests::DefaultHashTestCase::DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Hash64() [2/2]

uint64_t ns3::Hash64 ( const std::string  s)
inline

Compute 64-bit hash of a string, using the default hash function.

Parameters
[in]sString to hash.
Returns
64-bit hash of the string.

Definition at line 303 of file hash.h.

References ns3::Hasher::GetHash64(), and ns3::GetStaticHash().

+ Here is the call graph for this function: