typedef XalanVector<const XalanDOMString*> XalanDOMStringHashTable::BucketType |
XalanDOMStringHashTable::XalanDOMStringHashTable | ( | MemoryManagerType & | theManager, | |
size_t | theBucketCount = eDefaultBucketCount , |
|||
bucket_size_type | theBucketSize = eDefaultBucketSize | |||
) | [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. |
XalanDOMStringHashTable::~XalanDOMStringHashTable | ( | ) |
void XalanDOMStringHashTable::clear | ( | ) |
Clear the hash table.
size_t XalanDOMStringHashTable::size | ( | ) | const |
Get the number of strings in the table.
size_t XalanDOMStringHashTable::bucketCount | ( | ) | const |
Get the number of buckets in the table.
void XalanDOMStringHashTable::getBucketCounts | ( | BucketCountsType & | theVector | ) | const |
Get the size of each of the buckets in the table.
A | vector to return the bucket counts. |
size_t XalanDOMStringHashTable::collisions | ( | ) | const |
Get the collision count.
Release builds will always return 0.
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 an unsigned int to get the bucket index |
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. |
MemoryManagerType& XalanDOMStringHashTable::getMemoryManager | ( | ) |
const MemoryManagerType& XalanDOMStringHashTable::getMemoryManager | ( | ) | const |
The documentation for this class was generated from the following file:
Doxygen and GraphViz are used to generate this API documentation from the Xalan-C header files.
![]() |
Xalan-C++ XSLT Processor Version 1.10 |
|