X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/46f4442e9a5a4f3b98b7c1083586332f6a8a99a4..a0b4f637ba1a6c3c5651b61a69303b029bacf7d3:/icuSources/i18n/unicode/ulocdata.h?ds=sidebyside diff --git a/icuSources/i18n/unicode/ulocdata.h b/icuSources/i18n/unicode/ulocdata.h index 4a69994f..63495f68 100644 --- a/icuSources/i18n/unicode/ulocdata.h +++ b/icuSources/i18n/unicode/ulocdata.h @@ -1,7 +1,7 @@ /* ****************************************************************************** * * -* Copyright (C) 2003-2007, International Business Machines * +* Copyright (C) 2003-2015, International Business Machines * * Corporation and others. All Rights Reserved. * * * ****************************************************************************** @@ -20,10 +20,11 @@ #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. @stable ICU 3.6 */ @@ -38,20 +39,32 @@ typedef struct ULocaleData ULocaleData; * @stable ICU 3.4 */ typedef enum ULocaleDataExemplarSetType { - ULOCDATA_ES_STANDARD=0, /* Basic set */ - ULOCDATA_ES_AUXILIARY=1, /* Auxiliary set */ - ULOCDATA_ES_COUNT=2 + /** 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, + /** Punctuation set @stable ICU 51 */ + ULOCDATA_ES_PUNCTUATION=3, + /** One higher than the last valid type @stable ICU 3.4 */ + ULOCDATA_ES_COUNT=4 } ULocaleDataExemplarSetType; /** The possible types of delimiters. * @stable ICU 3.4 */ typedef enum ULocaleDataDelimiterType { - 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 */ - 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; /** @@ -62,7 +75,7 @@ typedef enum ULocaleDataDelimiterType { * @param status Pointer to error status code. * @stable ICU 3.4 */ -U_STABLE ULocaleData* U_EXPORT2 +U_STABLE ULocaleData* U_EXPORT2 ulocdata_open(const char *localeID, UErrorCode *status); /** @@ -71,9 +84,28 @@ ulocdata_open(const char *localeID, UErrorCode *status); * @param uld The locale data object to close * @stable ICU 3.4 */ -U_STABLE 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 @@ -85,7 +117,7 @@ ulocdata_close(ULocaleData *uld); * @param setting Value of the "no substitute" attribute. * @stable ICU 3.4 */ -U_STABLE void U_EXPORT2 +U_STABLE void U_EXPORT2 ulocdata_setNoSubstitute(ULocaleData *uld, UBool setting); /** @@ -99,15 +131,15 @@ ulocdata_setNoSubstitute(ULocaleData *uld, UBool setting); * @return UBool Value of the "no substitute" attribute. * @stable ICU 3.4 */ -U_STABLE 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 @@ -122,19 +154,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. + * In case of error, NULL is returned. * @stable ICU 3.4 */ -U_STABLE 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. @@ -144,7 +178,7 @@ ulocdata_getExemplarSet(ULocaleData *uld, USet *fillIn, * the output was truncated. * @stable ICU 3.4 */ -U_STABLE int32_t U_EXPORT2 +U_STABLE int32_t U_EXPORT2 ulocdata_getDelimiter(ULocaleData *uld, ULocaleDataDelimiterType type, UChar *result, int32_t resultLength, UErrorCode *status); /** @@ -152,8 +186,9 @@ ulocdata_getDelimiter(ULocaleData *uld, ULocaleDataDelimiterType type, UChar *re * @stable ICU 2.8 */ 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_SI, /**< Measurement system specified by SI otherwise known as Metric system. @stable ICU 2.8 */ + UMS_US, /**< Measurement system followed in the United States of America. @stable ICU 2.8 */ + UMS_UK, /**< Mix of metric and imperial units used in Great Britain. @stable ICU 55 */ UMS_LIMIT } UMeasurementSystem; @@ -171,11 +206,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. * @@ -189,4 +224,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