Main Page | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

ucol.h

Go to the documentation of this file.
00001 /* 00002 ******************************************************************************* 00003 * Copyright (c) {1996-2001}, 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 #include "unicode/unorm.h" 00013 #include "unicode/parseerr.h" 00014 #include "unicode/uloc.h" 00015 00052 struct collIterate; 00054 typedef struct collIterate collIterate; 00055 00059 struct UCollator; 00061 typedef struct UCollator UCollator; 00062 00063 00074 typedef enum { 00076 UCOL_EQUAL = 0, 00078 UCOL_GREATER = 1, 00080 UCOL_LESS = -1 00081 } UCollationResult ; 00082 00083 00085 /* Here are all the allowable values. Not every attribute can take every value. The only */ 00086 /* universal value is UCOL_DEFAULT, which resets the attribute value to the predefined */ 00087 /* value for that locale */ 00088 typedef enum { 00090 UCOL_DEFAULT = -1, 00091 00093 UCOL_PRIMARY = 0, 00095 UCOL_SECONDARY = 1, 00097 UCOL_TERTIARY = 2, 00099 UCOL_DEFAULT_STRENGTH = UCOL_TERTIARY, 00100 UCOL_CE_STRENGTH_LIMIT, 00102 UCOL_QUATERNARY=3, 00104 UCOL_IDENTICAL=15, 00105 UCOL_STRENGTH_LIMIT, 00106 00110 UCOL_OFF = 16, 00114 UCOL_ON = 17, 00115 00117 UCOL_SHIFTED = 20, 00119 UCOL_NON_IGNORABLE = 21, 00120 00123 UCOL_LOWER_FIRST = 24, 00125 UCOL_UPPER_FIRST = 25, 00126 00130 UCOL_ON_WITHOUT_HANGUL = 28, 00131 00132 UCOL_ATTRIBUTE_VALUE_COUNT 00133 00134 } UColAttributeValue; 00135 00161 typedef UColAttributeValue UCollationStrength; 00162 00165 typedef enum { 00170 UCOL_FRENCH_COLLATION, 00179 UCOL_ALTERNATE_HANDLING, 00186 UCOL_CASE_FIRST, 00194 UCOL_CASE_LEVEL, 00202 UCOL_NORMALIZATION_MODE, 00204 UCOL_DECOMPOSITION_MODE = UCOL_NORMALIZATION_MODE, 00215 UCOL_STRENGTH, 00221 UCOL_HIRAGANA_QUATERNARY_MODE, 00222 UCOL_ATTRIBUTE_COUNT 00223 } UColAttribute; 00224 00226 typedef enum { 00227 UCOL_TAILORING_ONLY, 00228 UCOL_FULL_RULES 00229 } UColRuleOption ; 00230 00246 U_CAPI UCollator* U_EXPORT2 00247 ucol_open(const char *loc, UErrorCode *status); 00248 00274 U_CAPI UCollator* U_EXPORT2 00275 ucol_openRules( const UChar *rules, 00276 int32_t rulesLength, 00277 UColAttributeValue normalizationMode, 00278 UCollationStrength strength, 00279 UParseError *parseError, 00280 UErrorCode *status); 00281 00292 U_CAPI void U_EXPORT2 00293 ucol_close(UCollator *coll); 00294 00310 U_CAPI UCollationResult U_EXPORT2 00311 ucol_strcoll( const UCollator *coll, 00312 const UChar *source, 00313 int32_t sourceLength, 00314 const UChar *target, 00315 int32_t targetLength); 00316 00331 U_CAPI UBool U_EXPORT2 00332 ucol_greater(const UCollator *coll, 00333 const UChar *source, int32_t sourceLength, 00334 const UChar *target, int32_t targetLength); 00335 00350 U_CAPI UBool U_EXPORT2 00351 ucol_greaterOrEqual(const UCollator *coll, 00352 const UChar *source, int32_t sourceLength, 00353 const UChar *target, int32_t targetLength); 00354 00369 U_CAPI UBool U_EXPORT2 00370 ucol_equal(const UCollator *coll, 00371 const UChar *source, int32_t sourceLength, 00372 const UChar *target, int32_t targetLength); 00373 00383 U_CAPI UCollationStrength U_EXPORT2 00384 ucol_getStrength(const UCollator *coll); 00385 00395 U_CAPI void U_EXPORT2 00396 ucol_setStrength(UCollator *coll, 00397 UCollationStrength strength); 00398 00411 U_CAPI int32_t U_EXPORT2 00412 ucol_getDisplayName( const char *objLoc, 00413 const char *dispLoc, 00414 UChar *result, 00415 int32_t resultLength, 00416 UErrorCode *status); 00417 00427 U_CAPI const char* U_EXPORT2 00428 ucol_getAvailable(int32_t index); 00429 00438 U_CAPI int32_t U_EXPORT2 00439 ucol_countAvailable(void); 00440 00449 U_CAPI const UChar* U_EXPORT2 00450 ucol_getRules( const UCollator *coll, 00451 int32_t *length); 00452 00465 U_CAPI int32_t U_EXPORT2 00466 ucol_getSortKey(const UCollator *coll, 00467 const UChar *source, 00468 int32_t sourceLength, 00469 uint8_t *result, 00470 int32_t resultLength); 00471 00473 /* See below for explanation */ 00474 /* do not change the values assigned to the */ 00475 /* members of this enum. Underlying code */ 00476 /* depends on them having these numbers */ 00477 typedef enum { 00479 UCOL_BOUND_LOWER = 0, 00481 UCOL_BOUND_UPPER = 1, 00483 UCOL_BOUND_UPPER_LONG = 2, 00484 UCOL_BOUND_VALUE_COUNT 00485 } UColBoundMode; 00486 00524 U_CAPI int32_t U_EXPORT2 00525 ucol_getBound(const uint8_t *source, 00526 int32_t sourceLength, 00527 UColBoundMode boundType, 00528 uint32_t noOfLevels, 00529 uint8_t *result, 00530 int32_t resultLength, 00531 UErrorCode *status); 00532 00538 U_CAPI void U_EXPORT2 00539 ucol_getVersion(const UCollator* coll, UVersionInfo info); 00540 00541 00562 U_CAPI int32_t U_EXPORT2 00563 ucol_mergeSortkeys(const uint8_t *src1, int32_t src1Length, 00564 const uint8_t *src2, int32_t src2Length, 00565 uint8_t *dest, int32_t destCapacity); 00566 00578 U_CAPI void U_EXPORT2 00579 ucol_setAttribute(UCollator *coll, UColAttribute attr, UColAttributeValue value, UErrorCode *status); 00580 00592 U_CAPI UColAttributeValue U_EXPORT2 00593 ucol_getAttribute(const UCollator *coll, UColAttribute attr, UErrorCode *status); 00594 00614 U_CAPI uint32_t U_EXPORT2 00615 ucol_setVariableTop(UCollator *coll, 00616 const UChar *varTop, int32_t len, 00617 UErrorCode *status); 00618 00629 U_CAPI uint32_t ucol_getVariableTop(const UCollator *coll, UErrorCode *status); 00630 00642 U_CAPI void U_EXPORT2 00643 ucol_restoreVariableTop(UCollator *coll, const uint32_t varTop, UErrorCode *status); 00644 00667 U_CAPI UCollator* U_EXPORT2 00668 ucol_safeClone(const UCollator *coll, 00669 void *stackBuffer, 00670 int32_t *pBufferSize, 00671 UErrorCode *status); 00672 00674 #define U_COL_SAFECLONE_BUFFERSIZE 384 00675 00686 U_CAPI int32_t U_EXPORT2 00687 ucol_getRulesEx(const UCollator *coll, UColRuleOption delta, UChar *buffer, int32_t bufferLen); 00688 00689 00690 /********************************* Deprecated API ********************************/ 00691 /* This is the C API wrapper for CollationIterator that got booted out from here, including just for */ 00692 /* include backward compatibility */ 00693 /* @deprecated remove after nov-2002 */ 00694 #include "unicode/ucoleitr.h" 00695 00717 U_CAPI UCollator * U_EXPORT2 00718 ucol_openVersion(const char *loc, 00719 UVersionInfo version, 00720 UErrorCode *status); 00721 00730 U_CAPI UNormalizationMode U_EXPORT2 00731 ucol_getNormalization(const UCollator* coll); 00732 00743 U_CAPI void U_EXPORT2 00744 ucol_setNormalization( UCollator *coll, 00745 UNormalizationMode mode); 00746 00760 U_CAPI const char * U_EXPORT2 00761 ucol_getLocale(const UCollator *coll, ULocDataLocaleType type, UErrorCode *status); 00762 00766 #ifdef U_USE_DEPRECATED_FORMAT_API 00767 00768 #if ((U_ICU_VERSION_MAJOR_NUM != 2) || (U_ICU_VERSION_MINOR_NUM !=1)) 00769 # error "ICU version has changed. Please redefine the macros under U_USE_DEPRECATED_FORMAT_API pre-processor definition" 00770 #else 00771 # define ucol_openRules_2_1(rules,rulesLength,normalizationMode,strength,status) ucol_openRules(rules,rulesLength,(UColAttributeValue)normalizationMode,strength,NULL,status) 00772 #endif 00773 00774 #endif 00775 /********************************* End *******************************************/ 00776 00777 #endif

Generated on Wed Aug 18 05:18:14 2004 for ICU 2.1 by doxygen 1.3.7