ICU 4.8.1.1
4.8.1.1
|
Base class for string trie builder classes. More...
#include <stringtriebuilder.h>
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) |
Node * | makeNode (int32_t start, int32_t limit, int32_t unitIndex, UErrorCode &errorCode) |
Node * | makeBranchSubNode (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 |
Node * | registerNode (Node *newNode, UErrorCode &errorCode) |
Makes sure that there is only one unique node registered that is equivalent to newNode. | |
Node * | registerFinalValue (int32_t value, UErrorCode &errorCode) |
Makes sure that there is only one unique FinalValueNode registered with this value. | |
virtual Node * | createLinearMatchNode (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 |
Base class for string trie builder classes.
This class is not intended for public subclassing.
Definition at line 56 of file stringtriebuilder.h.
StringTrieBuilder::StringTrieBuilder | ( | ) | [protected] |
This API is for internal use only.
virtual StringTrieBuilder::~StringTrieBuilder | ( | ) | [protected, virtual] |
This API is for internal use only.
void StringTrieBuilder::build | ( | UStringTrieBuildOption | buildOption, |
int32_t | elementsLength, | ||
UErrorCode & | errorCode | ||
) | [protected] |
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] |
This API is for internal use only.
void StringTrieBuilder::createCompactBuilder | ( | int32_t | sizeGuess, |
UErrorCode & | errorCode | ||
) | [protected] |
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] |
This API is for internal use only.
void StringTrieBuilder::deleteCompactBuilder | ( | ) | [protected] |
This API is for internal use only.
static UBool StringTrieBuilder::equalNodes | ( | const void * | left, |
const void * | right | ||
) | [static] |
This API is for internal use only.
virtual int32_t StringTrieBuilder::getElementStringLength | ( | int32_t | i | ) | const [protected, pure virtual] |
This API is for internal use only.
virtual UChar StringTrieBuilder::getElementUnit | ( | int32_t | i, |
int32_t | unitIndex | ||
) | const [protected, pure virtual] |
This API is for internal use only.
virtual int32_t StringTrieBuilder::getElementValue | ( | int32_t | i | ) | const [protected, pure virtual] |
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] |
This API is for internal use only.
virtual int32_t StringTrieBuilder::getMaxBranchLinearSubNodeLength | ( | ) | const [protected, pure virtual] |
This API is for internal use only.
virtual int32_t StringTrieBuilder::getMaxLinearMatchLength | ( | ) | const [protected, pure virtual] |
This API is for internal use only.
virtual int32_t StringTrieBuilder::getMinLinearMatch | ( | ) | const [protected, pure virtual] |
This API is for internal use only.
static UBool StringTrieBuilder::hashNode | ( | const void * | node | ) | [static] |
This API is for internal use only.
virtual int32_t StringTrieBuilder::indexOfElementWithNextUnit | ( | int32_t | i, |
int32_t | unitIndex, | ||
UChar | unit | ||
) | const [protected, pure virtual] |
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] |
This API is for internal use only.
Node* StringTrieBuilder::makeNode | ( | int32_t | start, |
int32_t | limit, | ||
int32_t | unitIndex, | ||
UErrorCode & | errorCode | ||
) | [protected] |
This API is for internal use only.
virtual UBool StringTrieBuilder::matchNodesCanHaveValues | ( | ) | const [protected, pure virtual] |
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.
value | A final value. |
errorCode | ICU in/out UErrorCode. Set to U_MEMORY_ALLOCATION_ERROR if it was success but newNode==NULL. |
Node* StringTrieBuilder::registerNode | ( | Node * | newNode, |
UErrorCode & | errorCode | ||
) | [protected] |
Makes sure that there is only one unique node registered that is equivalent to newNode.
newNode | Input node. The builder takes ownership. |
errorCode | ICU in/out UErrorCode. Set to U_MEMORY_ALLOCATION_ERROR if it was success but newNode==NULL. |
virtual int32_t StringTrieBuilder::skipElementsBySomeUnits | ( | int32_t | i, |
int32_t | unitIndex, | ||
int32_t | count | ||
) | const [protected, pure virtual] |
This API is for internal use only.
virtual int32_t StringTrieBuilder::write | ( | int32_t | unit | ) | [protected, pure virtual] |
This API is for internal use only.
int32_t StringTrieBuilder::writeBranchSubNode | ( | int32_t | start, |
int32_t | limit, | ||
int32_t | unitIndex, | ||
int32_t | length | ||
) | [protected] |
This API is for internal use only.
virtual int32_t StringTrieBuilder::writeDeltaTo | ( | int32_t | jumpTarget | ) | [protected, pure virtual] |
This API is for internal use only.
virtual int32_t StringTrieBuilder::writeElementUnits | ( | int32_t | i, |
int32_t | unitIndex, | ||
int32_t | length | ||
) | [protected, pure virtual] |
This API is for internal use only.
int32_t StringTrieBuilder::writeNode | ( | int32_t | start, |
int32_t | limit, | ||
int32_t | unitIndex | ||
) | [protected] |
This API is for internal use only.
virtual int32_t StringTrieBuilder::writeValueAndFinal | ( | int32_t | i, |
UBool | isFinal | ||
) | [protected, pure virtual] |
This API is for internal use only.
virtual int32_t StringTrieBuilder::writeValueAndType | ( | UBool | hasValue, |
int32_t | value, | ||
int32_t | node | ||
) | [protected, pure virtual] |
This API is for internal use only.
const int32_t StringTrieBuilder::kMaxBranchLinearSubNodeLength = 5 [static, protected] |
This API is for internal use only.
Definition at line 122 of file stringtriebuilder.h.
const int32_t StringTrieBuilder::kMaxSplitBranchLevels = 14 [static, protected] |
This API is for internal use only.
Definition at line 127 of file stringtriebuilder.h.
UHashtable* StringTrieBuilder::nodes [protected] |
This API is for internal use only.
Definition at line 170 of file stringtriebuilder.h.