Mercurial > repos > rliterman > csp2
comparison CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/unicode/currunit.h @ 69:33d812a61356
planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author | jpayne |
---|---|
date | Tue, 18 Mar 2025 17:55:14 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
67:0e9998148a16 | 69:33d812a61356 |
---|---|
1 // © 2016 and later: Unicode, Inc. and others. | |
2 // License & terms of use: http://www.unicode.org/copyright.html | |
3 /* | |
4 ********************************************************************** | |
5 * Copyright (c) 2004-2014, International Business Machines | |
6 * Corporation and others. All Rights Reserved. | |
7 ********************************************************************** | |
8 * Author: Alan Liu | |
9 * Created: April 26, 2004 | |
10 * Since: ICU 3.0 | |
11 ********************************************************************** | |
12 */ | |
13 #ifndef __CURRENCYUNIT_H__ | |
14 #define __CURRENCYUNIT_H__ | |
15 | |
16 #include "unicode/utypes.h" | |
17 | |
18 #if U_SHOW_CPLUSPLUS_API | |
19 | |
20 #if !UCONFIG_NO_FORMATTING | |
21 | |
22 #include "unicode/measunit.h" | |
23 | |
24 /** | |
25 * \file | |
26 * \brief C++ API: Currency Unit Information. | |
27 */ | |
28 | |
29 U_NAMESPACE_BEGIN | |
30 | |
31 /** | |
32 * A unit of currency, such as USD (U.S. dollars) or JPY (Japanese | |
33 * yen). This class is a thin wrapper over a char16_t string that | |
34 * subclasses MeasureUnit, for use with Measure and MeasureFormat. | |
35 * | |
36 * @author Alan Liu | |
37 * @stable ICU 3.0 | |
38 */ | |
39 class U_I18N_API CurrencyUnit: public MeasureUnit { | |
40 public: | |
41 /** | |
42 * Default constructor. Initializes currency code to "XXX" (no currency). | |
43 * @stable ICU 60 | |
44 */ | |
45 CurrencyUnit(); | |
46 | |
47 /** | |
48 * Construct an object with the given ISO currency code. | |
49 * | |
50 * @param isoCode the 3-letter ISO 4217 currency code; must have | |
51 * length 3 and need not be NUL-terminated. If NULL, the currency | |
52 * is initialized to the unknown currency XXX. | |
53 * @param ec input-output error code. If the isoCode is invalid, | |
54 * then this will be set to a failing value. | |
55 * @stable ICU 3.0 | |
56 */ | |
57 CurrencyUnit(ConstChar16Ptr isoCode, UErrorCode &ec); | |
58 | |
59 /** | |
60 * Construct an object with the given ISO currency code. | |
61 * | |
62 * @param isoCode the 3-letter ISO 4217 currency code; must have | |
63 * length 3. If invalid, the currency is initialized to XXX. | |
64 * @param ec input-output error code. If the isoCode is invalid, | |
65 * then this will be set to a failing value. | |
66 * @stable ICU 64 | |
67 */ | |
68 CurrencyUnit(StringPiece isoCode, UErrorCode &ec); | |
69 | |
70 /** | |
71 * Copy constructor | |
72 * @stable ICU 3.0 | |
73 */ | |
74 CurrencyUnit(const CurrencyUnit& other); | |
75 | |
76 /** | |
77 * Copy constructor from MeasureUnit. This constructor allows you to | |
78 * restore a CurrencyUnit that was sliced to MeasureUnit. | |
79 * | |
80 * @param measureUnit The MeasureUnit to copy from. | |
81 * @param ec Set to a failing value if the MeasureUnit is not a currency. | |
82 * @stable ICU 60 | |
83 */ | |
84 CurrencyUnit(const MeasureUnit& measureUnit, UErrorCode &ec); | |
85 | |
86 /** | |
87 * Assignment operator | |
88 * @stable ICU 3.0 | |
89 */ | |
90 CurrencyUnit& operator=(const CurrencyUnit& other); | |
91 | |
92 /** | |
93 * Return a polymorphic clone of this object. The result will | |
94 * have the same class as returned by getDynamicClassID(). | |
95 * @stable ICU 3.0 | |
96 */ | |
97 virtual CurrencyUnit* clone() const; | |
98 | |
99 /** | |
100 * Destructor | |
101 * @stable ICU 3.0 | |
102 */ | |
103 virtual ~CurrencyUnit(); | |
104 | |
105 /** | |
106 * Returns a unique class ID for this object POLYMORPHICALLY. | |
107 * This method implements a simple form of RTTI used by ICU. | |
108 * @return The class ID for this object. All objects of a given | |
109 * class have the same class ID. Objects of other classes have | |
110 * different class IDs. | |
111 * @stable ICU 3.0 | |
112 */ | |
113 virtual UClassID getDynamicClassID() const; | |
114 | |
115 /** | |
116 * Returns the class ID for this class. This is used to compare to | |
117 * the return value of getDynamicClassID(). | |
118 * @return The class ID for all objects of this class. | |
119 * @stable ICU 3.0 | |
120 */ | |
121 static UClassID U_EXPORT2 getStaticClassID(); | |
122 | |
123 /** | |
124 * Return the ISO currency code of this object. | |
125 * @stable ICU 3.0 | |
126 */ | |
127 inline const char16_t* getISOCurrency() const; | |
128 | |
129 private: | |
130 /** | |
131 * The ISO 4217 code of this object. | |
132 */ | |
133 char16_t isoCode[4]; | |
134 }; | |
135 | |
136 inline const char16_t* CurrencyUnit::getISOCurrency() const { | |
137 return isoCode; | |
138 } | |
139 | |
140 U_NAMESPACE_END | |
141 | |
142 #endif // !UCONFIG_NO_FORMATTING | |
143 | |
144 #endif /* U_SHOW_CPLUSPLUS_API */ | |
145 | |
146 #endif // __CURRENCYUNIT_H__ |