Index: icu46/source/i18n/unicode/ucurr.h |
=================================================================== |
--- icu46/source/i18n/unicode/ucurr.h (revision 0) |
+++ icu46/source/i18n/unicode/ucurr.h (revision 0) |
@@ -0,0 +1,316 @@ |
+/* |
+********************************************************************** |
+* Copyright (c) 2002-2010, International Business Machines |
+* Corporation and others. All Rights Reserved. |
+********************************************************************** |
+*/ |
+#ifndef _UCURR_H_ |
+#define _UCURR_H_ |
+ |
+#include "unicode/utypes.h" |
+#include "unicode/uenum.h" |
+ |
+/** |
+ * \file |
+ * \brief C API: Encapsulates information about a currency. |
+ */ |
+ |
+#if !UCONFIG_NO_FORMATTING |
+ |
+/** |
+ * The ucurr API encapsulates information about a currency, as defined by |
+ * ISO 4217. A currency is represented by a 3-character string |
+ * containing its ISO 4217 code. This API can return various data |
+ * necessary the proper display of a currency: |
+ * |
+ * <ul><li>A display symbol, for a specific locale |
+ * <li>The number of fraction digits to display |
+ * <li>A rounding increment |
+ * </ul> |
+ * |
+ * The <tt>DecimalFormat</tt> class uses these data to display |
+ * currencies. |
+ * @author Alan Liu |
+ * @since ICU 2.2 |
+ */ |
+ |
+/** |
+ * Finds a currency code for the given locale. |
+ * @param locale the locale for which to retrieve a currency code. |
+ * Currency can be specified by the "currency" keyword |
+ * in which case it overrides the default currency code |
+ * @param buff fill in buffer. Can be NULL for preflighting. |
+ * @param buffCapacity capacity of the fill in buffer. Can be 0 for |
+ * preflighting. If it is non-zero, the buff parameter |
+ * must not be NULL. |
+ * @param ec error code |
+ * @return length of the currency string. It should always be 3. If 0, |
+ * currency couldn't be found or the input values are |
+ * invalid. |
+ * @stable ICU 2.8 |
+ */ |
+U_STABLE int32_t U_EXPORT2 |
+ucurr_forLocale(const char* locale, |
+ UChar* buff, |
+ int32_t buffCapacity, |
+ UErrorCode* ec); |
+ |
+/** |
+ * Selector constants for ucurr_getName(). |
+ * |
+ * @see ucurr_getName |
+ * @stable ICU 2.6 |
+ */ |
+typedef enum UCurrNameStyle { |
+ /** |
+ * Selector for ucurr_getName indicating a symbolic name for a |
+ * currency, such as "$" for USD. |
+ * @stable ICU 2.6 |
+ */ |
+ UCURR_SYMBOL_NAME, |
+ |
+ /** |
+ * Selector for ucurr_getName indicating the long name for a |
+ * currency, such as "US Dollar" for USD. |
+ * @stable ICU 2.6 |
+ */ |
+ UCURR_LONG_NAME |
+} UCurrNameStyle; |
+ |
+#if !UCONFIG_NO_SERVICE |
+/** |
+ * @stable ICU 2.6 |
+ */ |
+typedef const void* UCurrRegistryKey; |
+ |
+/** |
+ * Register an (existing) ISO 4217 currency code for the given locale. |
+ * Only the country code and the two variants EURO and PRE_EURO are |
+ * recognized. |
+ * @param isoCode the three-letter ISO 4217 currency code |
+ * @param locale the locale for which to register this currency code |
+ * @param status the in/out status code |
+ * @return a registry key that can be used to unregister this currency code, or NULL |
+ * if there was an error. |
+ * @stable ICU 2.6 |
+ */ |
+U_STABLE UCurrRegistryKey U_EXPORT2 |
+ucurr_register(const UChar* isoCode, |
+ const char* locale, |
+ UErrorCode* status); |
+/** |
+ * Unregister the previously-registered currency definitions using the |
+ * URegistryKey returned from ucurr_register. Key becomes invalid after |
+ * a successful call and should not be used again. Any currency |
+ * that might have been hidden by the original ucurr_register call is |
+ * restored. |
+ * @param key the registry key returned by a previous call to ucurr_register |
+ * @param status the in/out status code, no special meanings are assigned |
+ * @return TRUE if the currency for this key was successfully unregistered |
+ * @stable ICU 2.6 |
+ */ |
+U_STABLE UBool U_EXPORT2 |
+ucurr_unregister(UCurrRegistryKey key, UErrorCode* status); |
+#endif /* UCONFIG_NO_SERVICE */ |
+ |
+/** |
+ * Returns the display name for the given currency in the |
+ * given locale. For example, the display name for the USD |
+ * currency object in the en_US locale is "$". |
+ * @param currency null-terminated 3-letter ISO 4217 code |
+ * @param locale locale in which to display currency |
+ * @param nameStyle selector for which kind of name to return |
+ * @param isChoiceFormat fill-in set to TRUE if the returned value |
+ * is a ChoiceFormat pattern; otherwise it is a static string |
+ * @param len fill-in parameter to receive length of result |
+ * @param ec error code |
+ * @return pointer to display string of 'len' UChars. If the resource |
+ * data contains no entry for 'currency', then 'currency' itself is |
+ * returned. If *isChoiceFormat is TRUE, then the result is a |
+ * ChoiceFormat pattern. Otherwise it is a static string. |
+ * @stable ICU 2.6 |
+ */ |
+U_STABLE const UChar* U_EXPORT2 |
+ucurr_getName(const UChar* currency, |
+ const char* locale, |
+ UCurrNameStyle nameStyle, |
+ UBool* isChoiceFormat, |
+ int32_t* len, |
+ UErrorCode* ec); |
+ |
+/** |
+ * Returns the plural name for the given currency in the |
+ * given locale. For example, the plural name for the USD |
+ * currency object in the en_US locale is "US dollar" or "US dollars". |
+ * @param currency null-terminated 3-letter ISO 4217 code |
+ * @param locale locale in which to display currency |
+ * @param isChoiceFormat fill-in set to TRUE if the returned value |
+ * is a ChoiceFormat pattern; otherwise it is a static string |
+ * @param pluralCount plural count |
+ * @param len fill-in parameter to receive length of result |
+ * @param ec error code |
+ * @return pointer to display string of 'len' UChars. If the resource |
+ * data contains no entry for 'currency', then 'currency' itself is |
+ * returned. |
+ * @stable ICU 4.2 |
+ */ |
+U_STABLE const UChar* U_EXPORT2 |
+ucurr_getPluralName(const UChar* currency, |
+ const char* locale, |
+ UBool* isChoiceFormat, |
+ const char* pluralCount, |
+ int32_t* len, |
+ UErrorCode* ec); |
+ |
+/** |
+ * Returns the number of the number of fraction digits that should |
+ * be displayed for the given currency. |
+ * @param currency null-terminated 3-letter ISO 4217 code |
+ * @param ec input-output error code |
+ * @return a non-negative number of fraction digits to be |
+ * displayed, or 0 if there is an error |
+ * @stable ICU 3.0 |
+ */ |
+U_STABLE int32_t U_EXPORT2 |
+ucurr_getDefaultFractionDigits(const UChar* currency, |
+ UErrorCode* ec); |
+ |
+/** |
+ * Returns the rounding increment for the given currency, or 0.0 if no |
+ * rounding is done by the currency. |
+ * @param currency null-terminated 3-letter ISO 4217 code |
+ * @param ec input-output error code |
+ * @return the non-negative rounding increment, or 0.0 if none, |
+ * or 0.0 if there is an error |
+ * @stable ICU 3.0 |
+ */ |
+U_STABLE double U_EXPORT2 |
+ucurr_getRoundingIncrement(const UChar* currency, |
+ UErrorCode* ec); |
+ |
+/** |
+ * Selector constants for ucurr_openCurrencies(). |
+ * |
+ * @see ucurr_openCurrencies |
+ * @stable ICU 3.2 |
+ */ |
+typedef enum UCurrCurrencyType { |
+ /** |
+ * Select all ISO-4217 currency codes. |
+ * @stable ICU 3.2 |
+ */ |
+ UCURR_ALL = INT32_MAX, |
+ /** |
+ * Select only ISO-4217 commonly used currency codes. |
+ * These currencies can be found in common use, and they usually have |
+ * bank notes or coins associated with the currency code. |
+ * This does not include fund codes, precious metals and other |
+ * various ISO-4217 codes limited to special financial products. |
+ * @stable ICU 3.2 |
+ */ |
+ UCURR_COMMON = 1, |
+ /** |
+ * Select ISO-4217 uncommon currency codes. |
+ * These codes respresent fund codes, precious metals and other |
+ * various ISO-4217 codes limited to special financial products. |
+ * A fund code is a monetary resource associated with a currency. |
+ * @stable ICU 3.2 |
+ */ |
+ UCURR_UNCOMMON = 2, |
+ /** |
+ * Select only deprecated ISO-4217 codes. |
+ * These codes are no longer in general public use. |
+ * @stable ICU 3.2 |
+ */ |
+ UCURR_DEPRECATED = 4, |
+ /** |
+ * Select only non-deprecated ISO-4217 codes. |
+ * These codes are in general public use. |
+ * @stable ICU 3.2 |
+ */ |
+ UCURR_NON_DEPRECATED = 8 |
+} UCurrCurrencyType; |
+ |
+/** |
+ * Provides a UEnumeration object for listing ISO-4217 codes. |
+ * @param currType You can use one of several UCurrCurrencyType values for this |
+ * variable. You can also | (or) them together to get a specific list of |
+ * currencies. Most people will want to use the (UCURR_CURRENCY|UCURR_NON_DEPRECATED) value to |
+ * get a list of current currencies. |
+ * @param pErrorCode Error code |
+ * @stable ICU 3.2 |
+ */ |
+U_STABLE UEnumeration * U_EXPORT2 |
+ucurr_openISOCurrencies(uint32_t currType, UErrorCode *pErrorCode); |
+ |
+/** |
+ * Finds the number of valid currency codes for the |
+ * given locale and date. |
+ * @param locale the locale for which to retrieve the |
+ * currency count. |
+ * @param date the date for which to retrieve the |
+ * currency count for the given locale. |
+ * @param ec error code |
+ * @return the number of currency codes for the |
+ * given locale and date. If 0, currency |
+ * codes couldn't be found for the input |
+ * values are invalid. |
+ * @stable ICU 4.0 |
+ */ |
+U_STABLE int32_t U_EXPORT2 |
+ucurr_countCurrencies(const char* locale, |
+ UDate date, |
+ UErrorCode* ec); |
+ |
+/** |
+ * Finds a currency code for the given locale and date |
+ * @param locale the locale for which to retrieve a currency code. |
+ * Currency can be specified by the "currency" keyword |
+ * in which case it overrides the default currency code |
+ * @param date the date for which to retrieve a currency code for |
+ * the given locale. |
+ * @param index the index within the available list of currency codes |
+ * for the given locale on the given date. |
+ * @param buff fill in buffer. Can be NULL for preflighting. |
+ * @param buffCapacity capacity of the fill in buffer. Can be 0 for |
+ * preflighting. If it is non-zero, the buff parameter |
+ * must not be NULL. |
+ * @param ec error code |
+ * @return length of the currency string. It should always be 3. |
+ * If 0, currency couldn't be found or the input values are |
+ * invalid. |
+ * @stable ICU 4.0 |
+ */ |
+U_STABLE int32_t U_EXPORT2 |
+ucurr_forLocaleAndDate(const char* locale, |
+ UDate date, |
+ int32_t index, |
+ UChar* buff, |
+ int32_t buffCapacity, |
+ UErrorCode* ec); |
+ |
+/** |
+ * Given a key and a locale, returns an array of string values in a preferred |
+ * order that would make a difference. These are all and only those values where |
+ * the open (creation) of the service with the locale formed from the input locale |
+ * plus input keyword and that value has different behavior than creation with the |
+ * input locale alone. |
+ * @param key one of the keys supported by this service. For now, only |
+ * "currency" is supported. |
+ * @param locale the locale |
+ * @param commonlyUsed if set to true it will return only commonly used values |
+ * with the given locale in preferred order. Otherwise, |
+ * it will return all the available values for the locale. |
+ * @param status error status |
+ * @return a string enumeration over keyword values for the given key and the locale. |
+ * @stable ICU 4.2 |
+ */ |
+U_STABLE UEnumeration* U_EXPORT2 |
+ucurr_getKeywordValuesForLocale(const char* key, |
+ const char* locale, |
+ UBool commonlyUsed, |
+ UErrorCode* status); |
+ |
+#endif /* #if !UCONFIG_NO_FORMATTING */ |
+ |
+#endif |
Property changes on: icu46/source/i18n/unicode/ucurr.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |