- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

# ucol.h

Go to the documentation of this file.

    00001 /*
    00002 *******************************************************************************
    00003 * Copyright (c) 1996-2010, International Business Machines Corporation and others.
    00004 * All Rights Reserved.
    00005 *******************************************************************************
    00006 */
    00007
    00008 #ifndef UCOL_H
    00009 #define UCOL_H
    00010
    00011 #include "unicode/utypes.h"
    00012
    00013 #if !UCONFIG_NO_COLLATION
    00014
    00015 #include "unicode/unorm.h"
    00016 #include "unicode/localpointer.h"
    00017 #include "unicode/parseerr.h"
    00018 #include "unicode/uloc.h"
    00019 #include "unicode/uset.h"
    00020
    00057 struct UCollator;
    00061 typedef struct UCollator UCollator;
    00062
    00063
    00076 typedef enum {
    00078   UCOL_EQUAL    = 0,
    00080   UCOL_GREATER    = 1,
    00082   UCOL_LESS    = -1
    00083 } UCollationResult ;
    00084
    00085
    00092 typedef enum {
    00094   UCOL_DEFAULT = -1,
    00095
    00097   UCOL_PRIMARY = 0,
    00099   UCOL_SECONDARY = 1,
    00101   UCOL_TERTIARY = 2,
    00103   UCOL_DEFAULT_STRENGTH = UCOL_TERTIARY,
    00104   UCOL_CE_STRENGTH_LIMIT,
    00106   UCOL_QUATERNARY=3,
    00108   UCOL_IDENTICAL=15,
    00109   UCOL_STRENGTH_LIMIT,
    00110
    00114   UCOL_OFF = 16,
    00118   UCOL_ON = 17,
    00119
    00121   UCOL_SHIFTED = 20,
    00123   UCOL_NON_IGNORABLE = 21,
    00124
    00127   UCOL_LOWER_FIRST = 24,
    00129   UCOL_UPPER_FIRST = 25,
    00130
    00131   UCOL_ATTRIBUTE_VALUE_COUNT
    00132
    00133 } UColAttributeValue;
    00134
    00161 typedef UColAttributeValue UCollationStrength;
    00162
    00167 typedef enum {
    00172      UCOL_FRENCH_COLLATION,
    00181      UCOL_ALTERNATE_HANDLING,
    00188      UCOL_CASE_FIRST,
    00196      UCOL_CASE_LEVEL,
    00204      UCOL_NORMALIZATION_MODE,
    00206      UCOL_DECOMPOSITION_MODE = UCOL_NORMALIZATION_MODE,
    00217      UCOL_STRENGTH,
    00221      UCOL_HIRAGANA_QUATERNARY_MODE,
    00229      UCOL_NUMERIC_COLLATION,
    00230      UCOL_ATTRIBUTE_COUNT
    00231 } UColAttribute;
    00232
    00236 typedef enum {
    00238   UCOL_TAILORING_ONLY,
    00240   UCOL_FULL_RULES
    00241 } UColRuleOption ;
    00242
    00260 U_STABLE UCollator* U_EXPORT2
    00261 ucol_open(const char *loc, UErrorCode *status);
    00262
    00288 U_STABLE UCollator* U_EXPORT2
    00289 ucol_openRules( const UChar        *rules,
    00290                 int32_t            rulesLength,
    00291                 UColAttributeValue normalizationMode,
    00292                 UCollationStrength strength,
    00293                 UParseError        *parseError,
    00294                 UErrorCode         *status);
    00295
    00330 U_STABLE UCollator* U_EXPORT2
    00331 ucol_openFromShortString( const char *definition,
    00332                           UBool forceDefaults,
    00333                           UParseError *parseError,
    00334                           UErrorCode *status);
    00335
    00349 U_DEPRECATED int32_t U_EXPORT2
    00350 ucol_getContractions( const UCollator *coll,
    00351                   USet *conts,
    00352                   UErrorCode *status);
    00353
    00365 U_STABLE void U_EXPORT2
    00366 ucol_getContractionsAndExpansions( const UCollator *coll,
    00367                   USet *contractions, USet *expansions,
    00368                   UBool addPrefixes, UErrorCode *status);
    00369
    00380 U_STABLE void U_EXPORT2
    00381 ucol_close(UCollator *coll);
    00382
    00383 #if U_SHOW_CPLUSPLUS_API
    00384
    00385 U_NAMESPACE_BEGIN
    00386
    00396 U_DEFINE_LOCAL_OPEN_POINTER(LocalUCollatorPointer, UCollator, ucol_close);
    00397
    00398 U_NAMESPACE_END
    00399
    00400 #endif
    00401
    00417 U_STABLE UCollationResult U_EXPORT2
    00418 ucol_strcoll(    const    UCollator    *coll,
    00419         const    UChar        *source,
    00420         int32_t            sourceLength,
    00421         const    UChar        *target,
    00422         int32_t            targetLength);
    00423
    00438 U_STABLE UBool U_EXPORT2
    00439 ucol_greater(const UCollator *coll,
    00440              const UChar     *source, int32_t sourceLength,
    00441              const UChar     *target, int32_t targetLength);
    00442
    00457 U_STABLE UBool U_EXPORT2
    00458 ucol_greaterOrEqual(const UCollator *coll,
    00459                     const UChar     *source, int32_t sourceLength,
    00460                     const UChar     *target, int32_t targetLength);
    00461
    00476 U_STABLE UBool U_EXPORT2
    00477 ucol_equal(const UCollator *coll,
    00478            const UChar     *source, int32_t sourceLength,
    00479            const UChar     *target, int32_t targetLength);
    00480
    00493 U_STABLE UCollationResult U_EXPORT2
    00494 ucol_strcollIter(  const    UCollator    *coll,
    00495                   UCharIterator *sIter,
    00496                   UCharIterator *tIter,
    00497                   UErrorCode *status);
    00498
    00508 U_STABLE UCollationStrength U_EXPORT2
    00509 ucol_getStrength(const UCollator *coll);
    00510
    00520 U_STABLE void U_EXPORT2
    00521 ucol_setStrength(UCollator *coll,
    00522                  UCollationStrength strength);
    00523
    00536 U_STABLE int32_t U_EXPORT2
    00537 ucol_getDisplayName(    const    char        *objLoc,
    00538             const    char        *dispLoc,
    00539             UChar             *result,
    00540             int32_t         resultLength,
    00541             UErrorCode        *status);
    00542
    00552 U_STABLE const char* U_EXPORT2
    00553 ucol_getAvailable(int32_t localeIndex);
    00554
    00563 U_STABLE int32_t U_EXPORT2
    00564 ucol_countAvailable(void);
    00565
    00566 #if !UCONFIG_NO_SERVICE
    00567
    00575 U_STABLE UEnumeration* U_EXPORT2
    00576 ucol_openAvailableLocales(UErrorCode *status);
    00577 #endif
    00578
    00588 U_STABLE UEnumeration* U_EXPORT2
    00589 ucol_getKeywords(UErrorCode *status);
    00590
    00602 U_STABLE UEnumeration* U_EXPORT2
    00603 ucol_getKeywordValues(const char *keyword, UErrorCode *status);
    00604
    00621 U_STABLE UEnumeration* U_EXPORT2
    00622 ucol_getKeywordValuesForLocale(const char* key,
    00623                                const char* locale,
    00624                                UBool commonlyUsed,
    00625                                UErrorCode* status);
    00626
    00657 U_STABLE int32_t U_EXPORT2
    00658 ucol_getFunctionalEquivalent(char* result, int32_t resultCapacity,
    00659                              const char* keyword, const char* locale,
    00660                              UBool* isAvailable, UErrorCode* status);
    00661
    00670 U_STABLE const UChar* U_EXPORT2
    00671 ucol_getRules(    const    UCollator    *coll,
    00672         int32_t            *length);
    00673
    00694 U_STABLE int32_t U_EXPORT2
    00695 ucol_getShortDefinitionString(const UCollator *coll,
    00696                               const char *locale,
    00697                               char *buffer,
    00698                               int32_t capacity,
    00699                               UErrorCode *status);
    00700
    00721 U_STABLE int32_t U_EXPORT2
    00722 ucol_normalizeShortDefinitionString(const char *source,
    00723                                     char *destination,
    00724                                     int32_t capacity,
    00725                                     UParseError *parseError,
    00726                                     UErrorCode *status);
    00727
    00728
    00743 U_STABLE int32_t U_EXPORT2
    00744 ucol_getSortKey(const    UCollator    *coll,
    00745         const    UChar        *source,
    00746         int32_t        sourceLength,
    00747         uint8_t        *result,
    00748         int32_t        resultLength);
    00749
    00750
    00771 U_STABLE int32_t U_EXPORT2
    00772 ucol_nextSortKeyPart(const UCollator *coll,
    00773                      UCharIterator *iter,
    00774                      uint32_t state[2],
    00775                      uint8_t *dest, int32_t count,
    00776                      UErrorCode *status);
    00777
    00785 typedef enum {
    00787   UCOL_BOUND_LOWER = 0,
    00789   UCOL_BOUND_UPPER = 1,
    00791   UCOL_BOUND_UPPER_LONG = 2,
    00792   UCOL_BOUND_VALUE_COUNT
    00793 } UColBoundMode;
    00794
    00832 U_STABLE int32_t U_EXPORT2
    00833 ucol_getBound(const uint8_t       *source,
    00834         int32_t             sourceLength,
    00835         UColBoundMode       boundType,
    00836         uint32_t            noOfLevels,
    00837         uint8_t             *result,
    00838         int32_t             resultLength,
    00839         UErrorCode          *status);
    00840
    00849 U_STABLE void U_EXPORT2
    00850 ucol_getVersion(const UCollator* coll, UVersionInfo info);
    00851
    00859 U_STABLE void U_EXPORT2
    00860 ucol_getUCAVersion(const UCollator* coll, UVersionInfo info);
    00861
    00884 U_STABLE int32_t U_EXPORT2
    00885 ucol_mergeSortkeys(const uint8_t *src1, int32_t src1Length,
    00886                    const uint8_t *src2, int32_t src2Length,
    00887                    uint8_t *dest, int32_t destCapacity);
    00888
    00900 U_STABLE void U_EXPORT2
    00901 ucol_setAttribute(UCollator *coll, UColAttribute attr, UColAttributeValue value, UErrorCode *status);
    00902
    00914 U_STABLE UColAttributeValue  U_EXPORT2
    00915 ucol_getAttribute(const UCollator *coll, UColAttribute attr, UErrorCode *status);
    00916
    00936 U_STABLE uint32_t U_EXPORT2
    00937 ucol_setVariableTop(UCollator *coll,
    00938                     const UChar *varTop, int32_t len,
    00939                     UErrorCode *status);
    00940
    00952 U_STABLE uint32_t U_EXPORT2 ucol_getVariableTop(const UCollator *coll, UErrorCode *status);
    00953
    00965 U_STABLE void U_EXPORT2
    00966 ucol_restoreVariableTop(UCollator *coll, const uint32_t varTop, UErrorCode *status);
    00967
    00990 U_STABLE UCollator* U_EXPORT2
    00991 ucol_safeClone(const UCollator *coll,
    00992                void            *stackBuffer,
    00993                int32_t         *pBufferSize,
    00994                UErrorCode      *status);
    00995
    00999 #define U_COL_SAFECLONE_BUFFERSIZE 512
    01000
    01012 U_STABLE int32_t U_EXPORT2
    01013 ucol_getRulesEx(const UCollator *coll, UColRuleOption delta, UChar *buffer, int32_t bufferLen);
    01014
    01029 U_DEPRECATED const char * U_EXPORT2
    01030 ucol_getLocale(const UCollator *coll, ULocDataLocaleType type, UErrorCode *status);
    01031
    01032
    01047 U_STABLE const char * U_EXPORT2
    01048 ucol_getLocaleByType(const UCollator *coll, ULocDataLocaleType type, UErrorCode *status);
    01049
    01060 U_STABLE USet * U_EXPORT2
    01061 ucol_getTailoredSet(const UCollator *coll, UErrorCode *status);
    01062
    01074 U_INTERNAL UColAttributeValue  U_EXPORT2
    01075 ucol_getAttributeOrDefault(const UCollator *coll, UColAttribute attr, UErrorCode *status);
    01076
    01085 U_INTERNAL UBool U_EXPORT2
    01086 ucol_equals(const UCollator *source, const UCollator *target);
    01087
    01099 U_INTERNAL int32_t U_EXPORT2
    01100 ucol_getUnsafeSet( const UCollator *coll,
    01101                   USet *unsafe,
    01102                   UErrorCode *status);
    01103
    01107 U_INTERNAL void U_EXPORT2
    01108 ucol_forgetUCA(void);
    01109
    01130 U_INTERNAL void U_EXPORT2
    01131 ucol_prepareShortStringOpen( const char *definition,
    01132                           UBool forceDefaults,
    01133                           UParseError *parseError,
    01134                           UErrorCode *status);
    01135
    01147 U_STABLE int32_t U_EXPORT2
    01148 ucol_cloneBinary(const UCollator *coll,
    01149                  uint8_t *buffer, int32_t capacity,
    01150                  UErrorCode *status);
    01151
    01169 U_STABLE UCollator* U_EXPORT2
    01170 ucol_openBinary(const uint8_t *bin, int32_t length,
    01171                 const UCollator *base,
    01172                 UErrorCode *status);
    01173
    01174
    01175 #endif /* #if !UCONFIG_NO_COLLATION */
    01176
    01177 #endif
    01178

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines