GClasses
GClasses::GConstStringToIndexHashTable Class Reference

Detailed Description

Hash table based on keys of constant strings (or at least strings that won't change during the lifetime of the hash table). It's a good idea to use a GHeap in connection with this class.

#include <GHashTable.h>

Inheritance diagram for GClasses::GConstStringToIndexHashTable:
GClasses::GHashTableBase

Public Member Functions

 GConstStringToIndexHashTable (size_t nInitialBucketCount, bool bCaseSensitive)
 
virtual ~GConstStringToIndexHashTable ()
 
void add (const char *pKey, size_t nValue)
 Adds a key and value pair to the hash table. The key should be a constant string (or at least a string that won't change over the lifetime of the hash table). The GHeap class provides a good place to store such a string. More...
 
virtual bool areKeysEqual (const char *pKey1, const char *pKey2)
 Returns true iff the two keys are equal. More...
 
bool get (const char *pKey, size_t *pValue)
 Gets the value for the specified key. More...
 
bool get (const char *pKey, size_t nLen, size_t *pValue)
 Gets the value for the specified key. More...
 
virtual size_t hash (const char *pKey, size_t nBucketCount)
 Computes a hash of the key. More...
 
void remove (const char *pKey)
 Removes an entry from the hash table. More...
 
- Public Member Functions inherited from GClasses::GHashTableBase
virtual ~GHashTableBase ()
 
size_t revisionNumber ()
 Returns a number that changes when the contents of this table are modified (This is useful for detecting invalidated iterators) More...
 
size_t size ()
 Returns the number of items in this hash table. More...
 

Protected Attributes

bool m_bCaseSensitive
 
- Protected Attributes inherited from GClasses::GHashTableBase
size_t m_nBucketCount
 
size_t m_nCount
 
size_t m_nModCount
 
struct HashBucketm_pBuckets
 
struct HashBucketm_pFirstEmpty
 

Additional Inherited Members

- Protected Member Functions inherited from GClasses::GHashTableBase
 GHashTableBase (size_t nInitialBucketCount)
 
void _Add (const char *pKey, const void *pValue)
 Adds a key/value pair to the hash table. More...
 
size_t _Count (const char *pKey)
 Returns the number of values with the specified key. More...
 
template<class T >
bool _Get (const char *pKey, T **pOutValue)
 Returns true and the first occurrence of a value with the specified key if one exists. More...
 
void _Remove (const char *pKey)
 Removes the first found occurrence of the specified key. More...
 
void _Resize (size_t nNewSize)
 

Constructor & Destructor Documentation

GClasses::GConstStringToIndexHashTable::GConstStringToIndexHashTable ( size_t  nInitialBucketCount,
bool  bCaseSensitive 
)
inline
virtual GClasses::GConstStringToIndexHashTable::~GConstStringToIndexHashTable ( )
inlinevirtual

Member Function Documentation

void GClasses::GConstStringToIndexHashTable::add ( const char *  pKey,
size_t  nValue 
)
inline

Adds a key and value pair to the hash table. The key should be a constant string (or at least a string that won't change over the lifetime of the hash table). The GHeap class provides a good place to store such a string.

virtual bool GClasses::GConstStringToIndexHashTable::areKeysEqual ( const char *  pKey1,
const char *  pKey2 
)
inlinevirtual

Returns true iff the two keys are equal.

Implements GClasses::GHashTableBase.

bool GClasses::GConstStringToIndexHashTable::get ( const char *  pKey,
size_t *  pValue 
)
inline

Gets the value for the specified key.

bool GClasses::GConstStringToIndexHashTable::get ( const char *  pKey,
size_t  nLen,
size_t *  pValue 
)

Gets the value for the specified key.

virtual size_t GClasses::GConstStringToIndexHashTable::hash ( const char *  pKey,
size_t  nBucketCount 
)
inlinevirtual

Computes a hash of the key.

Implements GClasses::GHashTableBase.

void GClasses::GConstStringToIndexHashTable::remove ( const char *  pKey)
inline

Removes an entry from the hash table.

Member Data Documentation

bool GClasses::GConstStringToIndexHashTable::m_bCaseSensitive
protected