65 #if !UCONFIG_NO_COLLATION
74 struct CollationCacheEntry;
76 struct CollationSettings;
77 struct CollationTailoring;
85 class CollationElementIterator;
87 class SortKeyByteSink;
164 #ifndef U_HIDE_INTERNAL_API
257 using Collator::compare;
310 const UChar* target, int32_t targetLength,
379 int32_t sourceLength,
416 #ifndef U_HIDE_DEPRECATED_API
433 int32_t getMaxExpansion(int32_t order)
const;
459 static UClassID U_EXPORT2 getStaticClassID(
void);
461 #ifndef U_HIDE_DEPRECATED_API
472 uint8_t *cloneRuleData(int32_t &length,
UErrorCode &status)
const;
485 int32_t cloneBinary(uint8_t *buffer, int32_t capacity,
UErrorCode &status)
const;
629 int32_t resultLength)
const;
648 uint8_t *result, int32_t resultLength)
const;
664 int32_t destCapacity,
679 int32_t reorderCodesLength,
687 const char *left, int32_t leftLength,
688 const char *right, int32_t rightLength,
725 uint8_t *dest, int32_t count,
UErrorCode &errorCode)
const;
733 #ifndef U_HIDE_INTERNAL_API
754 void internalGetContractionsAndExpansions(
769 void internalBuildTailoring(
790 #endif // U_HIDE_INTERNAL_API
818 void adoptTailoring(CollationTailoring *t,
UErrorCode &errorCode);
822 const UChar *right, int32_t rightLength,
825 const uint8_t *right, int32_t rightLength,
828 void writeSortKey(
const UChar *s, int32_t length,
829 SortKeyByteSink &sink,
UErrorCode &errorCode)
const;
831 void writeIdenticalLevel(
const UChar *s,
const UChar *limit,
832 SortKeyByteSink &sink,
UErrorCode &errorCode)
const;
834 const CollationSettings &getDefaultSettings()
const;
836 void setAttributeDefault(int32_t attribute) {
837 explicitlySetAttributes &= ~((uint32_t)1 << attribute);
839 void setAttributeExplicitly(int32_t attribute) {
840 explicitlySetAttributes |= (uint32_t)1 << attribute;
842 UBool attributeHasBeenSetExplicitly(int32_t attribute)
const {
844 return (
UBool)((explicitlySetAttributes & ((uint32_t)1 << attribute)) != 0);
856 static void computeMaxExpansions(
const CollationTailoring *t,
UErrorCode &errorCode);
859 void setFastLatinOptions(CollationSettings &ownedSettings)
const;
861 const CollationData *data;
862 const CollationSettings *settings;
863 const CollationTailoring *tailoring;
864 const CollationCacheEntry *cacheEntry;
866 uint32_t explicitlySetAttributes;
868 UBool actualLocaleIsSameAsValid;
873 #endif // !UCONFIG_NO_COLLATION