13 #if !UCONFIG_NO_NORMALIZATION
27 #ifndef CANITER_SKIP_ZEROES
28 #define CANITER_SKIP_ZEROES TRUE
35 class Normalizer2Impl;
119 #ifndef U_HIDE_INTERNAL_API
171 int32_t pieces_length;
172 int32_t *pieces_lengths;
176 int32_t current_length;
182 const Normalizer2Impl &nfcImpl;
188 Hashtable *getEquivalents2(Hashtable *fillinResult,
const UChar *segment, int32_t segLen,
UErrorCode &status);
197 Hashtable *extract(Hashtable *fillinResult,
UChar32 comp,
const UChar *segment, int32_t segLen, int32_t segmentPos,
UErrorCode &status);
This class allows one to iterate through all the strings that are canonically equivalent to a given s...
UnicodeString next()
Get the next canonically equivalent string.
virtual UClassID getDynamicClassID() const
ICU "poor man's RTTI", returns a UClassID for the actual class.
void reset()
Resets the iterator so that one can start again from the beginning.
CanonicalIterator(const UnicodeString &source, UErrorCode &status)
Construct a CanonicalIterator object.
void setSource(const UnicodeString &newSource, UErrorCode &status)
Set a new source for this iterator.
UnicodeString getSource()
Gets the NFD form of the current source we are iterating over.
static UClassID getStaticClassID()
ICU "poor man's RTTI", returns a UClassID for this class.
static void permute(UnicodeString &source, UBool skipZeros, Hashtable *result, UErrorCode &status)
Dumb recursive implementation of permutation.
virtual ~CanonicalIterator()
Destructor Cleans pieces.
Unicode normalization functionality for standard Unicode normalization or for using custom mapping ta...
UObject is the common ICU "boilerplate" class.
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
int32_t UChar32
Define UChar32 as a type for single Unicode code points.
int8_t UBool
The ICU boolean type.
uint16_t UChar
Define UChar to be UCHAR_TYPE, if that is #defined (for example, to char16_t), or wchar_t if that is ...
C++ API: Common ICU base class UObject.
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
Basic definitions for ICU, for both C and C++ APIs.
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers,...
#define U_COMMON_API
Set to export library symbols from inside the common library, and to import them from outside.
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.