ICU 60.1  60.1
Data Structures | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes
icu::StringTrieBuilder Class Referenceabstract

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

#include <stringtriebuilder.h>

Inheritance diagram for icu::StringTrieBuilder:
icu::UObject icu::UMemory icu::BytesTrieBuilder icu::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 char16_t 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, char16_t 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. More...
 
NoderegisterFinalValue (int32_t value, UErrorCode &errorCode)
 Makes sure that there is only one unique FinalValueNode registered with this value. More...
 
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

UHashtablenodes
 

Static Protected Attributes

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

Additional Inherited Members

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

Detailed Description

Base class for string trie builder classes.

This class is not intended for public subclassing.

Stable:
ICU 4.8

Definition at line 63 of file stringtriebuilder.h.

Constructor & Destructor Documentation

◆ StringTrieBuilder()

icu::StringTrieBuilder::StringTrieBuilder ( )
protected
Internal:
Do not use.

This API is for internal use only.

◆ ~StringTrieBuilder()

virtual icu::StringTrieBuilder::~StringTrieBuilder ( )
protectedvirtual
Internal:
Do not use.

This API is for internal use only.

Member Function Documentation

◆ build()

void icu::StringTrieBuilder::build ( UStringTrieBuildOption  buildOption,
int32_t  elementsLength,
UErrorCode errorCode 
)
protected
Internal:
Do not use.

This API is for internal use only.

◆ countElementUnits()

virtual int32_t icu::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.

Referenced by icu::UCharsTrieBuilder::clear().

◆ createCompactBuilder()

void icu::StringTrieBuilder::createCompactBuilder ( int32_t  sizeGuess,
UErrorCode errorCode 
)
protected
Internal:
Do not use.

This API is for internal use only.

◆ createLinearMatchNode()

virtual Node* icu::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.

◆ deleteCompactBuilder()

void icu::StringTrieBuilder::deleteCompactBuilder ( )
protected
Internal:
Do not use.

This API is for internal use only.

◆ equalNodes()

static UBool icu::StringTrieBuilder::equalNodes ( const void *  left,
const void *  right 
)
static
Internal:
Do not use.

This API is for internal use only.

◆ getElementStringLength()

virtual int32_t icu::StringTrieBuilder::getElementStringLength ( int32_t  i) const
protectedpure virtual
Internal:
Do not use.

This API is for internal use only.

Referenced by icu::UCharsTrieBuilder::clear().

◆ getElementUnit()

virtual char16_t icu::StringTrieBuilder::getElementUnit ( int32_t  i,
int32_t  unitIndex 
) const
protectedpure virtual
Internal:
Do not use.

This API is for internal use only.

Referenced by icu::UCharsTrieBuilder::clear().

◆ getElementValue()

virtual int32_t icu::StringTrieBuilder::getElementValue ( int32_t  i) const
protectedpure virtual
Internal:
Do not use.

This API is for internal use only.

Referenced by icu::UCharsTrieBuilder::clear().

◆ getLimitOfLinearMatch()

virtual int32_t icu::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.

Referenced by icu::UCharsTrieBuilder::clear().

◆ getMaxBranchLinearSubNodeLength()

virtual int32_t icu::StringTrieBuilder::getMaxBranchLinearSubNodeLength ( ) const
protectedpure virtual
Internal:
Do not use.

This API is for internal use only.

Referenced by icu::UCharsTrieBuilder::clear().

◆ getMaxLinearMatchLength()

virtual int32_t icu::StringTrieBuilder::getMaxLinearMatchLength ( ) const
protectedpure virtual
Internal:
Do not use.

This API is for internal use only.

Referenced by icu::UCharsTrieBuilder::clear().

◆ getMinLinearMatch()

virtual int32_t icu::StringTrieBuilder::getMinLinearMatch ( ) const
protectedpure virtual
Internal:
Do not use.

This API is for internal use only.

Referenced by icu::UCharsTrieBuilder::clear().

◆ hashNode()

static UBool icu::StringTrieBuilder::hashNode ( const void *  node)
static
Internal:
Do not use.

This API is for internal use only.

◆ indexOfElementWithNextUnit()

virtual int32_t icu::StringTrieBuilder::indexOfElementWithNextUnit ( int32_t  i,
int32_t  unitIndex,
char16_t  unit 
) const
protectedpure virtual
Internal:
Do not use.

This API is for internal use only.

Referenced by icu::UCharsTrieBuilder::clear().

◆ makeBranchSubNode()

Node* icu::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.

◆ makeNode()

Node* icu::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.

◆ matchNodesCanHaveValues()

virtual UBool icu::StringTrieBuilder::matchNodesCanHaveValues ( ) const
protectedpure virtual
Internal:
Do not use.

This API is for internal use only.

Referenced by icu::UCharsTrieBuilder::clear().

◆ registerFinalValue()

Node* icu::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.

◆ registerNode()

Node* icu::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.

◆ skipElementsBySomeUnits()

virtual int32_t icu::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.

Referenced by icu::UCharsTrieBuilder::clear().

◆ write()

virtual int32_t icu::StringTrieBuilder::write ( int32_t  unit)
protectedpure virtual
Internal:
Do not use.

This API is for internal use only.

◆ writeBranchSubNode()

int32_t icu::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.

◆ writeDeltaTo()

virtual int32_t icu::StringTrieBuilder::writeDeltaTo ( int32_t  jumpTarget)
protectedpure virtual
Internal:
Do not use.

This API is for internal use only.

◆ writeElementUnits()

virtual int32_t icu::StringTrieBuilder::writeElementUnits ( int32_t  i,
int32_t  unitIndex,
int32_t  length 
)
protectedpure virtual
Internal:
Do not use.

This API is for internal use only.

◆ writeNode()

int32_t icu::StringTrieBuilder::writeNode ( int32_t  start,
int32_t  limit,
int32_t  unitIndex 
)
protected
Internal:
Do not use.

This API is for internal use only.

◆ writeValueAndFinal()

virtual int32_t icu::StringTrieBuilder::writeValueAndFinal ( int32_t  i,
UBool  isFinal 
)
protectedpure virtual
Internal:
Do not use.

This API is for internal use only.

◆ writeValueAndType()

virtual int32_t icu::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

◆ kMaxBranchLinearSubNodeLength

const int32_t icu::StringTrieBuilder::kMaxBranchLinearSubNodeLength =5
staticprotected
Internal:
Do not use.

This API is for internal use only.

Definition at line 138 of file stringtriebuilder.h.

◆ kMaxSplitBranchLevels

const int32_t icu::StringTrieBuilder::kMaxSplitBranchLevels =14
staticprotected
Internal:
Do not use.

This API is for internal use only.

Definition at line 143 of file stringtriebuilder.h.

◆ nodes

UHashtable* icu::StringTrieBuilder::nodes
protected
Internal:
Do not use.

This API is for internal use only.

Definition at line 187 of file stringtriebuilder.h.


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