ICU 4.8.1.1  4.8.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

Detailed Description

Base class for string trie builder classes.

This class is not intended for public subclassing.

Draft:
This API may be changed in the future versions and was introduced in ICU 4.8

Definition at line 56 of file stringtriebuilder.h.


Constructor & Destructor Documentation

Internal:
Do not use.

This API is for internal use only.

virtual StringTrieBuilder::~StringTrieBuilder ( ) [protected, virtual]
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 [protected, pure 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 [protected, pure virtual]
Internal:
Do not use.

This API is for internal use only.

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 [protected, pure virtual]
Internal:
Do not use.

This API is for internal use only.

virtual UChar StringTrieBuilder::getElementUnit ( int32_t  i,
int32_t  unitIndex 
) const [protected, pure virtual]
Internal:
Do not use.

This API is for internal use only.

virtual int32_t StringTrieBuilder::getElementValue ( int32_t  i) const [protected, pure 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 [protected, pure virtual]
Internal:
Do not use.

This API is for internal use only.

virtual int32_t StringTrieBuilder::getMaxBranchLinearSubNodeLength ( ) const [protected, pure virtual]
Internal:
Do not use.

This API is for internal use only.

virtual int32_t StringTrieBuilder::getMaxLinearMatchLength ( ) const [protected, pure virtual]
Internal:
Do not use.

This API is for internal use only.

virtual int32_t StringTrieBuilder::getMinLinearMatch ( ) const [protected, pure 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 [protected, pure 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 [protected, pure 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 [protected, pure virtual]
Internal:
Do not use.

This API is for internal use only.

virtual int32_t StringTrieBuilder::write ( int32_t  unit) [protected, pure 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) [protected, pure 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 
) [protected, pure 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 
) [protected, pure 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 
) [protected, pure virtual]
Internal:
Do not use.

This API is for internal use only.


Field Documentation

Internal:
Do not use.

This API is for internal use only.

Definition at line 122 of file stringtriebuilder.h.

const int32_t StringTrieBuilder::kMaxSplitBranchLevels = 14 [static, protected]
Internal:
Do not use.

This API is for internal use only.

Definition at line 127 of file stringtriebuilder.h.

UHashtable* StringTrieBuilder::nodes [protected]
Internal:
Do not use.

This API is for internal use only.

Definition at line 170 of file stringtriebuilder.h.


The documentation for this class was generated from the following file:
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines