38 #if U_SHOW_CPLUSPLUS_API 40 #if !UCONFIG_NO_COLLATION 52 class CharacterIterator;
53 class CollationIterator;
54 class RuleBasedCollator;
131 NULLORDER = (int32_t)0xffffffff
200 static inline int32_t primaryOrder(int32_t order);
208 static inline int32_t secondaryOrder(int32_t order);
216 static inline int32_t tertiaryOrder(int32_t order);
227 int32_t getMaxExpansion(int32_t order)
const;
235 int32_t strengthOrder(int32_t order)
const;
259 static inline UBool isIgnorable(int32_t order);
266 int32_t getOffset(
void)
const;
275 void setOffset(int32_t newOffset,
UErrorCode& status);
289 static UClassID U_EXPORT2 getStaticClassID();
291 #ifndef U_HIDE_INTERNAL_API 308 #endif // U_HIDE_INTERNAL_API 312 friend class UCollationPCE;
357 inline int8_t normalizeDir()
const {
return dir_ == 1 ? 0 : dir_; }
361 static int32_t getMaxExpansion(
const UHashtable *maxExpansions, int32_t order);
365 CollationIterator *iter_;
366 const RuleBasedCollator *rbc_;
380 UnicodeString string_;
385 inline int32_t CollationElementIterator::primaryOrder(int32_t order)
387 return (order >> 16) & 0xffff;
390 inline int32_t CollationElementIterator::secondaryOrder(int32_t order)
392 return (order >> 8) & 0xff;
395 inline int32_t CollationElementIterator::tertiaryOrder(int32_t order)
400 inline UBool CollationElementIterator::isIgnorable(int32_t order)
402 return (order & 0xffff0000) == 0;
struct UHashtable UHashtable
bool operator!=(const StringPiece &x, const StringPiece &y)
Global operator != for StringPiece.
static CollationElementIterator * fromUCollationElements(UCollationElements *uc)
const UCollationElements * toUCollationElements() const
U_EXPORT UBool operator==(const StringPiece &x, const StringPiece &y)
Global operator == for StringPiece.
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
struct UCollationElements UCollationElements
The UCollationElements struct.
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside...
The RuleBasedCollator class provides the implementation of Collator, using data-driven tables...
static const CollationElementIterator * fromUCollationElements(const UCollationElements *uc)
Abstract class that defines an API for iteration on text objects.
The CollationElementIterator class is used as an iterator to walk through each character of an inter...
virtual UClassID getDynamicClassID() const
ICU4C "poor man's RTTI", returns a UClassID for the actual ICU class.
UCollationElements * toUCollationElements()
C++ API: Common ICU base class UObject.
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
#define U_FINAL
Defined to the C++11 "final" keyword if available.
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, a signed-byte integer.