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 

Generated on Tue Apr 27 15:10:34 2010 for ICU 4.4.1 by  doxygen 1.4.7