19 #if !UCONFIG_NO_COLLATION
26 #ifndef U_HIDE_INTERNAL_API
31 #define KEY_BUFFER_SIZE 64
37 #define CELIST_BUFFER_SIZE 4
51 #define STRING_LIST_BUFFER_SIZE 16
109 uint32_t
get(int32_t index)
const;
122 UBool matchesAt(int32_t offset,
const CEList *other)
const;
133 uint32_t &operator[](int32_t index)
const;
154 #ifdef INSTRUMENT_CELIST
155 static int32_t _active;
156 static int32_t _histogram[10];
230 int32_t size()
const;
248 #ifdef INSTRUMENT_STRING_LIST
249 static int32_t _lists;
250 static int32_t _strings;
251 static int32_t _histogram[101];
259 class StringToCEsMap;
260 class CEToStringsMap;
263 #ifndef U_HIDE_INTERNAL_API
309 static void close(
CollData *collData);
331 const StringList *getStringList(int32_t ce)
const;
353 void freeCEList(
const CEList *list);
366 int32_t minLengthInChars(
const CEList *ces, int32_t offset)
const;
388 int32_t minLengthInChars(
const CEList *ces, int32_t offset, int32_t *history)
const;
413 static void freeCollDataCache();
422 static void flushCollDataCache();
425 friend class CollDataCache;
426 friend class CollDataCacheEntry;
433 static char *getCollatorKey(
UCollator *collator,
char *buffer, int32_t bufferLength);
435 static CollDataCache *getCollDataCache();
438 StringToCEsMap *charsToCEList;
439 CEToStringsMap *ceToCharsStartingWith;
444 static CollDataCache *collDataCache;
449 uint32_t jamoLimits[4];
455 #endif // #if !UCONFIG_NO_COLLATION
456 #endif // #ifndef COLL_DATA_H
virtual UClassID getDynamicClassID() const =0
ICU4C "poor man's RTTI", returns a UClassID for the actual ICU class.
This object holds a list of CEs generated from a particular UnicodeString
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside...
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
#define KEY_BUFFER_SIZE
The size of the internal buffer for the Collator's short description string.
C++ API: Common ICU base class UObject.
uint16_t UChar
Define UChar to be UCHAR_TYPE, if that is #defined (for example, to char16_t), or wchar_t if that is ...
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers...
struct UCollator UCollator
structure representing a collator object instance
#define CELIST_BUFFER_SIZE
The size of the internal CE buffer in a CEList object.
Basic definitions for ICU, for both C and C++ APIs.
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
UObject is the common ICU "boilerplate" class.
int8_t UBool
The ICU boolean type.