ICU 60.1  60.1
Data Structures | Public Member Functions
icu::BytesTrieBuilder Class Reference

Builder class for BytesTrie. More...

#include <bytestriebuilder.h>

Inheritance diagram for icu::BytesTrieBuilder:
icu::StringTrieBuilder icu::UObject icu::UMemory

Public Member Functions

 BytesTrieBuilder (UErrorCode &errorCode)
 Constructs an empty builder. More...
 
virtual ~BytesTrieBuilder ()
 Destructor. More...
 
BytesTrieBuilderadd (StringPiece s, int32_t value, UErrorCode &errorCode)
 Adds a (byte sequence, value) pair. More...
 
BytesTriebuild (UStringTrieBuildOption buildOption, UErrorCode &errorCode)
 Builds a BytesTrie for the add()ed data. More...
 
StringPiece buildStringPiece (UStringTrieBuildOption buildOption, UErrorCode &errorCode)
 Builds a BytesTrie for the add()ed data and byte-serializes it. More...
 
BytesTrieBuilderclear ()
 Removes all (byte sequence, value) pairs. More...
 
- 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...
 

Additional Inherited Members

- Static Public Member Functions inherited from icu::StringTrieBuilder
static UBool hashNode (const void *node)
 
static UBool equalNodes (const void *left, const void *right)
 
- Protected Member Functions inherited from icu::StringTrieBuilder
 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)
 
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...
 
- Protected Attributes inherited from icu::StringTrieBuilder
UHashtablenodes
 
- Static Protected Attributes inherited from icu::StringTrieBuilder
static const int32_t kMaxBranchLinearSubNodeLength =5
 
static const int32_t kMaxSplitBranchLevels =14
 

Detailed Description

Builder class for BytesTrie.

This class is not intended for public subclassing.

Stable:
ICU 4.8

Definition at line 40 of file bytestriebuilder.h.

Constructor & Destructor Documentation

◆ BytesTrieBuilder()

icu::BytesTrieBuilder::BytesTrieBuilder ( UErrorCode errorCode)

Constructs an empty builder.

Parameters
errorCodeStandard ICU error code.
Stable:
ICU 4.8

◆ ~BytesTrieBuilder()

virtual icu::BytesTrieBuilder::~BytesTrieBuilder ( )
virtual

Destructor.

Stable:
ICU 4.8

Member Function Documentation

◆ add()

BytesTrieBuilder& icu::BytesTrieBuilder::add ( StringPiece  s,
int32_t  value,
UErrorCode errorCode 
)

Adds a (byte sequence, value) pair.

The byte sequence must be unique. The bytes will be copied; the builder does not keep a reference to the input StringPiece or its data().

Parameters
sThe input byte sequence.
valueThe value associated with this byte sequence.
errorCodeStandard ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.)
Returns
*this
Stable:
ICU 4.8

◆ build()

BytesTrie* icu::BytesTrieBuilder::build ( UStringTrieBuildOption  buildOption,
UErrorCode errorCode 
)

Builds a BytesTrie for the add()ed data.

Once built, no further data can be add()ed until clear() is called.

A BytesTrie cannot be empty. At least one (byte sequence, value) pair must have been add()ed.

This method passes ownership of the builder's internal result array to the new trie object. Another call to any build() variant will re-serialize the trie. After clear() has been called, a new array will be used as well.

Parameters
buildOptionBuild option, see UStringTrieBuildOption.
errorCodeStandard ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.)
Returns
A new BytesTrie for the add()ed data.
Stable:
ICU 4.8

◆ buildStringPiece()

StringPiece icu::BytesTrieBuilder::buildStringPiece ( UStringTrieBuildOption  buildOption,
UErrorCode errorCode 
)

Builds a BytesTrie for the add()ed data and byte-serializes it.

Once built, no further data can be add()ed until clear() is called.

A BytesTrie cannot be empty. At least one (byte sequence, value) pair must have been add()ed.

Multiple calls to buildStringPiece() return StringPieces referring to the builder's same byte array, without rebuilding. If buildStringPiece() is called after build(), the trie will be re-serialized into a new array. If build() is called after buildStringPiece(), the trie object will become the owner of the previously returned array. After clear() has been called, a new array will be used as well.

Parameters
buildOptionBuild option, see UStringTrieBuildOption.
errorCodeStandard ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.)
Returns
A StringPiece which refers to the byte-serialized BytesTrie for the add()ed data.
Stable:
ICU 4.8

◆ clear()

BytesTrieBuilder& icu::BytesTrieBuilder::clear ( )

Removes all (byte sequence, value) pairs.

New data can then be add()ed and a new trie can be built.

Returns
*this
Stable:
ICU 4.8

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