Go to the documentation of this file.
28 #if U_SHOW_CPLUSPLUS_API
35 #if !UCONFIG_NO_COLLATION
44 class RuleBasedCollator;
45 class CollationKeyByteSink;
165 UBool isBogus(
void)
const;
176 const uint8_t* getByteArray(int32_t& count)
const;
178 #ifdef U_USE_COLLATION_KEY_DEPRECATES
186 uint8_t* toByteArray(int32_t& count)
const;
189 #ifndef U_HIDE_DEPRECATED_API
254 uint8_t *reallocate(int32_t newCapacity, int32_t length);
258 void setLength(int32_t newLength);
260 uint8_t *getBytes() {
261 return (fFlagAndLength >= 0) ? fUnion.fStackBuffer : fUnion.fFields.fBytes;
263 const uint8_t *getBytes()
const {
264 return (fFlagAndLength >= 0) ? fUnion.fStackBuffer : fUnion.fFields.fBytes;
266 int32_t getCapacity()
const {
267 return (fFlagAndLength >= 0) ? (int32_t)
sizeof(fUnion) : fUnion.fFields.fCapacity;
269 int32_t getLength()
const {
return fFlagAndLength & 0x7fffffff; }
275 CollationKey& setToBogus(
void);
280 CollationKey& reset(
void);
286 friend class CollationKeyByteSink;
299 int32_t fFlagAndLength;
304 mutable int32_t fHashCode;
309 union StackBufferOrFields {
311 uint8_t fStackBuffer[32];
322 return !(*
this == other);
326 CollationKey::isBogus()
const
328 return fHashCode == 2;
331 inline const uint8_t*
332 CollationKey::getByteArray(int32_t &count)
const
C++ API: Collation Service.
CollationKey(const CollationKey &other)
Copy constructor.
Collation keys are generated by the Collator class.
Basic definitions for ICU, for both C and C++ APIs.
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside.
int8_t UBool
The ICU boolean type.
virtual ~CollationKey()
Sort key destructor.
UBool operator==(const CollationKey &source) const
Compare if two collation keys are the same.
UCollationResult
UCOL_LESS is returned if source string is compared to be less than target string in the ucol_strcoll(...
CollationKey()
This creates an empty collation key based on the null string.
UObject is the common ICU "boilerplate" class.
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
CollationKey(const uint8_t *values, int32_t count)
Creates a collation key based on the collation key values.
The RuleBasedCollator class provides the implementation of Collator, using data-driven tables.
UCollationResult compareTo(const CollationKey &target, UErrorCode &status) const
Convenience method which does a string(bit-wise) comparison of the two collation keys.
UBool operator!=(const StringPiece &x, const StringPiece &y)
Global operator != for StringPiece.
int32_t hashCode(void) const
Creates an integer that is unique to the collation key.
Collator::EComparisonResult compareTo(const CollationKey &target) const
Convenience method which does a string(bit-wise) comparison of the two collation keys.
virtual UClassID getDynamicClassID() const
ICU "poor man's RTTI", returns a UClassID for the actual class.
static UClassID getStaticClassID()
ICU "poor man's RTTI", returns a UClassID for this class.
const CollationKey & operator=(const CollationKey &other)
Assignment operator.
C++ API: Common ICU base class UObject.
EComparisonResult
LESS is returned if source string is compared to be less than target string in the compare() method.