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-2003, 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/parseerr.h" 00017 #include "unicode/uloc.h" 00018 #include "unicode/uset.h" 00019 00056 struct collIterate; 00060 typedef struct collIterate collIterate; 00061 00065 struct UCollator; 00069 typedef struct UCollator UCollator; 00070 00071 00084 typedef enum { 00086 UCOL_EQUAL = 0, 00088 UCOL_GREATER = 1, 00090 UCOL_LESS = -1 00091 } UCollationResult ; 00092 00093 00100 typedef enum { 00102 UCOL_DEFAULT = -1, 00103 00105 UCOL_PRIMARY = 0, 00107 UCOL_SECONDARY = 1, 00109 UCOL_TERTIARY = 2, 00111 UCOL_DEFAULT_STRENGTH = UCOL_TERTIARY, 00112 UCOL_CE_STRENGTH_LIMIT, 00114 UCOL_QUATERNARY=3, 00116 UCOL_IDENTICAL=15, 00117 UCOL_STRENGTH_LIMIT, 00118 00122 UCOL_OFF = 16, 00126 UCOL_ON = 17, 00127 00129 UCOL_SHIFTED = 20, 00131 UCOL_NON_IGNORABLE = 21, 00132 00135 UCOL_LOWER_FIRST = 24, 00137 UCOL_UPPER_FIRST = 25, 00138 00139 UCOL_ATTRIBUTE_VALUE_COUNT 00140 00141 } UColAttributeValue; 00142 00169 typedef UColAttributeValue UCollationStrength; 00170 00175 typedef enum { 00180 UCOL_FRENCH_COLLATION, 00189 UCOL_ALTERNATE_HANDLING, 00196 UCOL_CASE_FIRST, 00204 UCOL_CASE_LEVEL, 00212 UCOL_NORMALIZATION_MODE, 00214 UCOL_DECOMPOSITION_MODE = UCOL_NORMALIZATION_MODE, 00225 UCOL_STRENGTH, 00231 UCOL_HIRAGANA_QUATERNARY_MODE, 00237 UCOL_NUMERIC_COLLATION, 00238 UCOL_ATTRIBUTE_COUNT 00239 } UColAttribute; 00240 00244 typedef enum { 00246 UCOL_TAILORING_ONLY, 00248 UCOL_FULL_RULES 00249 } UColRuleOption ; 00250 00268 U_CAPI UCollator* U_EXPORT2 00269 ucol_open(const char *loc, UErrorCode *status); 00270 00296 U_CAPI UCollator* U_EXPORT2 00297 ucol_openRules( const UChar *rules, 00298 int32_t rulesLength, 00299 UColAttributeValue normalizationMode, 00300 UCollationStrength strength, 00301 UParseError *parseError, 00302 UErrorCode *status); 00303 00314 U_CAPI void U_EXPORT2 00315 ucol_close(UCollator *coll); 00316 00332 U_CAPI UCollationResult U_EXPORT2 00333 ucol_strcoll( const UCollator *coll, 00334 const UChar *source, 00335 int32_t sourceLength, 00336 const UChar *target, 00337 int32_t targetLength); 00338 00353 U_CAPI UBool U_EXPORT2 00354 ucol_greater(const UCollator *coll, 00355 const UChar *source, int32_t sourceLength, 00356 const UChar *target, int32_t targetLength); 00357 00372 U_CAPI UBool U_EXPORT2 00373 ucol_greaterOrEqual(const UCollator *coll, 00374 const UChar *source, int32_t sourceLength, 00375 const UChar *target, int32_t targetLength); 00376 00391 U_CAPI UBool U_EXPORT2 00392 ucol_equal(const UCollator *coll, 00393 const UChar *source, int32_t sourceLength, 00394 const UChar *target, int32_t targetLength); 00395 00408 U_CAPI UCollationResult U_EXPORT2 00409 ucol_strcollIter( const UCollator *coll, 00410 UCharIterator *sIter, 00411 UCharIterator *tIter, 00412 UErrorCode *status); 00413 00423 U_CAPI UCollationStrength U_EXPORT2 00424 ucol_getStrength(const UCollator *coll); 00425 00435 U_CAPI void U_EXPORT2 00436 ucol_setStrength(UCollator *coll, 00437 UCollationStrength strength); 00438 00451 U_CAPI int32_t U_EXPORT2 00452 ucol_getDisplayName( const char *objLoc, 00453 const char *dispLoc, 00454 UChar *result, 00455 int32_t resultLength, 00456 UErrorCode *status); 00457 00467 U_CAPI const char* U_EXPORT2 00468 ucol_getAvailable(int32_t index); 00469 00478 U_CAPI int32_t U_EXPORT2 00479 ucol_countAvailable(void); 00480 00489 U_CAPI const UChar* U_EXPORT2 00490 ucol_getRules( const UCollator *coll, 00491 int32_t *length); 00492 00505 U_CAPI int32_t U_EXPORT2 00506 ucol_getSortKey(const UCollator *coll, 00507 const UChar *source, 00508 int32_t sourceLength, 00509 uint8_t *result, 00510 int32_t resultLength); 00511 00512 00533 U_CAPI int32_t U_EXPORT2 00534 ucol_nextSortKeyPart(const UCollator *coll, 00535 UCharIterator *iter, 00536 uint32_t state[2], 00537 uint8_t *dest, int32_t count, 00538 UErrorCode *status); 00539 00547 typedef enum { 00549 UCOL_BOUND_LOWER = 0, 00551 UCOL_BOUND_UPPER = 1, 00553 UCOL_BOUND_UPPER_LONG = 2, 00554 UCOL_BOUND_VALUE_COUNT 00555 } UColBoundMode; 00556 00594 U_CAPI int32_t U_EXPORT2 00595 ucol_getBound(const uint8_t *source, 00596 int32_t sourceLength, 00597 UColBoundMode boundType, 00598 uint32_t noOfLevels, 00599 uint8_t *result, 00600 int32_t resultLength, 00601 UErrorCode *status); 00602 00611 U_CAPI void U_EXPORT2 00612 ucol_getVersion(const UCollator* coll, UVersionInfo info); 00613 00621 U_CAPI void U_EXPORT2 00622 ucol_getUCAVersion(const UCollator* coll, UVersionInfo info); 00623 00646 U_CAPI int32_t U_EXPORT2 00647 ucol_mergeSortkeys(const uint8_t *src1, int32_t src1Length, 00648 const uint8_t *src2, int32_t src2Length, 00649 uint8_t *dest, int32_t destCapacity); 00650 00662 U_CAPI void U_EXPORT2 00663 ucol_setAttribute(UCollator *coll, UColAttribute attr, UColAttributeValue value, UErrorCode *status); 00664 00676 U_CAPI UColAttributeValue U_EXPORT2 00677 ucol_getAttribute(const UCollator *coll, UColAttribute attr, UErrorCode *status); 00678 00698 U_CAPI uint32_t U_EXPORT2 00699 ucol_setVariableTop(UCollator *coll, 00700 const UChar *varTop, int32_t len, 00701 UErrorCode *status); 00702 00714 U_CAPI uint32_t U_EXPORT2 ucol_getVariableTop(const UCollator *coll, UErrorCode *status); 00715 00727 U_CAPI void U_EXPORT2 00728 ucol_restoreVariableTop(UCollator *coll, const uint32_t varTop, UErrorCode *status); 00729 00752 U_CAPI UCollator* U_EXPORT2 00753 ucol_safeClone(const UCollator *coll, 00754 void *stackBuffer, 00755 int32_t *pBufferSize, 00756 UErrorCode *status); 00757 00761 #define U_COL_SAFECLONE_BUFFERSIZE 512 00762 00774 U_CAPI int32_t U_EXPORT2 00775 ucol_getRulesEx(const UCollator *coll, UColRuleOption delta, UChar *buffer, int32_t bufferLen); 00776 00791 U_CAPI const char * U_EXPORT2 00792 ucol_getLocale(const UCollator *coll, ULocDataLocaleType type, UErrorCode *status); 00793 00794 00809 U_CAPI const char * U_EXPORT2 00810 ucol_getLocaleByType(const UCollator *coll, ULocDataLocaleType type, UErrorCode *status); 00811 00822 U_CAPI USet * U_EXPORT2 00823 ucol_getTailoredSet(const UCollator *coll, UErrorCode *status); 00824 00825 #endif /* #if !UCONFIG_NO_COLLATION */ 00826 00827 #endif 00828

Generated on Wed Jul 28 09:15:54 2004 for ICU 2.8 by doxygen 1.3.7