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,
678 int32_t reorderCodesLength,
686 const char *left, int32_t leftLength,
687 const char *right, int32_t rightLength,
724 uint8_t *dest, int32_t count,
UErrorCode &errorCode)
const;
732 #ifndef U_HIDE_INTERNAL_API
753 void internalGetContractionsAndExpansions(
768 void internalBuildTailoring(
789 #endif // U_HIDE_INTERNAL_API
817 void adoptTailoring(CollationTailoring *t,
UErrorCode &errorCode);
821 const UChar *right, int32_t rightLength,
824 const uint8_t *right, int32_t rightLength,
827 void writeSortKey(
const UChar *s, int32_t length,
828 SortKeyByteSink &sink,
UErrorCode &errorCode)
const;
830 void writeIdenticalLevel(
const UChar *s,
const UChar *limit,
831 SortKeyByteSink &sink,
UErrorCode &errorCode)
const;
833 const CollationSettings &getDefaultSettings()
const;
835 void setAttributeDefault(int32_t attribute) {
836 explicitlySetAttributes &= ~((uint32_t)1 << attribute);
838 void setAttributeExplicitly(int32_t attribute) {
839 explicitlySetAttributes |= (uint32_t)1 << attribute;
841 UBool attributeHasBeenSetExplicitly(int32_t attribute)
const {
843 return (
UBool)((explicitlySetAttributes & ((uint32_t)1 << attribute)) != 0);
855 static void computeMaxExpansions(
const CollationTailoring *t,
UErrorCode &errorCode);
858 void setFastLatinOptions(CollationSettings &ownedSettings)
const;
860 const CollationData *data;
861 const CollationSettings *settings;
862 const CollationTailoring *tailoring;
863 const CollationCacheEntry *cacheEntry;
865 uint32_t explicitlySetAttributes;
867 UBool actualLocaleIsSameAsValid;
872 #endif // !UCONFIG_NO_COLLATION