#include <XalanDOMStringHashTable.hpp>
Public Types | |
enum | { eDefaultBucketCount = 101, eDefaultBucketSize = 15 } |
typedef XalanVector< const XalanDOMString * > | BucketType |
typedef BucketType::size_type | bucket_size_type |
typedef XalanVector< bucket_size_type > | BucketCountsType |
typedef ExplicitMemoryManagedConstructionTraits< BucketType > | ConstructionTraits |
typedef XalanVector< BucketType, ConstructionTraits > | BucketVectorType |
Public Member Functions | |
XalanDOMStringHashTable (MemoryManager &theManager, size_t theBucketCount=eDefaultBucketCount, bucket_size_type theBucketSize=eDefaultBucketSize) | |
Create a hash table. More... | |
~XalanDOMStringHashTable () | |
void | clear () |
Clear the hash table. More... | |
size_t | size () const |
Get the number of strings in the table. More... | |
size_t | bucketCount () const |
Get the number of buckets in the table. More... | |
void | getBucketCounts (BucketCountsType &theVector) const |
Get the size of each of the buckets in the table. More... | |
size_t | collisions () const |
Get the collision count. More... | |
const XalanDOMString * | find (const XalanDOMString &theString, size_t *theBucketIndex=0) const |
Find a string. More... | |
const XalanDOMString * | find (const XalanDOMChar *theString, XalanDOMString::size_type theLength=XalanDOMString::npos, size_t *theBucketIndex=0) const |
Find a string. More... | |
void | insert (const XalanDOMString &theString) |
Insert a pointer to a string into the table. More... | |
void | insert (const XalanDOMString &theString, size_t theBucketIndex) |
Insert a pointer to a string into the table. More... | |
MemoryManager & | getMemoryManager () |
const MemoryManager & | getMemoryManager () const |
Definition at line 40 of file XalanDOMStringHashTable.hpp.
Definition at line 45 of file XalanDOMStringHashTable.hpp.
Definition at line 46 of file XalanDOMStringHashTable.hpp.
typedef XalanVector<const XalanDOMString*> XalanDOMStringHashTable::BucketType |
Definition at line 44 of file XalanDOMStringHashTable.hpp.
Definition at line 48 of file XalanDOMStringHashTable.hpp.
typedef ExplicitMemoryManagedConstructionTraits<BucketType> XalanDOMStringHashTable::ConstructionTraits |
Definition at line 47 of file XalanDOMStringHashTable.hpp.
anonymous enum |
Enumerator | |
---|---|
eDefaultBucketCount | |
eDefaultBucketSize |
Definition at line 50 of file XalanDOMStringHashTable.hpp.
|
explicit |
Create a hash table.
theBucketCount | The number of buckets to use for the hash table. This should be a prime number for best results. |
theBucketSize | The initial size of each bucket in the hash table. |
|
inline |
Definition at line 65 of file XalanDOMStringHashTable.hpp.
|
inline |
Get the number of buckets in the table.
Definition at line 90 of file XalanDOMStringHashTable.hpp.
void XalanDOMStringHashTable::clear | ( | ) |
Clear the hash table.
|
inline |
Get the collision count.
Release builds will always return 0.
Definition at line 110 of file XalanDOMStringHashTable.hpp.
const XalanDOMString* XalanDOMStringHashTable::find | ( | const XalanDOMString & | theString, |
size_t * | theBucketIndex = 0 |
||
) | const |
Find a string.
If the string is not found, return null.
theString | The string to find. |
theBucketIndex | The index of the bucket for the string. |
const XalanDOMString* XalanDOMStringHashTable::find | ( | const XalanDOMChar * | theString, |
XalanDOMString::size_type | theLength = XalanDOMString::npos , |
||
size_t * | theBucketIndex = 0 |
||
) | const |
Find a string.
If the string is not found, return null. If theBucketIndex is not null, the variable pointed to will be updated with the bucket index that was calculated for the string. This index can be used in a later call to insert() to avoid recalculating the index.
theString | The string to find. |
theLength | The number of characters in the string. |
theBucketIndex | A pointer to a parameter to get the bucket index |
void XalanDOMStringHashTable::getBucketCounts | ( | BucketCountsType & | theVector | ) | const |
Get the size of each of the buckets in the table.
A | vector to return the bucket counts. |
|
inline |
Definition at line 181 of file XalanDOMStringHashTable.hpp.
|
inline |
Definition at line 187 of file XalanDOMStringHashTable.hpp.
void XalanDOMStringHashTable::insert | ( | const XalanDOMString & | theString | ) |
Insert a pointer to a string into the table.
If the string is already present, the string will still be added, but it will never be found, since it will be placed after the identical string.
Note that this class only stores a pointer to a XalanDOMString. It's expected that the string will be allocated and managed outside of the hash table.
theString | The string to insert. |
void XalanDOMStringHashTable::insert | ( | const XalanDOMString & | theString, |
size_t | theBucketIndex | ||
) |
Insert a pointer to a string into the table.
If the string is already present, the string will still be added, but it will never be found, since it will be placed after the identical string. theBucketIndex must be the index returned from a previous call to find. If not, then the behavior is undefined. This is meant as an optimization to avoid re-hashing the string.
Note that this class only stores a pointer to a XalanDOMString. It's expected that the string will be allocated and managed outside of the hash table.
theString | The string to insert. |
theBucketIndex | The index of the bucket for the string. |
|
inline |
Get the number of strings in the table.
Definition at line 79 of file XalanDOMStringHashTable.hpp.
Doxygen and GraphViz are used to generate this API documentation from the Xalan-C header files.
Xalan-C++ XSLT Processor Version 1.11 |
|