16f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/* 26f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org ******************************************************************************* 36f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Copyright (C) 2009-2011, International Business Machines Corporation and * 46f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * others. All Rights Reserved. * 56f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org ******************************************************************************* 66f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 76f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef CURRPINF_H 86f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define CURRPINF_H 96f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/utypes.h" 116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** 136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * \file 146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * \brief C++ API: Currency Plural Information used by Decimal Format 156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#if !UCONFIG_NO_FORMATTING 186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/unistr.h" 206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_NAMESPACE_BEGIN 226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgclass Locale; 246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgclass PluralRules; 256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgclass Hashtable; 266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** 286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * This class represents the information needed by 296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * DecimalFormat to format currency plural, 306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * such as "3.00 US dollars" or "1.00 US dollar". 316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * DecimalFormat creates for itself an instance of 326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * CurrencyPluralInfo from its locale data. 336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * If you need to change any of these symbols, you can get the 346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * CurrencyPluralInfo object from your 356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * DecimalFormat and modify it. 366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Following are the information needed for currency plural format and parse: 386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * locale information, 396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * plural rule of the locale, 406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * currency plural pattern of the locale. 416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 4.2 436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgclass U_I18N_API CurrencyPluralInfo : public UObject { 456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgpublic: 466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Create a CurrencyPluralInfo object for the default locale. 496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status output param set to success/failure code on exit 506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 4.2 516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org CurrencyPluralInfo(UErrorCode& status); 536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Create a CurrencyPluralInfo object for the given locale. 566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param locale the locale 576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status output param set to success/failure code on exit 586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 4.2 596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org CurrencyPluralInfo(const Locale& locale, UErrorCode& status); 616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Copy constructor 646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 4.2 666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org CurrencyPluralInfo(const CurrencyPluralInfo& info); 686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Assignment operator 726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 4.2 746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org CurrencyPluralInfo& operator=(const CurrencyPluralInfo& info); 766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Destructor 806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 4.2 826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual ~CurrencyPluralInfo(); 846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Equal operator. 886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 4.2 906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UBool operator==(const CurrencyPluralInfo& info) const; 926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Not equal operator 966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 4.2 986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UBool operator!=(const CurrencyPluralInfo& info) const; 1006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Clone 1046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 1056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 4.2 1066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org CurrencyPluralInfo* clone() const; 1086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Gets plural rules of this locale, used for currency plural format 1126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 1136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return plural rule 1146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 4.2 1156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const PluralRules* getPluralRules() const; 1176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Given a plural count, gets currency plural pattern of this locale, 1206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * used for currency plural format 1216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 1226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param pluralCount currency plural count 1236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param result output param to receive the pattern 1246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return a currency plural pattern based on plural count 1256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 4.2 1266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString& getCurrencyPluralPattern(const UnicodeString& pluralCount, 1286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString& result) const; 1296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Get locale 1326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 1336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return locale 1346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 4.2 1356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const Locale& getLocale() const; 1376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Set plural rules. 1406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The plural rule is set when CurrencyPluralInfo 1416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * instance is created. 1426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * You can call this method to reset plural rules only if you want 1436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * to modify the default plural rule of the locale. 1446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 1456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param ruleDescription new plural rule description 1466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status output param set to success/failure code on exit 1476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 4.2 1486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void setPluralRules(const UnicodeString& ruleDescription, 1506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UErrorCode& status); 1516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Set currency plural pattern. 1546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The currency plural pattern is set when CurrencyPluralInfo 1556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * instance is created. 1566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * You can call this method to reset currency plural pattern only if 1576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * you want to modify the default currency plural pattern of the locale. 1586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 1596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param pluralCount the plural count for which the currency pattern will 1606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * be overridden. 1616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param pattern the new currency plural pattern 1626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status output param set to success/failure code on exit 1636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 4.2 1646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void setCurrencyPluralPattern(const UnicodeString& pluralCount, 1666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org const UnicodeString& pattern, 1676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UErrorCode& status); 1686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Set locale 1716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 1726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param loc the new locale to set 1736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status output param set to success/failure code on exit 1746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 4.2 1756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void setLocale(const Locale& loc, UErrorCode& status); 1776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * ICU "poor man's RTTI", returns a UClassID for the actual class. 1806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 1816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 4.2 1826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual UClassID getDynamicClassID() const; 1846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * ICU "poor man's RTTI", returns a UClassID for this class. 1876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 1886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @stable ICU 4.2 1896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static UClassID U_EXPORT2 getStaticClassID(); 1916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgprivate: 1936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org friend class DecimalFormat; 1946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void initialize(const Locale& loc, UErrorCode& status); 1966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void setupCurrencyPluralPattern(const Locale& loc, UErrorCode& status); 1986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /* 2006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * delete hash table 2016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 2026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param hTable hash table to be deleted 2036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 2046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void deleteHash(Hashtable* hTable); 2056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /* 2086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * initialize hash table 2096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 2106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status output param set to success/failure code on exit 2116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return hash table initialized 2126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 2136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org Hashtable* initHash(UErrorCode& status); 2146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 2186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * copy hash table 2196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 2206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param source the source to copy from 2216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param target the target to copy to 2226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param status error code 2236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 2246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void copyHash(const Hashtable* source, Hashtable* target, UErrorCode& status); 2256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org //-------------------- private data member --------------------- 2276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org // map from plural count to currency plural pattern, for example 2286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org // a plural pattern defined in "CurrencyUnitPatterns" is 2296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org // "one{{0} {1}}", in which "one" is a plural count 2306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org // and "{0} {1}" is a currency plural pattern". 2316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org // The currency plural pattern saved in this mapping is the pattern 2326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org // defined in "CurrencyUnitPattern" by replacing 2336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org // {0} with the number format pattern, 2346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org // and {1} with 3 currency sign. 2356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org Hashtable* fPluralCountToCurrencyUnitPattern; 2366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /* 2386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * The plural rule is used to format currency plural name, 2396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * for example: "3.00 US Dollars". 2406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * If there are 3 currency signs in the currency patttern, 2416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * the 3 currency signs will be replaced by currency plural name. 2426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 2436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org PluralRules* fPluralRules; 2446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org // locale 2466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org Locale* fLocale; 2476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org}; 2486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orginline UBool 2516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgCurrencyPluralInfo::operator!=(const CurrencyPluralInfo& info) const { return !operator==(info); } 2526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_NAMESPACE_END 2546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif /* #if !UCONFIG_NO_FORMATTING */ 2566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif // _CURRPINFO 2586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org//eof 259