31 #if !UCONFIG_NO_COLLATION 40 class RuleBasedCollator;
41 class CollationKeyByteSink;
161 UBool isBogus(
void)
const;
172 const uint8_t* getByteArray(int32_t& count)
const;
174 #ifdef U_USE_COLLATION_KEY_DEPRECATES 182 uint8_t* toByteArray(int32_t& count)
const;
185 #ifndef U_HIDE_DEPRECATED_API 230 int32_t hashCode(
void)
const;
242 static UClassID U_EXPORT2 getStaticClassID();
250 uint8_t *reallocate(int32_t newCapacity, int32_t length);
254 void setLength(int32_t newLength);
256 uint8_t *getBytes() {
257 return (fFlagAndLength >= 0) ? fUnion.fStackBuffer : fUnion.fFields.fBytes;
259 const uint8_t *getBytes()
const {
260 return (fFlagAndLength >= 0) ? fUnion.fStackBuffer : fUnion.fFields.fBytes;
262 int32_t getCapacity()
const {
263 return (fFlagAndLength >= 0) ? (int32_t)
sizeof(fUnion) : fUnion.fFields.fCapacity;
265 int32_t getLength()
const {
return fFlagAndLength & 0x7fffffff; }
282 friend class CollationKeyByteSink;
295 int32_t fFlagAndLength;
300 mutable int32_t fHashCode;
305 union StackBufferOrFields {
307 uint8_t fStackBuffer[32];
318 return !(*
this == other);
322 CollationKey::isBogus()
const 324 return fHashCode == 2;
327 inline const uint8_t*
328 CollationKey::getByteArray(int32_t &count)
const UCollationResult
UCOL_LESS is returned if source string is compared to be less than target string in the ucol_strcoll(...
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.
#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.
The RuleBasedCollator class provides the implementation of Collator, using data-driven tables...
C++ API: Collation Service.
UBool operator!=(const StringPiece &x, const StringPiece &y)
Global operator != for StringPiece.
virtual UClassID getDynamicClassID() const
ICU4C "poor man's RTTI", returns a UClassID for the actual ICU class.
EComparisonResult
LESS is returned if source string is compared to be less than target string in the compare() method...
Collation keys are generated by the Collator class.
C++ API: Common ICU base class UObject.
#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...
Basic definitions for ICU, for both C and C++ APIs.
UObject is the common ICU "boilerplate" class.
int8_t UBool
The ICU boolean type.