Movatterモバイル変換


[0]ホーム

URL:


ICU 78.1  78.1
ucol.h
Go to the documentation of this file.
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4 *******************************************************************************
5 * Copyright (c) 1996-2015, International Business Machines Corporation and others.
6 * All Rights Reserved.
7 *******************************************************************************
8 */
9 
10 #ifndef UCOL_H
11 #define UCOL_H
12 
13 #include "unicode/utypes.h"
14 
15 #if !UCONFIG_NO_COLLATION
16 
17 #include "unicode/unorm.h"
18 #include "unicode/parseerr.h"
19 #include "unicode/uloc.h"
20 #include "unicode/uset.h"
21 #include "unicode/uscript.h"
22 
23 #if U_SHOW_CPLUSPLUS_API
24 #include "unicode/localpointer.h"
25 #endif// U_SHOW_CPLUSPLUS_API
26 
57 structUCollator;
61 typedefstructUCollatorUCollator;
62 
63 
76 typedefenum {
78 UCOL_EQUAL = 0,
80 UCOL_GREATER = 1,
82 UCOL_LESS = -1
83 }UCollationResult ;
84 
85 
92 typedefenum {
94 UCOL_DEFAULT = -1,
95 
97 UCOL_PRIMARY = 0,
99 UCOL_SECONDARY = 1,
101 UCOL_TERTIARY = 2,
103 UCOL_DEFAULT_STRENGTH =UCOL_TERTIARY,
104  UCOL_CE_STRENGTH_LIMIT,
106 UCOL_QUATERNARY=3,
108 UCOL_IDENTICAL=15,
109  UCOL_STRENGTH_LIMIT,
110 
114 UCOL_OFF = 16,
118 UCOL_ON = 17,
119 
121 UCOL_SHIFTED = 20,
123 UCOL_NON_IGNORABLE = 21,
124 
127 UCOL_LOWER_FIRST = 24,
129 UCOL_UPPER_FIRST = 25,
130 
131 #ifndef U_HIDE_DEPRECATED_API
136 UCOL_ATTRIBUTE_VALUE_COUNT
137 #endif/* U_HIDE_DEPRECATED_API */
138 }UColAttributeValue;
139 
149 typedefenum {
155 UCOL_REORDER_CODE_DEFAULT = -1,
160 UCOL_REORDER_CODE_NONE =USCRIPT_UNKNOWN,
167 UCOL_REORDER_CODE_OTHERS =USCRIPT_UNKNOWN,
173 UCOL_REORDER_CODE_SPACE = 0x1000,
179 UCOL_REORDER_CODE_FIRST =UCOL_REORDER_CODE_SPACE,
185 UCOL_REORDER_CODE_PUNCTUATION = 0x1001,
191 UCOL_REORDER_CODE_SYMBOL = 0x1002,
197 UCOL_REORDER_CODE_CURRENCY = 0x1003,
203 UCOL_REORDER_CODE_DIGIT = 0x1004,
204 #ifndef U_HIDE_DEPRECATED_API
209 UCOL_REORDER_CODE_LIMIT = 0x1005
210 #endif/* U_HIDE_DEPRECATED_API */
211 }UColReorderCode;
212 
239 typedefUColAttributeValueUCollationStrength;
240 
245 typedefenum {
252 UCOL_FRENCH_COLLATION,
266 UCOL_ALTERNATE_HANDLING,
278 UCOL_CASE_FIRST,
289 UCOL_CASE_LEVEL,
302 UCOL_NORMALIZATION_MODE,
306 UCOL_DECOMPOSITION_MODE =UCOL_NORMALIZATION_MODE,
323 UCOL_STRENGTH,
324 #ifndef U_HIDE_DEPRECATED_API
336 UCOL_HIRAGANA_QUATERNARY_MODE =UCOL_STRENGTH + 1,
337 #endif/* U_HIDE_DEPRECATED_API */
356 UCOL_NUMERIC_COLLATION =UCOL_STRENGTH + 2,
357 
358 /* Do not conditionalize the following with #ifndef U_HIDE_DEPRECATED_API,
359  * it is needed for layout of RuleBasedCollator object. */
360 #ifndef U_FORCE_HIDE_DEPRECATED_API
365 UCOL_ATTRIBUTE_COUNT
366 #endif// U_FORCE_HIDE_DEPRECATED_API
367 }UColAttribute;
368 
372 typedefenum {
378 UCOL_TAILORING_ONLY,
386 UCOL_FULL_RULES
387 }UColRuleOption ;
388 
414 U_CAPIUCollator* U_EXPORT2
415 ucol_open(constchar *loc,UErrorCode *status);
416 
444 U_CAPIUCollator* U_EXPORT2
445 ucol_openRules(constUChar *rules,
446  int32_t rulesLength,
447 UColAttributeValue normalizationMode,
448 UCollationStrength strength,
449 UParseError *parseError,
450 UErrorCode *status);
451 
452 #ifndef U_HIDE_DEPRECATED_API
486 U_DEPRECATEDUCollator* U_EXPORT2
487 ucol_openFromShortString(constchar *definition,
488 UBool forceDefaults,
489 UParseError *parseError,
490 UErrorCode *status);
491 #endif/* U_HIDE_DEPRECATED_API */
492 
493 #ifndef U_HIDE_DEPRECATED_API
507 U_DEPRECATED int32_t U_EXPORT2
508 ucol_getContractions(constUCollator *coll,
509 USet *conts,
510 UErrorCode *status);
511 #endif/* U_HIDE_DEPRECATED_API */
512 
524 U_CAPIvoid U_EXPORT2
525 ucol_getContractionsAndExpansions(constUCollator *coll,
526 USet *contractions,USet *expansions,
527 UBool addPrefixes,UErrorCode *status);
528 
539 U_CAPIvoid U_EXPORT2
540 ucol_close(UCollator *coll);
541 
542 #if U_SHOW_CPLUSPLUS_API
543 
544 U_NAMESPACE_BEGIN
545 
555 U_DEFINE_LOCAL_OPEN_POINTER(LocalUCollatorPointer,UCollator,ucol_close);
556 
557 U_NAMESPACE_END
558 
559 #endif
560 
576 U_CAPIUCollationResult U_EXPORT2
577 ucol_strcoll(constUCollator *coll,
578 constUChar *source,
579  int32_t sourceLength,
580 constUChar *target,
581  int32_t targetLength);
582 
601 U_CAPIUCollationResult U_EXPORT2
602 ucol_strcollUTF8(
603 constUCollator *coll,
604 constchar *source,
605  int32_t sourceLength,
606 constchar *target,
607  int32_t targetLength,
608 UErrorCode *status);
609 
624 U_CAPIUBool U_EXPORT2
625 ucol_greater(constUCollator *coll,
626 constUChar *source, int32_t sourceLength,
627 constUChar *target, int32_t targetLength);
628 
643 U_CAPIUBool U_EXPORT2
644 ucol_greaterOrEqual(constUCollator *coll,
645 constUChar *source, int32_t sourceLength,
646 constUChar *target, int32_t targetLength);
647 
662 U_CAPIUBool U_EXPORT2
663 ucol_equal(constUCollator *coll,
664 constUChar *source, int32_t sourceLength,
665 constUChar *target, int32_t targetLength);
666 
679 U_CAPIUCollationResult U_EXPORT2
680 ucol_strcollIter(constUCollator *coll,
681 UCharIterator *sIter,
682 UCharIterator *tIter,
683 UErrorCode *status);
684 
694 U_CAPIUCollationStrength U_EXPORT2
695 ucol_getStrength(constUCollator *coll);
696 
706 U_CAPIvoid U_EXPORT2
707 ucol_setStrength(UCollator *coll,
708 UCollationStrength strength);
709 
726 U_CAPI int32_t U_EXPORT2
727 ucol_getReorderCodes(constUCollator* coll,
728  int32_t* dest,
729  int32_t destCapacity,
730 UErrorCode *pErrorCode);
771 U_CAPIvoid U_EXPORT2
772 ucol_setReorderCodes(UCollator* coll,
773 const int32_t* reorderCodes,
774  int32_t reorderCodesLength,
775 UErrorCode *pErrorCode);
776 
796 U_CAPI int32_t U_EXPORT2
797 ucol_getEquivalentReorderCodes(int32_t reorderCode,
798  int32_t* dest,
799  int32_t destCapacity,
800 UErrorCode *pErrorCode);
801 
814 U_CAPI int32_t U_EXPORT2
815 ucol_getDisplayName(constchar *objLoc,
816 constchar *dispLoc,
817 UChar *result,
818  int32_t resultLength,
819 UErrorCode *status);
820 
830 U_CAPIconstchar* U_EXPORT2
831 ucol_getAvailable(int32_t localeIndex);
832 
841 U_CAPI int32_t U_EXPORT2
842 ucol_countAvailable(void);
843 
844 #if !UCONFIG_NO_SERVICE
853 U_CAPIUEnumeration* U_EXPORT2
854 ucol_openAvailableLocales(UErrorCode *status);
855 #endif
856 
866 U_CAPIUEnumeration* U_EXPORT2
867 ucol_getKeywords(UErrorCode *status);
868 
880 U_CAPIUEnumeration* U_EXPORT2
881 ucol_getKeywordValues(constchar *keyword,UErrorCode *status);
882 
899 U_CAPIUEnumeration* U_EXPORT2
900 ucol_getKeywordValuesForLocale(constchar* key,
901 constchar* locale,
902 UBool commonlyUsed,
903 UErrorCode* status);
904 
936 U_CAPI int32_t U_EXPORT2
937 ucol_getFunctionalEquivalent(char* result, int32_t resultCapacity,
938 constchar* keyword,constchar* locale,
939 UBool* isAvailable,UErrorCode* status);
940 
949 U_CAPIconstUChar* U_EXPORT2
950 ucol_getRules(constUCollator *coll,
951  int32_t *length);
952 
953 #ifndef U_HIDE_DEPRECATED_API
974 U_DEPRECATED int32_t U_EXPORT2
975 ucol_getShortDefinitionString(constUCollator *coll,
976 constchar *locale,
977 char *buffer,
978  int32_t capacity,
979 UErrorCode *status);
980 
1000 U_DEPRECATED int32_t U_EXPORT2
1001 ucol_normalizeShortDefinitionString(constchar *source,
1002 char *destination,
1003  int32_t capacity,
1004 UParseError *parseError,
1005 UErrorCode *status);
1006 #endif/* U_HIDE_DEPRECATED_API */
1007 
1008 
1031 U_CAPI int32_t U_EXPORT2
1032 ucol_getSortKey(constUCollator *coll,
1033 constUChar *source,
1034  int32_t sourceLength,
1035  uint8_t *result,
1036  int32_t resultLength);
1037 
1038 
1059 U_CAPI int32_t U_EXPORT2
1060 ucol_nextSortKeyPart(constUCollator *coll,
1061 UCharIterator *iter,
1062  uint32_t state[2],
1063  uint8_t *dest, int32_t count,
1064 UErrorCode *status);
1065 
1073 typedefenum {
1075 UCOL_BOUND_LOWER = 0,
1077 UCOL_BOUND_UPPER = 1,
1079 UCOL_BOUND_UPPER_LONG = 2,
1080 #ifndef U_HIDE_DEPRECATED_API
1085 UCOL_BOUND_VALUE_COUNT
1086 #endif/* U_HIDE_DEPRECATED_API */
1087 }UColBoundMode;
1088 
1126 U_CAPI int32_t U_EXPORT2
1127 ucol_getBound(const uint8_t *source,
1128  int32_t sourceLength,
1129 UColBoundMode boundType,
1130  uint32_t noOfLevels,
1131  uint8_t *result,
1132  int32_t resultLength,
1133 UErrorCode *status);
1134 
1143 U_CAPIvoid U_EXPORT2
1144 ucol_getVersion(constUCollator* coll,UVersionInfo info);
1145 
1153 U_CAPIvoid U_EXPORT2
1154 ucol_getUCAVersion(constUCollator* coll,UVersionInfo info);
1155 
1203 U_CAPI int32_t U_EXPORT2
1204 ucol_mergeSortkeys(const uint8_t *src1, int32_t src1Length,
1205 const uint8_t *src2, int32_t src2Length,
1206  uint8_t *dest, int32_t destCapacity);
1207 
1219 U_CAPIvoid U_EXPORT2
1220 ucol_setAttribute(UCollator *coll,UColAttribute attr,UColAttributeValue value,UErrorCode *status);
1221 
1233 U_CAPIUColAttributeValue U_EXPORT2
1234 ucol_getAttribute(constUCollator *coll,UColAttribute attr,UErrorCode *status);
1235 
1252 U_CAPIvoid U_EXPORT2
1253 ucol_setMaxVariable(UCollator *coll,UColReorderCode group,UErrorCode *pErrorCode);
1254 
1262 U_CAPIUColReorderCode U_EXPORT2
1263 ucol_getMaxVariable(constUCollator *coll);
1264 
1265 #ifndef U_HIDE_DEPRECATED_API
1286 U_DEPRECATED uint32_t U_EXPORT2
1287 ucol_setVariableTop(UCollator *coll,
1288 constUChar *varTop, int32_t len,
1289 UErrorCode *status);
1290 #endif/* U_HIDE_DEPRECATED_API */
1291 
1303 U_CAPI uint32_t U_EXPORT2ucol_getVariableTop(constUCollator *coll,UErrorCode *status);
1304 
1305 #ifndef U_HIDE_DEPRECATED_API
1320 U_DEPRECATEDvoid U_EXPORT2
1321 ucol_restoreVariableTop(UCollator *coll,const uint32_t varTop,UErrorCode *status);
1322 #endif/* U_HIDE_DEPRECATED_API */
1323 
1334 U_CAPIUCollator* U_EXPORT2ucol_clone(constUCollator *coll,UErrorCode *status);
1335 
1336 #ifndef U_HIDE_DEPRECATED_API
1337 
1361 U_DEPRECATEDUCollator* U_EXPORT2
1362 ucol_safeClone(constUCollator *coll,
1363 void *stackBuffer,
1364  int32_t *pBufferSize,
1365 UErrorCode *status);
1366 
1367 
1371 #define U_COL_SAFECLONE_BUFFERSIZE 1
1372 
1373 #endif/* U_HIDE_DEPRECATED_API */
1374 
1390 U_CAPI int32_t U_EXPORT2
1391 ucol_getRulesEx(constUCollator *coll,UColRuleOption delta,UChar *buffer, int32_t bufferLen);
1392 
1393 #ifndef U_HIDE_DEPRECATED_API
1408 U_DEPRECATEDconstchar * U_EXPORT2
1409 ucol_getLocale(constUCollator *coll,ULocDataLocaleType type,UErrorCode *status);
1410 #endif/* U_HIDE_DEPRECATED_API */
1411 
1426 U_CAPIconstchar * U_EXPORT2
1427 ucol_getLocaleByType(constUCollator *coll,ULocDataLocaleType type,UErrorCode *status);
1428 
1439 U_CAPIUSet * U_EXPORT2
1440 ucol_getTailoredSet(constUCollator *coll,UErrorCode *status);
1441 
1442 #ifndef U_HIDE_INTERNAL_API
1454 U_CAPI int32_t U_EXPORT2
1455 ucol_getUnsafeSet(constUCollator *coll,
1456 USet *unsafe,
1457 UErrorCode *status);
1458 
1479 U_CAPIvoid U_EXPORT2
1480 ucol_prepareShortStringOpen(constchar *definition,
1481 UBool forceDefaults,
1482 UParseError *parseError,
1483 UErrorCode *status);
1484 #endif/* U_HIDE_INTERNAL_API */
1485 
1497 U_CAPI int32_t U_EXPORT2
1498 ucol_cloneBinary(constUCollator *coll,
1499  uint8_t *buffer, int32_t capacity,
1500 UErrorCode *status);
1501 
1519 U_CAPIUCollator* U_EXPORT2
1520 ucol_openBinary(const uint8_t *bin, int32_t length,
1521 constUCollator *base,
1522 UErrorCode *status);
1523 
1524 #if U_SHOW_CPLUSPLUS_API || U_SHOW_CPLUSPLUS_HEADER_API
1525 
1526 #include <functional>
1527 #include <string_view>
1528 #include <type_traits>
1529 
1530 #include "unicode/char16ptr.h"
1531 #include "unicode/unistr.h"
1532 
1533 namespaceU_HEADER_ONLY_NAMESPACE {
1534 
1535 namespacecollator {
1536 
1537 namespaceinternal {
1538 
1543 template <template <typename...>typename Compare,UCollationResult result>
1544 classPredicate {
1545 public:
1547 explicitPredicate(constUCollator* ucol) : collator(ucol) {}
1548 
1549 #if U_SHOW_CPLUSPLUS_API
1551 template <
1552 typename T,typename U,
1553 typename = std::enable_if_t<ConvertibleToU16StringView<T> && ConvertibleToU16StringView<U>>>
1554 booloperator()(const T& lhs,const U& rhs) const{
1555 return match(UnicodeString::readOnlyAlias(lhs), UnicodeString::readOnlyAlias(rhs));
1556  }
1557 #else
1559 booloperator()(std::u16string_view lhs, std::u16string_view rhs) const{
1560 return match(lhs, rhs);
1561  }
1562 
1563 #if !U_CHAR16_IS_TYPEDEF && (!defined(_LIBCPP_VERSION) || _LIBCPP_VERSION < 180000)
1565 booloperator()(std::basic_string_view<uint16_t> lhs, std::basic_string_view<uint16_t> rhs) const{
1566 return match({uprv_char16PtrFromUint16(lhs.data()), lhs.length()},
1567  {uprv_char16PtrFromUint16(rhs.data()), rhs.length()});
1568  }
1569 #endif
1570 
1571 #if U_SIZEOF_WCHAR_T==2
1573 booloperator()(std::wstring_view lhs, std::wstring_view rhs) const{
1574 return match({uprv_char16PtrFromWchar(lhs.data()), lhs.length()},
1575  {uprv_char16PtrFromWchar(rhs.data()), rhs.length()});
1576  }
1577 #endif
1578 #endif
1579 
1581 booloperator()(std::string_view lhs, std::string_view rhs) const{
1582 return match(lhs, rhs);
1583  }
1584 
1585 #if defined(__cpp_char8_t)
1587 booloperator()(std::u8string_view lhs, std::u8string_view rhs) const{
1588 return match({reinterpret_cast<constchar*>(lhs.data()), lhs.length()},
1589  {reinterpret_cast<constchar*>(rhs.data()), rhs.length()});
1590  }
1591 #endif
1592 
1593 private:
1594 bool match(std::u16string_view lhs, std::u16string_view rhs) const{
1595 return compare(
1596 ucol_strcoll(
1597  collator,
1598  toUCharPtr(lhs.data()),static_cast<int32_t>(lhs.length()),
1599  toUCharPtr(rhs.data()),static_cast<int32_t>(rhs.length())),
1600  result);
1601  }
1602 
1603 bool match(std::string_view lhs, std::string_view rhs) const{
1604 UErrorCode status =U_ZERO_ERROR;
1605 return compare(
1606 ucol_strcollUTF8(
1607  collator,
1608  lhs.data(),static_cast<int32_t>(lhs.length()),
1609  rhs.data(),static_cast<int32_t>(rhs.length()),
1610  &status),
1611  result);
1612  }
1613 
1614 constUCollator*const collator;
1615 static constexpr Compare<UCollationResult> compare{};
1616 };
1617 
1618 }// namespace internal
1619 
1625 usingequal_to =internal::Predicate<std::equal_to, UCOL_EQUAL>;
1626 
1632 usinggreater =internal::Predicate<std::equal_to, UCOL_GREATER>;
1633 
1639 usingless =internal::Predicate<std::equal_to, UCOL_LESS>;
1640 
1646 usingnot_equal_to =internal::Predicate<std::not_equal_to, UCOL_EQUAL>;
1647 
1653 usinggreater_equal =internal::Predicate<std::not_equal_to, UCOL_LESS>;
1654 
1660 usingless_equal =internal::Predicate<std::not_equal_to, UCOL_GREATER>;
1661 
1662 }// namespace collator
1663 
1664 }// namespace U_HEADER_ONLY_NAMESPACE
1665 
1666 #endif// U_SHOW_CPLUSPLUS_API || U_SHOW_CPLUSPLUS_HEADER_API
1667 
1668 #endif/* #if !UCONFIG_NO_COLLATION */
1669 
1670 #endif
char16ptr.h
C++ API: char16_t pointer wrappers with implicit conversion from bit-compatible raw pointer types.
LocalUCollatorPointer
"Smart pointer" class, closes a UCollator via ucol_close().
U_HEADER_ONLY_NAMESPACE::collator::internal::Predicate
Function object for performing comparisons using a UCollator.
Definition:ucol.h:1544
U_HEADER_ONLY_NAMESPACE::collator::internal::Predicate::operator()
bool operator()(std::string_view lhs, std::string_view rhs) const
Definition:ucol.h:1581
U_HEADER_ONLY_NAMESPACE::collator::internal::Predicate::operator()
bool operator()(const T &lhs, const U &rhs) const
Definition:ucol.h:1554
U_HEADER_ONLY_NAMESPACE::collator::internal::Predicate::Predicate
Predicate(const UCollator *ucol)
Definition:ucol.h:1547
localpointer.h
C++ API: "Smart pointers" for use with and in ICU4C C++ code.
U_DEFINE_LOCAL_OPEN_POINTER
#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction)
"Smart pointer" definition macro, deletes objects via the closeFunction.
Definition:localpointer.h:548
parseerr.h
C API: Parse Error Information.
UCharIterator
C API for code unit iteration.
Definition:uiter.h:341
UParseError
A UParseError struct is used to returned detailed information about parsing errors.
Definition:parseerr.h:58
ucol_setMaxVariable
U_CAPI void ucol_setMaxVariable(UCollator *coll, UColReorderCode group, UErrorCode *pErrorCode)
Sets the variable top to the top of the specified reordering group.
ucol_openRules
U_CAPI UCollator * ucol_openRules(const UChar *rules, int32_t rulesLength, UColAttributeValue normalizationMode, UCollationStrength strength, UParseError *parseError, UErrorCode *status)
Produce a UCollator instance according to the rules supplied.
ucol_setVariableTop
uint32_t ucol_setVariableTop(UCollator *coll, const UChar *varTop, int32_t len, UErrorCode *status)
Sets the variable top to the primary weight of the specified string.
ucol_getRulesEx
U_CAPI int32_t ucol_getRulesEx(const UCollator *coll, UColRuleOption delta, UChar *buffer, int32_t bufferLen)
Returns current rules.
ucol_getVersion
U_CAPI void ucol_getVersion(const UCollator *coll, UVersionInfo info)
Gets the version information for a Collator.
ucol_getContractionsAndExpansions
U_CAPI void ucol_getContractionsAndExpansions(const UCollator *coll, USet *contractions, USet *expansions, UBool addPrefixes, UErrorCode *status)
Get a set containing the expansions defined by the collator.
ucol_getTailoredSet
U_CAPI USet * ucol_getTailoredSet(const UCollator *coll, UErrorCode *status)
Get a Unicode set that contains all the characters and sequences tailored in this collator.
ucol_getVariableTop
U_CAPI uint32_t ucol_getVariableTop(const UCollator *coll, UErrorCode *status)
Gets the variable top value of a Collator.
ucol_getAttribute
U_CAPI UColAttributeValue ucol_getAttribute(const UCollator *coll, UColAttribute attr, UErrorCode *status)
Universal attribute getter.
ucol_setStrength
U_CAPI void ucol_setStrength(UCollator *coll, UCollationStrength strength)
Set the collation strength used in a UCollator.
ucol_getUnsafeSet
U_CAPI int32_t ucol_getUnsafeSet(const UCollator *coll, USet *unsafe, UErrorCode *status)
Calculates the set of unsafe code points, given a collator.
ucol_openFromShortString
UCollator * ucol_openFromShortString(const char *definition, UBool forceDefaults, UParseError *parseError, UErrorCode *status)
Open a collator defined by a short form string.
UCollator
struct UCollator UCollator
structure representing a collator object instance
Definition:ucol.h:61
ucol_setAttribute
U_CAPI void ucol_setAttribute(UCollator *coll, UColAttribute attr, UColAttributeValue value, UErrorCode *status)
Universal attribute setter.
ucol_getMaxVariable
U_CAPI UColReorderCode ucol_getMaxVariable(const UCollator *coll)
Returns the maximum reordering group whose characters are affected by UCOL_ALTERNATE_HANDLING.
ucol_normalizeShortDefinitionString
int32_t ucol_normalizeShortDefinitionString(const char *source, char *destination, int32_t capacity, UParseError *parseError, UErrorCode *status)
Verifies and normalizes short definition string.
UColRuleOption
UColRuleOption
Options for retrieving the rule string.
Definition:ucol.h:372
UCOL_FULL_RULES
@ UCOL_FULL_RULES
Retrieves the "UCA rules" concatenated with the tailoring rules.
Definition:ucol.h:386
UCOL_TAILORING_ONLY
@ UCOL_TAILORING_ONLY
Retrieves the tailoring rules only.
Definition:ucol.h:378
ucol_getRules
U_CAPI const UChar * ucol_getRules(const UCollator *coll, int32_t *length)
Get the collation tailoring rules from a UCollator.
UColAttribute
UColAttribute
Attributes that collation service understands.
Definition:ucol.h:245
UCOL_CASE_FIRST
@ UCOL_CASE_FIRST
Controls the ordering of upper and lower case letters.
Definition:ucol.h:278
UCOL_NUMERIC_COLLATION
@ UCOL_NUMERIC_COLLATION
When turned on, this attribute makes substrings of digits sort according to their numeric values.
Definition:ucol.h:356
UCOL_STRENGTH
@ UCOL_STRENGTH
The strength attribute.
Definition:ucol.h:323
UCOL_CASE_LEVEL
@ UCOL_CASE_LEVEL
Controls whether an extra case level (positioned before the third level) is generated or not.
Definition:ucol.h:289
UCOL_FRENCH_COLLATION
@ UCOL_FRENCH_COLLATION
Attribute for direction of secondary weights - used in Canadian French.
Definition:ucol.h:252
UCOL_HIRAGANA_QUATERNARY_MODE
@ UCOL_HIRAGANA_QUATERNARY_MODE
When turned on, this attribute positions Hiragana before all non-ignorables on quaternary level Thi...
Definition:ucol.h:336
UCOL_DECOMPOSITION_MODE
@ UCOL_DECOMPOSITION_MODE
An alias for UCOL_NORMALIZATION_MODE attribute.
Definition:ucol.h:306
UCOL_ATTRIBUTE_COUNT
@ UCOL_ATTRIBUTE_COUNT
One more than the highest normal UColAttribute value.
Definition:ucol.h:365
UCOL_ALTERNATE_HANDLING
@ UCOL_ALTERNATE_HANDLING
Attribute for handling variable elements.
Definition:ucol.h:266
UCOL_NORMALIZATION_MODE
@ UCOL_NORMALIZATION_MODE
Controls whether the normalization check and necessary normalizations are performed.
Definition:ucol.h:302
ucol_getSortKey
U_CAPI int32_t ucol_getSortKey(const UCollator *coll, const UChar *source, int32_t sourceLength, uint8_t *result, int32_t resultLength)
Get a sort key for a string from a UCollator.
ucol_getContractions
int32_t ucol_getContractions(const UCollator *coll, USet *conts, UErrorCode *status)
Get a set containing the contractions defined by the collator.
ucol_strcoll
U_CAPI UCollationResult ucol_strcoll(const UCollator *coll, const UChar *source, int32_t sourceLength, const UChar *target, int32_t targetLength)
Compare two strings.
UCollationStrength
UColAttributeValue UCollationStrength
Base letter represents a primary difference.
Definition:ucol.h:239
ucol_getBound
U_CAPI int32_t ucol_getBound(const uint8_t *source, int32_t sourceLength, UColBoundMode boundType, uint32_t noOfLevels, uint8_t *result, int32_t resultLength, UErrorCode *status)
Produce a bound for a given sortkey and a number of levels.
ucol_strcollIter
U_CAPI UCollationResult ucol_strcollIter(const UCollator *coll, UCharIterator *sIter, UCharIterator *tIter, UErrorCode *status)
Compare two UTF-8 encoded strings.
ucol_getShortDefinitionString
int32_t ucol_getShortDefinitionString(const UCollator *coll, const char *locale, char *buffer, int32_t capacity, UErrorCode *status)
Get the short definition string for a collator.
ucol_getAvailable
U_CAPI const char * ucol_getAvailable(int32_t localeIndex)
Get a locale for which collation rules are available.
ucol_equal
U_CAPI UBool ucol_equal(const UCollator *coll, const UChar *source, int32_t sourceLength, const UChar *target, int32_t targetLength)
Compare two strings for equality.
ucol_cloneBinary
U_CAPI int32_t ucol_cloneBinary(const UCollator *coll, uint8_t *buffer, int32_t capacity, UErrorCode *status)
Creates a binary image of a collator.
ucol_strcollUTF8
U_CAPI UCollationResult ucol_strcollUTF8(const UCollator *coll, const char *source, int32_t sourceLength, const char *target, int32_t targetLength, UErrorCode *status)
Compare two strings in UTF-8.
ucol_prepareShortStringOpen
U_CAPI void ucol_prepareShortStringOpen(const char *definition, UBool forceDefaults, UParseError *parseError, UErrorCode *status)
Touches all resources needed for instantiating a collator from a short string definition,...
ucol_greater
U_CAPI UBool ucol_greater(const UCollator *coll, const UChar *source, int32_t sourceLength, const UChar *target, int32_t targetLength)
Determine if one string is greater than another.
UCollationResult
UCollationResult
UCOL_LESS is returned if source string is compared to be less than target string in the ucol_strcoll(...
Definition:ucol.h:76
UCOL_LESS
@ UCOL_LESS
string a < string b
Definition:ucol.h:82
UCOL_GREATER
@ UCOL_GREATER
string a > string b
Definition:ucol.h:80
UCOL_EQUAL
@ UCOL_EQUAL
string a == string b
Definition:ucol.h:78
ucol_open
U_CAPI UCollator * ucol_open(const char *loc, UErrorCode *status)
Open a UCollator for comparing strings.
ucol_getLocaleByType
U_CAPI const char * ucol_getLocaleByType(const UCollator *coll, ULocDataLocaleType type, UErrorCode *status)
gets the locale name of the collator.
ucol_safeClone
UCollator * ucol_safeClone(const UCollator *coll, void *stackBuffer, int32_t *pBufferSize, UErrorCode *status)
Thread safe cloning operation.
ucol_nextSortKeyPart
U_CAPI int32_t ucol_nextSortKeyPart(const UCollator *coll, UCharIterator *iter, uint32_t state[2], uint8_t *dest, int32_t count, UErrorCode *status)
Gets the next count bytes of a sort key.
ucol_getLocale
const char * ucol_getLocale(const UCollator *coll, ULocDataLocaleType type, UErrorCode *status)
gets the locale name of the collator.
UColBoundMode
UColBoundMode
enum that is taken by ucol_getBound API See below for explanation do not change the values assigned...
Definition:ucol.h:1073
UCOL_BOUND_LOWER
@ UCOL_BOUND_LOWER
lower bound
Definition:ucol.h:1075
UCOL_BOUND_UPPER
@ UCOL_BOUND_UPPER
upper bound that will match strings of exact size
Definition:ucol.h:1077
UCOL_BOUND_VALUE_COUNT
@ UCOL_BOUND_VALUE_COUNT
One more than the highest normal UColBoundMode value.
Definition:ucol.h:1085
UCOL_BOUND_UPPER_LONG
@ UCOL_BOUND_UPPER_LONG
upper bound that will match all the strings that have the same initial substring as the given string
Definition:ucol.h:1079
ucol_countAvailable
U_CAPI int32_t ucol_countAvailable(void)
Determine how many locales have collation rules available.
ucol_greaterOrEqual
U_CAPI UBool ucol_greaterOrEqual(const UCollator *coll, const UChar *source, int32_t sourceLength, const UChar *target, int32_t targetLength)
Determine if one string is greater than or equal to another.
ucol_getEquivalentReorderCodes
U_CAPI int32_t ucol_getEquivalentReorderCodes(int32_t reorderCode, int32_t *dest, int32_t destCapacity, UErrorCode *pErrorCode)
Retrieves the reorder codes that are grouped with the given reorder code.
ucol_close
U_CAPI void ucol_close(UCollator *coll)
Close a UCollator.
ucol_getFunctionalEquivalent
U_CAPI int32_t ucol_getFunctionalEquivalent(char *result, int32_t resultCapacity, const char *keyword, const char *locale, UBool *isAvailable, UErrorCode *status)
Return the functionally equivalent locale for the specified input locale, with respect to given keywo...
ucol_getKeywords
U_CAPI UEnumeration * ucol_getKeywords(UErrorCode *status)
Create a string enumerator of all possible keywords that are relevant to collation.
ucol_clone
U_CAPI UCollator * ucol_clone(const UCollator *coll, UErrorCode *status)
Thread safe cloning operation.
ucol_openBinary
U_CAPI UCollator * ucol_openBinary(const uint8_t *bin, int32_t length, const UCollator *base, UErrorCode *status)
Opens a collator from a collator binary image created using ucol_cloneBinary.
ucol_openAvailableLocales
U_CAPI UEnumeration * ucol_openAvailableLocales(UErrorCode *status)
Create a string enumerator of all locales for which a valid collator may be opened.
ucol_getUCAVersion
U_CAPI void ucol_getUCAVersion(const UCollator *coll, UVersionInfo info)
Gets the UCA version information for a Collator.
ucol_getDisplayName
U_CAPI int32_t ucol_getDisplayName(const char *objLoc, const char *dispLoc, UChar *result, int32_t resultLength, UErrorCode *status)
Get the display name for a UCollator.
UColAttributeValue
UColAttributeValue
Enum containing attribute values for controlling collation behavior.
Definition:ucol.h:92
UCOL_UPPER_FIRST
@ UCOL_UPPER_FIRST
upper case sorts before lower case
Definition:ucol.h:129
UCOL_TERTIARY
@ UCOL_TERTIARY
Tertiary collation strength.
Definition:ucol.h:101
UCOL_DEFAULT
@ UCOL_DEFAULT
accepted by most attributes
Definition:ucol.h:94
UCOL_IDENTICAL
@ UCOL_IDENTICAL
Identical collation strength.
Definition:ucol.h:108
UCOL_OFF
@ UCOL_OFF
Turn the feature off - works for UCOL_FRENCH_COLLATION, UCOL_CASE_LEVEL, UCOL_HIRAGANA_QUATERNARY_MOD...
Definition:ucol.h:114
UCOL_QUATERNARY
@ UCOL_QUATERNARY
Quaternary collation strength.
Definition:ucol.h:106
UCOL_SHIFTED
@ UCOL_SHIFTED
Valid for UCOL_ALTERNATE_HANDLING.
Definition:ucol.h:121
UCOL_PRIMARY
@ UCOL_PRIMARY
Primary collation strength.
Definition:ucol.h:97
UCOL_LOWER_FIRST
@ UCOL_LOWER_FIRST
Valid for UCOL_CASE_FIRST - lower case sorts before upper case.
Definition:ucol.h:127
UCOL_ATTRIBUTE_VALUE_COUNT
@ UCOL_ATTRIBUTE_VALUE_COUNT
One more than the highest normal UColAttributeValue value.
Definition:ucol.h:136
UCOL_SECONDARY
@ UCOL_SECONDARY
Secondary collation strength.
Definition:ucol.h:99
UCOL_NON_IGNORABLE
@ UCOL_NON_IGNORABLE
Valid for UCOL_ALTERNATE_HANDLING.
Definition:ucol.h:123
UCOL_ON
@ UCOL_ON
Turn the feature on - works for UCOL_FRENCH_COLLATION, UCOL_CASE_LEVEL, UCOL_HIRAGANA_QUATERNARY_MODE...
Definition:ucol.h:118
UCOL_DEFAULT_STRENGTH
@ UCOL_DEFAULT_STRENGTH
Default collation strength.
Definition:ucol.h:103
ucol_restoreVariableTop
void ucol_restoreVariableTop(UCollator *coll, const uint32_t varTop, UErrorCode *status)
Sets the variable top to the specified primary weight.
ucol_getStrength
U_CAPI UCollationStrength ucol_getStrength(const UCollator *coll)
Get the collation strength used in a UCollator.
ucol_getReorderCodes
U_CAPI int32_t ucol_getReorderCodes(const UCollator *coll, int32_t *dest, int32_t destCapacity, UErrorCode *pErrorCode)
Retrieves the reordering codes for this collator.
ucol_setReorderCodes
U_CAPI void ucol_setReorderCodes(UCollator *coll, const int32_t *reorderCodes, int32_t reorderCodesLength, UErrorCode *pErrorCode)
Sets the reordering codes for this collator.
UColReorderCode
UColReorderCode
Enum containing the codes for reordering segments of the collation table that are not script codes.
Definition:ucol.h:149
UCOL_REORDER_CODE_OTHERS
@ UCOL_REORDER_CODE_OTHERS
A special reordering code that is used to specify all other codes used for reordering except for the ...
Definition:ucol.h:167
UCOL_REORDER_CODE_NONE
@ UCOL_REORDER_CODE_NONE
A special reordering code that is used to specify no reordering codes.
Definition:ucol.h:160
UCOL_REORDER_CODE_DEFAULT
@ UCOL_REORDER_CODE_DEFAULT
A special reordering code that is used to specify the default reordering codes for a locale.
Definition:ucol.h:155
UCOL_REORDER_CODE_LIMIT
@ UCOL_REORDER_CODE_LIMIT
One more than the highest normal UColReorderCode value.
Definition:ucol.h:209
UCOL_REORDER_CODE_SYMBOL
@ UCOL_REORDER_CODE_SYMBOL
Characters with the symbol property.
Definition:ucol.h:191
UCOL_REORDER_CODE_DIGIT
@ UCOL_REORDER_CODE_DIGIT
Characters with the digit property.
Definition:ucol.h:203
UCOL_REORDER_CODE_PUNCTUATION
@ UCOL_REORDER_CODE_PUNCTUATION
Characters with the punctuation property.
Definition:ucol.h:185
UCOL_REORDER_CODE_SPACE
@ UCOL_REORDER_CODE_SPACE
Characters with the space property.
Definition:ucol.h:173
UCOL_REORDER_CODE_FIRST
@ UCOL_REORDER_CODE_FIRST
The first entry in the enumeration of reordering groups.
Definition:ucol.h:179
UCOL_REORDER_CODE_CURRENCY
@ UCOL_REORDER_CODE_CURRENCY
Characters with the currency property.
Definition:ucol.h:197
ucol_getKeywordValuesForLocale
U_CAPI UEnumeration * ucol_getKeywordValuesForLocale(const char *key, const char *locale, UBool commonlyUsed, UErrorCode *status)
Given a key and a locale, returns an array of string values in a preferred order that would make a di...
ucol_getKeywordValues
U_CAPI UEnumeration * ucol_getKeywordValues(const char *keyword, UErrorCode *status)
Given a keyword, create a string enumeration of all values for that keyword that are currently in use...
ucol_mergeSortkeys
U_CAPI int32_t ucol_mergeSortkeys(const uint8_t *src1, int32_t src1Length, const uint8_t *src2, int32_t src2Length, uint8_t *dest, int32_t destCapacity)
Merges two sort keys.
UEnumeration
struct UEnumeration UEnumeration
structure representing an enumeration object instance
Definition:uenum.h:44
uloc.h
C API: Locale ID functionality similar to C++ class Locale.
ULocDataLocaleType
ULocDataLocaleType
Constants for *_getLocale() Allow user to select whether she wants information on requested,...
Definition:uloc.h:338
U_DEPRECATED
#define U_DEPRECATED
This is used to declare a function as a deprecated public ICU C API
Definition:umachine.h:116
UBool
int8_t UBool
The ICU boolean type, a signed-byte integer.
Definition:umachine.h:269
U_CAPI
#define U_CAPI
This is used to declare a function as a public ICU C API.
Definition:umachine.h:110
UChar
char16_t UChar
The base type for UTF-16 code units and pointers.
Definition:umachine.h:400
unistr.h
C++ API: Unicode String.
unorm.h
C API: Unicode Normalization.
uscript.h
C API: Unicode Script Information.
USCRIPT_UNKNOWN
@ USCRIPT_UNKNOWN
Definition:uscript.h:287
uset.h
C API: Unicode Set.
USet
struct USet USet
USet is the C API type corresponding to C++ class UnicodeSet.
Definition:uset.h:54
utypes.h
Basic definitions for ICU, for both C and C++ APIs.
UErrorCode
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
Definition:utypes.h:509
U_ZERO_ERROR
@ U_ZERO_ERROR
No error, no warning.
Definition:utypes.h:544
UVersionInfo
uint8_t UVersionInfo[U_MAX_VERSION_LENGTH]
The binary form of a version on ICU APIs is an array of 4 uint8_t.
Definition:uversion.h:59

Generated by doxygen 1.9.1
[8]ページ先頭

©2009-2025 Movatter.jp