Stun Server  Compliant with the latest RFCs including 5389, 5769, and 5780
discover the local host's own external IP address
FastHashDynamic< K, V > Class Template Reference

#include <fasthash.h>

Inheritance diagram for FastHashDynamic< K, V >:
Collaboration diagram for FastHashDynamic< K, V >:

Public Types

typedef FastHashBase< K, V >::Item Item
 

Public Member Functions

 FastHashDynamic ()
 
 FastHashDynamic (size_t fsize, size_t tsize)
 
 ~FastHashDynamic ()
 
int InitTable (size_t fsize, size_t tsize)
 
void ResetTable ()
 
- Public Member Functions inherited from FastHashBase< K, V >
 FastHashBase ()
 
 FastHashBase (size_t fsize, size_t tsize, Item *nodelist, ItemNode *itemnodelist, ItemNode **table, int *indexlist)
 
void Init (size_t fsize, size_t tsize, Item *nodelist, ItemNode *itemnodelist, ItemNode **table, int *indexlist)
 
void Reset ()
 
bool IsValid ()
 
size_t Size ()
 
size_t GetMaxCapacity ()
 
size_t GetTableWidth ()
 
int Insert (const K &key, V &value)
 
int Remove (const K &key)
 
V * Lookup (const K &key)
 
bool Exists (const K &key)
 
ItemLookupByIndex (size_t index)
 
V * LookupValueByIndex (size_t index)
 

Protected Types

typedef FastHashBase< K, V >::ItemNode ItemNode
 
typedef FastHashBase< K, V >::ItemNodePtr ItemNodePtr
 
- Protected Types inherited from FastHashBase< K, V >
typedef ItemNodeItemNodePtr
 

Protected Attributes

Item_nodesarray
 
ItemNode_itemnodesarray
 
ItemNodePtr_lookuptablearray
 
int * _indexarray
 
- Protected Attributes inherited from FastHashBase< K, V >
size_t _fsize
 
size_t _tsize
 
Item_nodes
 
ItemNode_itemnodes
 
ItemNode_freelist
 
ItemNodePtr_lookuptable
 
int * _indexlist
 
bool _fIndexValid
 
size_t _indexStart
 
size_t _size
 

Additional Inherited Members

- Protected Member Functions inherited from FastHashBase< K, V >
 FastHashBase (const FastHashBase &)
 
FastHashBaseoperator= (const FastHashBase &)
 
bool operator== (const FastHashBase &)
 
ItemNodeFind (const K &key, size_t *pHashIndex=NULL, ItemNode **ppPrev=NULL)
 
void ReIndex ()
 
void UpdateIndexWithAdd (ItemNode *pNode)
 
void UpdateIndexWithRemove (ItemNode *pNode)
 

Detailed Description

template<class K, class V>
class FastHashDynamic< K, V >

Definition at line 432 of file fasthash.h.

Member Typedef Documentation

template<class K, class V>
typedef FastHashBase<K,V>::Item FastHashDynamic< K, V >::Item

Definition at line 435 of file fasthash.h.

template<class K, class V>
typedef FastHashBase<K,V>::ItemNode FastHashDynamic< K, V >::ItemNode
protected

Definition at line 440 of file fasthash.h.

template<class K, class V>
typedef FastHashBase<K,V>::ItemNodePtr FastHashDynamic< K, V >::ItemNodePtr
protected

Definition at line 441 of file fasthash.h.

Constructor & Destructor Documentation

template<class K, class V>
FastHashDynamic< K, V >::FastHashDynamic ( )
inline

Definition at line 449 of file fasthash.h.

template<class K, class V>
FastHashDynamic< K, V >::FastHashDynamic ( size_t  fsize,
size_t  tsize 
)
inline

Definition at line 457 of file fasthash.h.

template<class K, class V>
FastHashDynamic< K, V >::~FastHashDynamic ( )
inline

Definition at line 466 of file fasthash.h.

Member Function Documentation

template<class K, class V>
int FastHashDynamic< K, V >::InitTable ( size_t  fsize,
size_t  tsize 
)
inline

Definition at line 471 of file fasthash.h.

template<class K, class V>
void FastHashDynamic< K, V >::ResetTable ( )
inline

Definition at line 501 of file fasthash.h.

Member Data Documentation

template<class K, class V>
int* FastHashDynamic< K, V >::_indexarray
protected

Definition at line 445 of file fasthash.h.

template<class K, class V>
ItemNode* FastHashDynamic< K, V >::_itemnodesarray
protected

Definition at line 443 of file fasthash.h.

template<class K, class V>
ItemNodePtr* FastHashDynamic< K, V >::_lookuptablearray
protected

Definition at line 444 of file fasthash.h.

template<class K, class V>
Item* FastHashDynamic< K, V >::_nodesarray
protected

Definition at line 438 of file fasthash.h.


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