Xalan-C++ API Documentation

The Xalan C++ XSLT Processor Version 1.10

Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

XalanDOMStringHashTable Class Reference

#include <XalanDOMStringHashTable.hpp>

Collaboration diagram for XalanDOMStringHashTable:

Collaboration graph
[legend]
List of all members.

Public Types

Public Methods


Member Typedef Documentation

typedef XalanVector< bucket_size_type > XalanDOMStringHashTable::BucketCountsType<bucket_size_type>
 

typedef XalanVector< const XalanDOMString *> XalanDOMStringHashTable::BucketType<const XalanDOMString*>
 

typedef BucketType::size_type XalanDOMStringHashTable::bucket_size_type
 


Member Enumeration Documentation

anonymous enum
 

Enumeration values:
eDefaultBucketCount  
eDefaultBucketSize  


Constructor & Destructor Documentation

XalanDOMStringHashTable::XalanDOMStringHashTable ( MemoryManagerType & theManager,
size_t theBucketCount = eDefaultBucketCount,
bucket_size_type theBucketSize = eDefaultBucketSize ) [explicit]
 

Create a hash table.

Parameters:
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 ( )
 


Member Function Documentation

size_t XalanDOMStringHashTable::bucketCount ( ) const
 

Get the number of buckets in the table.

Returns:
The number of buckets in the table

void XalanDOMStringHashTable::clear ( )
 

Clear the hash table.

size_t XalanDOMStringHashTable::collisions ( ) const
 

Get the collision count.

Release builds will always return 0.

Returns:
The number of collisions. Valid only for non-release builds.

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.

Parameters:
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
Returns:
a pointer to the string, or null if not found.

const XalanDOMString * XalanDOMStringHashTable::find ( const XalanDOMString & theString,
size_t * theBucketIndex = 0 ) const
 

Find a string.

If the string is not found, return null.

Parameters:
theString   The string to find.
theBucketIndex   The index of the bucket for the string.
Returns:
a pointer to the string, or null if not found.

void XalanDOMStringHashTable::getBucketCounts ( BucketCountsType & theVector ) const
 

Get the size of each of the buckets in the table.

Parameters:
A   vector to return the bucket counts.

const MemoryManagerType & XalanDOMStringHashTable::getMemoryManager ( ) const
 

MemoryManagerType & XalanDOMStringHashTable::getMemoryManager ( )
 

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.

Parameters:
theString   The string to insert.
theBucketIndex   The index of the bucket for the string.

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.

Parameters:
theString   The string to insert.

size_t XalanDOMStringHashTable::size ( ) const
 

Get the number of strings in the table.

Returns:
The number of strings in the table


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

Interpreting class diagrams

Doxygen and GraphViz are used to generate this API documentation from the Xalan-C header files.

dot

Xalan-C++ XSLT Processor Version 1.10
Copyright © 1999-2004 The Apache Software Foundation. All Rights Reserved.

Apache Logo