A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::Hash::Example::Collider Class Reference

Keep track of collisions. More...

+ Collaboration diagram for ns3::Hash::Example::Collider:

Public Types

enum  Bits { Bits32, Bits64 }
 

Public Member Functions

 Collider (const std::string name, Hasher hash, const enum Bits bits)
 Constructor. More...
 
bool Add (const std::string phrase)
 Add a string to the Collider. More...
 
std::string GetName () const
 
void Report () const
 Print the collisions found. More...
 

Public Attributes

Hasher m_hash
 The hash. More...
 
std::string m_name
 Name of this hash. More...
 

Private Types

typedef std::vector< std::pair
< uint64_t, std::string > > 
collision_t
 Collision map of subsequent instances. More...
 
typedef std::map< uint64_t,
std::string > 
hashdict_t
 Hashed dictionary of first instance of each hash. More...
 

Private Member Functions

uint64_t GetHash (const std::string phrase)
 Get the appropriate hash value. More...
 

Private Attributes

enum Bits m_bits
 Hash function. More...
 
collision_t m_coll
 The list of collisions. More...
 
hashdict_t m_dict
 The dictionary map, indexed by hash. More...
 

Detailed Description

Keep track of collisions.

Definition at line 45 of file hash-example.cc.

Member Typedef Documentation

typedef std::vector< std::pair<uint64_t, std::string> > ns3::Hash::Example::Collider::collision_t
private

Collision map of subsequent instances.

Definition at line 183 of file hash-example.cc.

typedef std::map<uint64_t, std::string> ns3::Hash::Example::Collider::hashdict_t
private

Hashed dictionary of first instance of each hash.

Definition at line 177 of file hash-example.cc.

Member Enumeration Documentation

Enumerator
Bits32 

Use 32-bit hash function.

Bits64 

Use 64-bit hash function.

Definition at line 51 of file hash-example.cc.

Constructor & Destructor Documentation

ns3::Hash::Example::Collider::Collider ( const std::string  name,
Hasher  hash,
const enum Bits  bits 
)
inline

Constructor.

Parameters
[in]nameHash function name
[in]hashHash function
[in]bitsWhich hash length to use

Definition at line 63 of file hash-example.cc.

Member Function Documentation

bool ns3::Hash::Example::Collider::Add ( const std::string  phrase)
inline

Add a string to the Collider.

Parameters
[in]phrasethe string to add
Returns
true if this was a new string

Definition at line 75 of file hash-example.cc.

References GetHash(), m_coll, and m_dict.

+ Here is the call graph for this function:

uint64_t ns3::Hash::Example::Collider::GetHash ( const std::string  phrase)
inlineprivate

Get the appropriate hash value.

Parameters
[in]phrasethe string to hash
Returns
the hash value, using the number of bits set in the constructor

Definition at line 157 of file hash-example.cc.

References Bits32, ns3::Hasher::clear(), ns3::Hasher::GetHash32(), ns3::Hasher::GetHash64(), m_bits, and m_hash.

Referenced by Add().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::string ns3::Hash::Example::Collider::GetName ( void  ) const
inline
Returns
The hash name, including the length

Definition at line 112 of file hash-example.cc.

References Bits32, Bits64, m_bits, and m_name.

Referenced by Report().

+ Here is the caller graph for this function:

void ns3::Hash::Example::Collider::Report ( ) const
inline

Print the collisions found.

Definition at line 126 of file hash-example.cc.

References GetName(), m_coll, and m_dict.

+ Here is the call graph for this function:

Member Data Documentation

enum Bits ns3::Hash::Example::Collider::m_bits
private

Hash function.

Definition at line 174 of file hash-example.cc.

Referenced by GetHash(), and GetName().

collision_t ns3::Hash::Example::Collider::m_coll
private

The list of collisions.

Definition at line 186 of file hash-example.cc.

Referenced by Add(), and Report().

hashdict_t ns3::Hash::Example::Collider::m_dict
private

The dictionary map, indexed by hash.

Definition at line 180 of file hash-example.cc.

Referenced by Add(), and Report().

Hasher ns3::Hash::Example::Collider::m_hash

The hash.

Definition at line 49 of file hash-example.cc.

Referenced by GetHash().

std::string ns3::Hash::Example::Collider::m_name

Name of this hash.

Definition at line 48 of file hash-example.cc.

Referenced by GetName().


The documentation for this class was generated from the following file: