X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/73c04bcfe1096173b00431f0cdc742894b15eef0..4388f060552cc537e71e957d32f35e9d75a61233:/icuSources/i18n/unicode/ulocdata.h diff --git a/icuSources/i18n/unicode/ulocdata.h b/icuSources/i18n/unicode/ulocdata.h index 667fc155..d9dd79e5 100644 --- a/icuSources/i18n/unicode/ulocdata.h +++ b/icuSources/i18n/unicode/ulocdata.h @@ -1,7 +1,7 @@ /* ****************************************************************************** * * -* Copyright (C) 2003-2006, International Business Machines * +* Copyright (C) 2003-2012, International Business Machines * * Corporation and others. All Rights Reserved. * * * ****************************************************************************** @@ -20,42 +20,49 @@ #include "unicode/ures.h" #include "unicode/uloc.h" #include "unicode/uset.h" +#include "unicode/localpointer.h" /** * \file - * \brief C API: Provides access to locale data. + * \brief C API: Provides access to locale data. */ -/** Forward declaration of the ULocaleData structure. @draft ICU 3.6 */ +/** Forward declaration of the ULocaleData structure. @stable ICU 3.6 */ struct ULocaleData; -/** A locale data object. @draft ICU 3.6 */ +/** A locale data object. @stable ICU 3.6 */ typedef struct ULocaleData ULocaleData; /** The possible types of exemplar character sets. - * @draft ICU 3.4 + * @stable ICU 3.4 */ typedef enum ULocaleDataExemplarSetType { -#ifndef U_HIDE_DRAFT_API - ULOCDATA_ES_STANDARD=0, /* Basic set */ - ULOCDATA_ES_AUXILIARY=1, /* Auxiliary set */ -#endif - ULOCDATA_ES_COUNT=3 + /** Basic set @stable ICU 3.4 */ + ULOCDATA_ES_STANDARD=0, + /** Auxiliary set @stable ICU 3.4 */ + ULOCDATA_ES_AUXILIARY=1, + /** Index Character set @stable ICU 4.8 */ + ULOCDATA_ES_INDEX=2, + /** One higher than the last valid type @stable ICU 3.4 */ + ULOCDATA_ES_COUNT=3 } ULocaleDataExemplarSetType; /** The possible types of delimiters. - * @draft ICU 3.4 + * @stable ICU 3.4 */ typedef enum ULocaleDataDelimiterType { -#ifndef U_HIDE_DRAFT_API - ULOCDATA_QUOTATION_START = 0, /* Quotation start */ - ULOCDATA_QUOTATION_END = 1, /* Quotation end */ - ULOCDATA_ALT_QUOTATION_START = 2, /* Alternate quotation start */ - ULOCDATA_ALT_QUOTATION_END = 3, /* Alternate quotation end */ -#endif - ULOCDATA_DELIMITER_COUNT = 4 + /** Quotation start @stable ICU 3.4 */ + ULOCDATA_QUOTATION_START = 0, + /** Quotation end @stable ICU 3.4 */ + ULOCDATA_QUOTATION_END = 1, + /** Alternate quotation start @stable ICU 3.4 */ + ULOCDATA_ALT_QUOTATION_START = 2, + /** Alternate quotation end @stable ICU 3.4 */ + ULOCDATA_ALT_QUOTATION_END = 3, + /** One higher than the last valid type @stable ICU 3.4 */ + ULOCDATA_DELIMITER_COUNT = 4 } ULocaleDataDelimiterType; /** @@ -64,20 +71,39 @@ typedef enum ULocaleDataDelimiterType { * @param localeID Specifies the locale associated with this locale * data object. * @param status Pointer to error status code. - * @draft ICU 3.4 + * @stable ICU 3.4 */ -U_DRAFT ULocaleData* U_EXPORT2 +U_STABLE ULocaleData* U_EXPORT2 ulocdata_open(const char *localeID, UErrorCode *status); /** * Closes a locale data object. * * @param uld The locale data object to close - * @draft ICU 3.4 + * @stable ICU 3.4 */ -U_DRAFT void U_EXPORT2 +U_STABLE void U_EXPORT2 ulocdata_close(ULocaleData *uld); +#if U_SHOW_CPLUSPLUS_API + +U_NAMESPACE_BEGIN + +/** + * \class LocalULocaleDataPointer + * "Smart pointer" class, closes a ULocaleData via ulocdata_close(). + * For most methods see the LocalPointerBase base class. + * + * @see LocalPointerBase + * @see LocalPointer + * @stable ICU 4.4 + */ +U_DEFINE_LOCAL_OPEN_POINTER(LocalULocaleDataPointer, ULocaleData, ulocdata_close); + +U_NAMESPACE_END + +#endif + /** * Sets the "no Substitute" attribute of the locale data * object. If true, then any methods associated with the @@ -87,9 +113,9 @@ ulocdata_close(ULocaleData *uld); * * @param uld The locale data object to set. * @param setting Value of the "no substitute" attribute. - * @draft ICU 3.4 + * @stable ICU 3.4 */ -U_DRAFT void U_EXPORT2 +U_STABLE void U_EXPORT2 ulocdata_setNoSubstitute(ULocaleData *uld, UBool setting); /** @@ -101,17 +127,17 @@ ulocdata_setNoSubstitute(ULocaleData *uld, UBool setting); * * @param uld Pointer to the The locale data object to set. * @return UBool Value of the "no substitute" attribute. - * @draft ICU 3.4 + * @stable ICU 3.4 */ -U_DRAFT UBool U_EXPORT2 +U_STABLE UBool U_EXPORT2 ulocdata_getNoSubstitute(ULocaleData *uld); /** * Returns the set of exemplar characters for a locale. * - * @param uld Pointer to the locale data object from which the + * @param uld Pointer to the locale data object from which the * exemplar character set is to be retrieved. - * @param fillIn Pointer to a USet object to receive the + * @param fillIn Pointer to a USet object to receive the * exemplar character set for the given locale. Previous * contents of fillIn are lost. If fillIn is NULL, * then a new USet is created and returned. The caller @@ -126,19 +152,21 @@ ulocdata_getNoSubstitute(ULocaleData *uld); * always set, regardless of the value of 'options'. * @param extype Specifies the type of exemplar set to be retrieved. * @param status Pointer to an input-output error code value; - * must not be NULL. + * must not be NULL. Will be set to U_MISSING_RESOURCE_ERROR + * if the requested data is not available. * @return USet* Either fillIn, or if fillIn is NULL, a pointer to * a newly-allocated USet that the user must close. - * @draft ICU 3.4 + * In case of error, NULL is returned. + * @stable ICU 3.4 */ -U_DRAFT USet* U_EXPORT2 -ulocdata_getExemplarSet(ULocaleData *uld, USet *fillIn, +U_STABLE USet* U_EXPORT2 +ulocdata_getExemplarSet(ULocaleData *uld, USet *fillIn, uint32_t options, ULocaleDataExemplarSetType extype, UErrorCode *status); /** * Returns one of the delimiter strings associated with a locale. * - * @param uld Pointer to the locale data object from which the + * @param uld Pointer to the locale data object from which the * delimiter string is to be retrieved. * @param type the type of delimiter to be retrieved. * @param result A pointer to a buffer to receive the result. @@ -146,9 +174,9 @@ ulocdata_getExemplarSet(ULocaleData *uld, USet *fillIn, * @param status Pointer to an error code value * @return int32_t The total buffer size needed; if greater than resultLength, * the output was truncated. - * @draft ICU 3.4 + * @stable ICU 3.4 */ -U_DRAFT int32_t U_EXPORT2 +U_STABLE int32_t U_EXPORT2 ulocdata_getDelimiter(ULocaleData *uld, ULocaleDataDelimiterType type, UChar *result, int32_t resultLength, UErrorCode *status); /** @@ -157,7 +185,7 @@ ulocdata_getDelimiter(ULocaleData *uld, ULocaleDataDelimiterType type, UChar *re */ typedef enum UMeasurementSystem { UMS_SI, /** Measurement system specified by SI otherwise known as Metric system. */ - UMS_US, /** Measurement system followed in the United States of America. */ + UMS_US, /** Measurement system followed in the United States of America. */ UMS_LIMIT } UMeasurementSystem; @@ -175,11 +203,11 @@ U_STABLE UMeasurementSystem U_EXPORT2 ulocdata_getMeasurementSystem(const char *localeID, UErrorCode *status); /** - * Returns the element gives the normal business letter size, and customary units. + * Returns the element gives the normal business letter size, and customary units. * The units for the numbers are always in milli-meters. * For US since 8.5 and 11 do not yeild an integral value when converted to milli-meters, * the values are rounded off. - * So for A4 size paper the height and width are 297 mm and 210 mm repectively, + * So for A4 size paper the height and width are 297 mm and 210 mm repectively, * and for US letter size the height and width are 279 mm and 216 mm respectively. * Please note that this API will change in ICU 3.6 and will use an ulocdata object. * @@ -193,4 +221,55 @@ ulocdata_getMeasurementSystem(const char *localeID, UErrorCode *status); U_STABLE void U_EXPORT2 ulocdata_getPaperSize(const char *localeID, int32_t *height, int32_t *width, UErrorCode *status); +/** + * Return the current CLDR version used by the library. + * @param versionArray fillin that will recieve the version number + * @param status error code - could be U_MISSING_RESOURCE_ERROR if the version was not found. + * @stable ICU 4.2 + */ +U_STABLE void U_EXPORT2 +ulocdata_getCLDRVersion(UVersionInfo versionArray, UErrorCode *status); + +/** + * Returns locale display pattern associated with a locale. + * + * @param uld Pointer to the locale data object from which the + * exemplar character set is to be retrieved. + * @param pattern locale display pattern for locale. + * @param patternCapacity the size of the buffer to store the locale display + * pattern with. + * @param status Must be a valid pointer to an error code value, + * which must not indicate a failure before the function call. + * @return the actual buffer size needed for localeDisplayPattern. If it's greater + * than patternCapacity, the returned pattern will be truncated. + * + * @stable ICU 4.2 + */ +U_STABLE int32_t U_EXPORT2 +ulocdata_getLocaleDisplayPattern(ULocaleData *uld, + UChar *pattern, + int32_t patternCapacity, + UErrorCode *status); + + +/** + * Returns locale separator associated with a locale. + * + * @param uld Pointer to the locale data object from which the + * exemplar character set is to be retrieved. + * @param separator locale separator for locale. + * @param separatorCapacity the size of the buffer to store the locale + * separator with. + * @param status Must be a valid pointer to an error code value, + * which must not indicate a failure before the function call. + * @return the actual buffer size needed for localeSeparator. If it's greater + * than separatorCapacity, the returned separator will be truncated. + * + * @stable ICU 4.2 + */ +U_STABLE int32_t U_EXPORT2 +ulocdata_getLocaleSeparator(ULocaleData *uld, + UChar *separator, + int32_t separatorCapacity, + UErrorCode *status); #endif