diff options
Diffstat (limited to 'Build/source/libs/icu/icu-50.1/i18n/ucol_wgt.h')
-rw-r--r-- | Build/source/libs/icu/icu-50.1/i18n/ucol_wgt.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/Build/source/libs/icu/icu-50.1/i18n/ucol_wgt.h b/Build/source/libs/icu/icu-50.1/i18n/ucol_wgt.h new file mode 100644 index 00000000000..b3cb4c9b4f6 --- /dev/null +++ b/Build/source/libs/icu/icu-50.1/i18n/ucol_wgt.h @@ -0,0 +1,70 @@ +/* +******************************************************************************* +* +* Copyright (C) 1999-2008, International Business Machines +* Corporation and others. All Rights Reserved. +* +******************************************************************************* +* file name: ucol_wgt.h +* encoding: US-ASCII +* tab size: 8 (not used) +* indentation:4 +* +* created on: 2001mar08 +* created by: Markus W. Scherer +*/ + +#ifndef UCOL_WGT_H +#define UCOL_WGT_H + +#include "unicode/utypes.h" + +#if !UCONFIG_NO_COLLATION + +/* definitions for CE weights */ + +typedef struct WeightRange { + uint32_t start, end; + int32_t length, count; + int32_t length2; + uint32_t count2; +} WeightRange; + +/** + * Determine heuristically + * what ranges to use for a given number of weights between (excluding) + * two limits. + * + * @param lowerLimit A collation element weight; the ranges will be filled to cover + * weights greater than this one. + * @param upperLimit A collation element weight; the ranges will be filled to cover + * weights less than this one. + * @param n The number of collation element weights w necessary such that + * lowerLimit<w<upperLimit in lexical order. + * @param maxByte The highest valid byte value. + * @param ranges An array that is filled in with one or more ranges to cover + * n weights between the limits. + * @return number of ranges, 0 if it is not possible to fit n elements between the limits + */ +U_CFUNC int32_t +ucol_allocWeights(uint32_t lowerLimit, uint32_t upperLimit, + uint32_t n, + uint32_t maxByte, + WeightRange ranges[7]); + +/** + * Given a set of ranges calculated by ucol_allocWeights(), + * iterate through the weights. + * The ranges are modified to keep the current iteration state. + * + * @param ranges The array of ranges that ucol_allocWeights() filled in. + * The ranges are modified. + * @param pRangeCount The number of ranges. It will be decremented when necessary. + * @return The next weight in the ranges, or 0xffffffff if there is none left. + */ +U_CFUNC uint32_t +ucol_nextWeight(WeightRange ranges[], int32_t *pRangeCount); + +#endif /* #if !UCONFIG_NO_COLLATION */ + +#endif |