ICU 49.1.1  49.1.1
Data Structures | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes
StringTrieBuilder Class Reference

Base class for string trie builder classes. More...

#include <stringtriebuilder.h>

Inheritance diagram for StringTrieBuilder:
UObject UMemory BytesTrieBuilder UCharsTrieBuilder

Data Structures

class  BranchHeadNode
class  BranchNode
class  FinalValueNode
class  IntermediateValueNode
class  LinearMatchNode
class  ListBranchNode
class  Node
class  SplitBranchNode
class  ValueNode

Static Public Member Functions

static UBool hashNode (const void *node)
static UBool equalNodes (const void *left, const void *right)

Protected Member Functions

 StringTrieBuilder ()
virtual ~StringTrieBuilder ()
void createCompactBuilder (int32_t sizeGuess, UErrorCode &errorCode)
void deleteCompactBuilder ()
void build (UStringTrieBuildOption buildOption, int32_t elementsLength, UErrorCode &errorCode)
int32_t writeNode (int32_t start, int32_t limit, int32_t unitIndex)
int32_t writeBranchSubNode (int32_t start, int32_t limit, int32_t unitIndex, int32_t length)
NodemakeNode (int32_t start, int32_t limit, int32_t unitIndex, UErrorCode &errorCode)
NodemakeBranchSubNode (int32_t start, int32_t limit, int32_t unitIndex, int32_t length, UErrorCode &errorCode)
virtual int32_t getElementStringLength (int32_t i) const =0
virtual UChar getElementUnit (int32_t i, int32_t unitIndex) const =0
virtual int32_t getElementValue (int32_t i) const =0
virtual int32_t getLimitOfLinearMatch (int32_t first, int32_t last, int32_t unitIndex) const =0
virtual int32_t countElementUnits (int32_t start, int32_t limit, int32_t unitIndex) const =0
virtual int32_t skipElementsBySomeUnits (int32_t i, int32_t unitIndex, int32_t count) const =0
virtual int32_t indexOfElementWithNextUnit (int32_t i, int32_t unitIndex, UChar unit) const =0
virtual UBool matchNodesCanHaveValues () const =0
virtual int32_t getMaxBranchLinearSubNodeLength () const =0
virtual int32_t getMinLinearMatch () const =0
virtual int32_t getMaxLinearMatchLength () const =0
NoderegisterNode (Node *newNode, UErrorCode &errorCode)
 Makes sure that there is only one unique node registered that is equivalent to newNode.
NoderegisterFinalValue (int32_t value, UErrorCode &errorCode)
 Makes sure that there is only one unique FinalValueNode registered with this value.
virtual NodecreateLinearMatchNode (int32_t i, int32_t unitIndex, int32_t length, Node *nextNode) const =0
virtual int32_t write (int32_t unit)=0
virtual int32_t writeElementUnits (int32_t i, int32_t unitIndex, int32_t length)=0
virtual int32_t writeValueAndFinal (int32_t i, UBool isFinal)=0
virtual int32_t writeValueAndType (UBool hasValue, int32_t value, int32_t node)=0
virtual int32_t writeDeltaTo (int32_t jumpTarget)=0

Protected Attributes

UHashtable * nodes

Static Protected Attributes

static const int32_t kMaxBranchLinearSubNodeLength = 5
static const int32_t kMaxSplitBranchLevels = 14

Additional Inherited Members

- Public Member Functions inherited from UObject
virtual ~UObject ()
 Destructor.
virtual UClassID getDynamicClassID () const =0
 ICU4C "poor man's RTTI", returns a UClassID for the actual ICU class.

Detailed Description

Base class for string trie builder classes.

This class is not intended for public subclassing.

Stable:
ICU 4.8

Definition at line 56 of file stringtriebuilder.h.

Constructor & Destructor Documentation

StringTrieBuilder::StringTrieBuilder ( )
protected
Internal:
Do not use. This API is for internal use only.
virtual StringTrieBuilder::~StringTrieBuilder ( )
protectedvirtual
Internal:
Do not use. This API is for internal use only.

Member Function Documentation

void StringTrieBuilder::build ( UStringTrieBuildOption  buildOption,
int32_t  elementsLength,
UErrorCode errorCode 
)
protected
Internal:
Do not use. This API is for internal use only.
virtual int32_t StringTrieBuilder::countElementUnits ( int32_t  start,
int32_t  limit,
int32_t  unitIndex 
) const
protectedpure virtual
Internal:
Do not use. This API is for internal use only.
void StringTrieBuilder::createCompactBuilder ( int32_t  sizeGuess,
UErrorCode errorCode 
)
protected
Internal:
Do not use. This API is for internal use only.
virtual Node* StringTrieBuilder::createLinearMatchNode ( int32_t  i,
int32_t  unitIndex,
int32_t  length,
Node nextNode 
) const
protectedpure virtual
Internal:
Do not use. This API is for internal use only.
void StringTrieBuilder::deleteCompactBuilder ( )
protected
Internal:
Do not use. This API is for internal use only.
static UBool StringTrieBuilder::equalNodes ( const void *  left,
const void *  right 
)
static
Internal:
Do not use. This API is for internal use only.
virtual int32_t StringTrieBuilder::getElementStringLength ( int32_t  i) const
protectedpure virtual
Internal:
Do not use. This API is for internal use only.
virtual UChar StringTrieBuilder::getElementUnit ( int32_t  i,
int32_t  unitIndex 
) const
protectedpure virtual
Internal:
Do not use. This API is for internal use only.
virtual int32_t StringTrieBuilder::getElementValue ( int32_t  i) const
protectedpure virtual
Internal:
Do not use. This API is for internal use only.
virtual int32_t StringTrieBuilder::getLimitOfLinearMatch ( int32_t  first,
int32_t  last,
int32_t  unitIndex 
) const
protectedpure virtual
Internal:
Do not use. This API is for internal use only.
virtual int32_t StringTrieBuilder::getMaxBranchLinearSubNodeLength ( ) const
protectedpure virtual
Internal:
Do not use. This API is for internal use only.
virtual int32_t StringTrieBuilder::getMaxLinearMatchLength ( ) const
protectedpure virtual
Internal:
Do not use. This API is for internal use only.
virtual int32_t StringTrieBuilder::getMinLinearMatch ( ) const
protectedpure virtual
Internal:
Do not use. This API is for internal use only.
static UBool StringTrieBuilder::hashNode ( const void *  node)
static
Internal:
Do not use. This API is for internal use only.
virtual int32_t StringTrieBuilder::indexOfElementWithNextUnit ( int32_t  i,
int32_t  unitIndex,
UChar  unit 
) const
protectedpure virtual
Internal:
Do not use. This API is for internal use only.
Node* StringTrieBuilder::makeBranchSubNode ( int32_t  start,
int32_t  limit,
int32_t  unitIndex,
int32_t  length,
UErrorCode errorCode 
)
protected
Internal:
Do not use. This API is for internal use only.
Node* StringTrieBuilder::makeNode ( int32_t  start,
int32_t  limit,
int32_t  unitIndex,
UErrorCode errorCode 
)
protected
Internal:
Do not use. This API is for internal use only.
virtual UBool StringTrieBuilder::matchNodesCanHaveValues ( ) const
protectedpure virtual
Internal:
Do not use. This API is for internal use only.
Node* StringTrieBuilder::registerFinalValue ( int32_t  value,
UErrorCode errorCode 
)
protected

Makes sure that there is only one unique FinalValueNode registered with this value.

Avoids creating a node if the value is a duplicate.

Parameters
valueA final value.
errorCodeICU in/out UErrorCode. Set to U_MEMORY_ALLOCATION_ERROR if it was success but newNode==NULL.
Returns
A FinalValueNode with the given value.
Internal:
Do not use. This API is for internal use only.
Node* StringTrieBuilder::registerNode ( Node newNode,
UErrorCode errorCode 
)
protected

Makes sure that there is only one unique node registered that is equivalent to newNode.

Parameters
newNodeInput node. The builder takes ownership.
errorCodeICU in/out UErrorCode. Set to U_MEMORY_ALLOCATION_ERROR if it was success but newNode==NULL.
Returns
newNode if it is the first of its kind, or an equivalent node if newNode is a duplicate.
Internal:
Do not use. This API is for internal use only.
virtual int32_t StringTrieBuilder::skipElementsBySomeUnits ( int32_t  i,
int32_t  unitIndex,
int32_t  count 
) const
protectedpure virtual
Internal:
Do not use. This API is for internal use only.
virtual int32_t StringTrieBuilder::write ( int32_t  unit)
protectedpure virtual
Internal:
Do not use. This API is for internal use only.
int32_t StringTrieBuilder::writeBranchSubNode ( int32_t  start,
int32_t  limit,
int32_t  unitIndex,
int32_t  length 
)
protected
Internal:
Do not use. This API is for internal use only.
virtual int32_t StringTrieBuilder::writeDeltaTo ( int32_t  jumpTarget)
protectedpure virtual
Internal:
Do not use. This API is for internal use only.
virtual int32_t StringTrieBuilder::writeElementUnits ( int32_t  i,
int32_t  unitIndex,
int32_t  length 
)
protectedpure virtual
Internal:
Do not use. This API is for internal use only.
int32_t StringTrieBuilder::writeNode ( int32_t  start,
int32_t  limit,
int32_t  unitIndex 
)
protected
Internal:
Do not use. This API is for internal use only.
virtual int32_t StringTrieBuilder::writeValueAndFinal ( int32_t  i,
UBool  isFinal 
)
protectedpure virtual
Internal:
Do not use. This API is for internal use only.
virtual int32_t StringTrieBuilder::writeValueAndType ( UBool  hasValue,
int32_t  value,
int32_t  node 
)
protectedpure virtual
Internal:
Do not use. This API is for internal use only.

Field Documentation

const int32_t StringTrieBuilder::kMaxBranchLinearSubNodeLength = 5
staticprotected
Internal:
Do not use. This API is for internal use only.

Definition at line 131 of file stringtriebuilder.h.

const int32_t StringTrieBuilder::kMaxSplitBranchLevels = 14
staticprotected
Internal:
Do not use. This API is for internal use only.

Definition at line 136 of file stringtriebuilder.h.

UHashtable* StringTrieBuilder::nodes
protected
Internal:
Do not use. This API is for internal use only.

Definition at line 179 of file stringtriebuilder.h.


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