1b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru/* 2b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru ******************************************************************************* 3b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho * Copyright (C) 2009-2011, International Business Machines Corporation and * 4b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * others. All Rights Reserved. * 5b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru ******************************************************************************* 6b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru */ 7b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#ifndef CURRPINF_H 8b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#define CURRPINF_H 9b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 10b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#include "unicode/utypes.h" 11b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 12b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru/** 13b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * \file 14b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * \brief C++ API: Currency Plural Information used by Decimal Format 15b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru */ 16b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 17b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#if !UCONFIG_NO_FORMATTING 18b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 19b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#include "unicode/unistr.h" 20b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 21b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste QueruU_NAMESPACE_BEGIN 22b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 23b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queruclass Locale; 24b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queruclass PluralRules; 25b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queruclass Hashtable; 26b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 27b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru/** 28b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * This class represents the information needed by 29b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * DecimalFormat to format currency plural, 30b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * such as "3.00 US dollars" or "1.00 US dollar". 31b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * DecimalFormat creates for itself an instance of 32b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * CurrencyPluralInfo from its locale data. 33b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * If you need to change any of these symbols, you can get the 34b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * CurrencyPluralInfo object from your 35b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * DecimalFormat and modify it. 36b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * 37b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * Following are the information needed for currency plural format and parse: 38b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * locale information, 39b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * plural rule of the locale, 40b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * currency plural pattern of the locale. 41b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * 4250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @stable ICU 4.2 43b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru */ 44b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queruclass U_I18N_API CurrencyPluralInfo : public UObject { 45b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Querupublic: 46b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 47b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru /** 48b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * Create a CurrencyPluralInfo object for the default locale. 49b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * @param status output param set to success/failure code on exit 5050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @stable ICU 4.2 51b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru */ 52b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru CurrencyPluralInfo(UErrorCode& status); 53b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 54b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru /** 55b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * Create a CurrencyPluralInfo object for the given locale. 56b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * @param locale the locale 57b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * @param status output param set to success/failure code on exit 5850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @stable ICU 4.2 59b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru */ 60b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru CurrencyPluralInfo(const Locale& locale, UErrorCode& status); 61b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 62b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru /** 63b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * Copy constructor 64b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * 6550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @stable ICU 4.2 66b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru */ 67b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru CurrencyPluralInfo(const CurrencyPluralInfo& info); 68b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 69b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 70b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru /** 71b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * Assignment operator 72b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * 7350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @stable ICU 4.2 74b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru */ 75b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru CurrencyPluralInfo& operator=(const CurrencyPluralInfo& info); 76b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 77b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 78b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru /** 79b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * Destructor 80b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * 8150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @stable ICU 4.2 82b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru */ 83b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru virtual ~CurrencyPluralInfo(); 84b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 85b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 86b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru /** 87b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * Equal operator. 88b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * 8950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @stable ICU 4.2 90b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru */ 91b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru UBool operator==(const CurrencyPluralInfo& info) const; 92b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 93b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 94b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru /** 95b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * Not equal operator 96b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * 9750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @stable ICU 4.2 98b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru */ 99b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru UBool operator!=(const CurrencyPluralInfo& info) const; 100b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 101b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 102b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru /** 103b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * Clone 104b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * 10550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @stable ICU 4.2 106b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru */ 107b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru CurrencyPluralInfo* clone() const; 108b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 109b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 110b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru /** 111b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * Gets plural rules of this locale, used for currency plural format 112b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * 113b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * @return plural rule 11450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @stable ICU 4.2 115b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru */ 116b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru const PluralRules* getPluralRules() const; 117b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 118b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru /** 119b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * Given a plural count, gets currency plural pattern of this locale, 120b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * used for currency plural format 121b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * 122b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * @param pluralCount currency plural count 123b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * @param result output param to receive the pattern 124b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * @return a currency plural pattern based on plural count 12550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @stable ICU 4.2 126b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru */ 127b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru UnicodeString& getCurrencyPluralPattern(const UnicodeString& pluralCount, 128b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru UnicodeString& result) const; 129b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 130b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru /** 131b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * Get locale 132b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * 133b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * @return locale 13450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @stable ICU 4.2 135b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru */ 136b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru const Locale& getLocale() const; 137b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 138b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru /** 139b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * Set plural rules. 140b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * The plural rule is set when CurrencyPluralInfo 141b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * instance is created. 142b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * You can call this method to reset plural rules only if you want 143b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * to modify the default plural rule of the locale. 144b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * 145b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * @param ruleDescription new plural rule description 146b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * @param status output param set to success/failure code on exit 14750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @stable ICU 4.2 148b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru */ 149b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru void setPluralRules(const UnicodeString& ruleDescription, 150b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru UErrorCode& status); 151b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 152b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru /** 153b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * Set currency plural pattern. 154b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * The currency plural pattern is set when CurrencyPluralInfo 155b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * instance is created. 156b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * You can call this method to reset currency plural pattern only if 157b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * you want to modify the default currency plural pattern of the locale. 158b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * 159b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * @param pluralCount the plural count for which the currency pattern will 160b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * be overridden. 161b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * @param pattern the new currency plural pattern 162b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * @param status output param set to success/failure code on exit 16350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @stable ICU 4.2 164b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru */ 165b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru void setCurrencyPluralPattern(const UnicodeString& pluralCount, 166b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru const UnicodeString& pattern, 167b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru UErrorCode& status); 168b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 169b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru /** 170b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * Set locale 171b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * 172b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * @param loc the new locale to set 173b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * @param status output param set to success/failure code on exit 17450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @stable ICU 4.2 175b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru */ 176b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru void setLocale(const Locale& loc, UErrorCode& status); 177b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 178b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru /** 179b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * ICU "poor man's RTTI", returns a UClassID for the actual class. 180b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * 18150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @stable ICU 4.2 182b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru */ 183b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru virtual UClassID getDynamicClassID() const; 184b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 185b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru /** 186b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * ICU "poor man's RTTI", returns a UClassID for this class. 187b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * 18850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @stable ICU 4.2 189b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru */ 190b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru static UClassID U_EXPORT2 getStaticClassID(); 191b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 192b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queruprivate: 193b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru friend class DecimalFormat; 194b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 195b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru void initialize(const Locale& loc, UErrorCode& status); 196b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 197b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru void setupCurrencyPluralPattern(const Locale& loc, UErrorCode& status); 198b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 199b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru /* 200b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * delete hash table 201b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * 202b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * @param hTable hash table to be deleted 203b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru */ 204b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru void deleteHash(Hashtable* hTable); 205b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 206b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 207b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru /* 208b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * initialize hash table 209b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * 210b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * @param status output param set to success/failure code on exit 211b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * @return hash table initialized 212b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru */ 213b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru Hashtable* initHash(UErrorCode& status); 214b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 215b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 216b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 217b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru /** 218b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * copy hash table 219b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * 220b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * @param source the source to copy from 221b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * @param target the target to copy to 222b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho * @param status error code 223b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru */ 224b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru void copyHash(const Hashtable* source, Hashtable* target, UErrorCode& status); 225b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 226b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru //-------------------- private data member --------------------- 227b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru // map from plural count to currency plural pattern, for example 228b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru // a plural pattern defined in "CurrencyUnitPatterns" is 229b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru // "one{{0} {1}}", in which "one" is a plural count 230b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru // and "{0} {1}" is a currency plural pattern". 231b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru // The currency plural pattern saved in this mapping is the pattern 232b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru // defined in "CurrencyUnitPattern" by replacing 233b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru // {0} with the number format pattern, 234b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru // and {1} with 3 currency sign. 235b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru Hashtable* fPluralCountToCurrencyUnitPattern; 236b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 237b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru /* 238b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * The plural rule is used to format currency plural name, 239b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * for example: "3.00 US Dollars". 240b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * If there are 3 currency signs in the currency patttern, 241b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * the 3 currency signs will be replaced by currency plural name. 242b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru */ 243b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru PluralRules* fPluralRules; 244b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 245b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru // locale 246b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru Locale* fLocale; 247b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru}; 248b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 249b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 250b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queruinline UBool 251b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste QueruCurrencyPluralInfo::operator!=(const CurrencyPluralInfo& info) const { return !operator==(info); } 252b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 253b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste QueruU_NAMESPACE_END 254b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 255b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#endif /* #if !UCONFIG_NO_FORMATTING */ 256b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru 257b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#endif // _CURRPINFO 258b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru//eof 259