xref: /aosp_15_r20/external/icu/libicu/cts_headers/unicode/measunit.h (revision 0e209d3975ff4a8c132096b14b0e9364a753506e)
1*0e209d39SAndroid Build Coastguard Worker // © 2016 and later: Unicode, Inc. and others.
2*0e209d39SAndroid Build Coastguard Worker // License & terms of use: http://www.unicode.org/copyright.html
3*0e209d39SAndroid Build Coastguard Worker /*
4*0e209d39SAndroid Build Coastguard Worker **********************************************************************
5*0e209d39SAndroid Build Coastguard Worker * Copyright (c) 2004-2016, International Business Machines
6*0e209d39SAndroid Build Coastguard Worker * Corporation and others.  All Rights Reserved.
7*0e209d39SAndroid Build Coastguard Worker **********************************************************************
8*0e209d39SAndroid Build Coastguard Worker * Author: Alan Liu
9*0e209d39SAndroid Build Coastguard Worker * Created: April 26, 2004
10*0e209d39SAndroid Build Coastguard Worker * Since: ICU 3.0
11*0e209d39SAndroid Build Coastguard Worker **********************************************************************
12*0e209d39SAndroid Build Coastguard Worker */
13*0e209d39SAndroid Build Coastguard Worker #ifndef __MEASUREUNIT_H__
14*0e209d39SAndroid Build Coastguard Worker #define __MEASUREUNIT_H__
15*0e209d39SAndroid Build Coastguard Worker 
16*0e209d39SAndroid Build Coastguard Worker #include "unicode/utypes.h"
17*0e209d39SAndroid Build Coastguard Worker 
18*0e209d39SAndroid Build Coastguard Worker #if U_SHOW_CPLUSPLUS_API
19*0e209d39SAndroid Build Coastguard Worker 
20*0e209d39SAndroid Build Coastguard Worker #if !UCONFIG_NO_FORMATTING
21*0e209d39SAndroid Build Coastguard Worker 
22*0e209d39SAndroid Build Coastguard Worker #include <utility>
23*0e209d39SAndroid Build Coastguard Worker #include "unicode/unistr.h"
24*0e209d39SAndroid Build Coastguard Worker #include "unicode/localpointer.h"
25*0e209d39SAndroid Build Coastguard Worker 
26*0e209d39SAndroid Build Coastguard Worker /**
27*0e209d39SAndroid Build Coastguard Worker  * \file
28*0e209d39SAndroid Build Coastguard Worker  * \brief C++ API: A unit for measuring a quantity.
29*0e209d39SAndroid Build Coastguard Worker  */
30*0e209d39SAndroid Build Coastguard Worker 
31*0e209d39SAndroid Build Coastguard Worker U_NAMESPACE_BEGIN
32*0e209d39SAndroid Build Coastguard Worker 
33*0e209d39SAndroid Build Coastguard Worker class StringEnumeration;
34*0e209d39SAndroid Build Coastguard Worker class MeasureUnitImpl;
35*0e209d39SAndroid Build Coastguard Worker 
36*0e209d39SAndroid Build Coastguard Worker namespace number::impl {
37*0e209d39SAndroid Build Coastguard Worker class LongNameHandler;
38*0e209d39SAndroid Build Coastguard Worker } // namespace number::impl
39*0e209d39SAndroid Build Coastguard Worker 
40*0e209d39SAndroid Build Coastguard Worker /**
41*0e209d39SAndroid Build Coastguard Worker  * Enumeration for unit complexity. There are three levels:
42*0e209d39SAndroid Build Coastguard Worker  *
43*0e209d39SAndroid Build Coastguard Worker  * - SINGLE: A single unit, optionally with a power and/or SI or binary prefix.
44*0e209d39SAndroid Build Coastguard Worker  *           Examples: hectare, square-kilometer, kilojoule, per-second, mebibyte.
45*0e209d39SAndroid Build Coastguard Worker  * - COMPOUND: A unit composed of the product of multiple single units. Examples:
46*0e209d39SAndroid Build Coastguard Worker  *             meter-per-second, kilowatt-hour, kilogram-meter-per-square-second.
47*0e209d39SAndroid Build Coastguard Worker  * - MIXED: A unit composed of the sum of multiple single units. Examples: foot+inch,
48*0e209d39SAndroid Build Coastguard Worker  *          hour+minute+second, degree+arcminute+arcsecond.
49*0e209d39SAndroid Build Coastguard Worker  *
50*0e209d39SAndroid Build Coastguard Worker  * The complexity determines which operations are available. For example, you cannot set the power
51*0e209d39SAndroid Build Coastguard Worker  * or prefix of a compound unit.
52*0e209d39SAndroid Build Coastguard Worker  *
53*0e209d39SAndroid Build Coastguard Worker  * @stable ICU 67
54*0e209d39SAndroid Build Coastguard Worker  */
55*0e209d39SAndroid Build Coastguard Worker enum UMeasureUnitComplexity {
56*0e209d39SAndroid Build Coastguard Worker     /**
57*0e209d39SAndroid Build Coastguard Worker      * A single unit, like kilojoule.
58*0e209d39SAndroid Build Coastguard Worker      *
59*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 67
60*0e209d39SAndroid Build Coastguard Worker      */
61*0e209d39SAndroid Build Coastguard Worker     UMEASURE_UNIT_SINGLE,
62*0e209d39SAndroid Build Coastguard Worker 
63*0e209d39SAndroid Build Coastguard Worker     /**
64*0e209d39SAndroid Build Coastguard Worker      * A compound unit, like meter-per-second.
65*0e209d39SAndroid Build Coastguard Worker      *
66*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 67
67*0e209d39SAndroid Build Coastguard Worker      */
68*0e209d39SAndroid Build Coastguard Worker     UMEASURE_UNIT_COMPOUND,
69*0e209d39SAndroid Build Coastguard Worker 
70*0e209d39SAndroid Build Coastguard Worker     /**
71*0e209d39SAndroid Build Coastguard Worker      * A mixed unit, like hour+minute.
72*0e209d39SAndroid Build Coastguard Worker      *
73*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 67
74*0e209d39SAndroid Build Coastguard Worker      */
75*0e209d39SAndroid Build Coastguard Worker     UMEASURE_UNIT_MIXED
76*0e209d39SAndroid Build Coastguard Worker };
77*0e209d39SAndroid Build Coastguard Worker 
78*0e209d39SAndroid Build Coastguard Worker 
79*0e209d39SAndroid Build Coastguard Worker /**
80*0e209d39SAndroid Build Coastguard Worker  * Enumeration for SI and binary prefixes, e.g. "kilo-", "nano-", "mebi-".
81*0e209d39SAndroid Build Coastguard Worker  *
82*0e209d39SAndroid Build Coastguard Worker  * Enum values should be treated as opaque: use umeas_getPrefixPower() and
83*0e209d39SAndroid Build Coastguard Worker  * umeas_getPrefixBase() to find their corresponding values.
84*0e209d39SAndroid Build Coastguard Worker  *
85*0e209d39SAndroid Build Coastguard Worker  * @stable ICU 69
86*0e209d39SAndroid Build Coastguard Worker  * @see umeas_getPrefixBase
87*0e209d39SAndroid Build Coastguard Worker  * @see umeas_getPrefixPower
88*0e209d39SAndroid Build Coastguard Worker  */
89*0e209d39SAndroid Build Coastguard Worker typedef enum UMeasurePrefix {
90*0e209d39SAndroid Build Coastguard Worker     /**
91*0e209d39SAndroid Build Coastguard Worker      * The absence of an SI or binary prefix.
92*0e209d39SAndroid Build Coastguard Worker      *
93*0e209d39SAndroid Build Coastguard Worker      * The integer representation of this enum value is an arbitrary
94*0e209d39SAndroid Build Coastguard Worker      * implementation detail and should not be relied upon: use
95*0e209d39SAndroid Build Coastguard Worker      * umeas_getPrefixPower() to obtain meaningful values.
96*0e209d39SAndroid Build Coastguard Worker      *
97*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
98*0e209d39SAndroid Build Coastguard Worker      */
99*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_ONE = 30 + 0,
100*0e209d39SAndroid Build Coastguard Worker 
101*0e209d39SAndroid Build Coastguard Worker     /**
102*0e209d39SAndroid Build Coastguard Worker      * SI prefix: yotta, 10^24.
103*0e209d39SAndroid Build Coastguard Worker      *
104*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
105*0e209d39SAndroid Build Coastguard Worker      */
106*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_YOTTA = UMEASURE_PREFIX_ONE + 24,
107*0e209d39SAndroid Build Coastguard Worker 
108*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DRAFT_API
109*0e209d39SAndroid Build Coastguard Worker     /**
110*0e209d39SAndroid Build Coastguard Worker      * SI prefix: ronna, 10^27.
111*0e209d39SAndroid Build Coastguard Worker      *
112*0e209d39SAndroid Build Coastguard Worker      * @draft ICU 75
113*0e209d39SAndroid Build Coastguard Worker      */
114*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_RONNA = UMEASURE_PREFIX_ONE + 27,
115*0e209d39SAndroid Build Coastguard Worker 
116*0e209d39SAndroid Build Coastguard Worker     /**
117*0e209d39SAndroid Build Coastguard Worker      * SI prefix: quetta, 10^30.
118*0e209d39SAndroid Build Coastguard Worker      *
119*0e209d39SAndroid Build Coastguard Worker      * @draft ICU 75
120*0e209d39SAndroid Build Coastguard Worker      */
121*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_QUETTA = UMEASURE_PREFIX_ONE + 30,
122*0e209d39SAndroid Build Coastguard Worker #endif  /* U_HIDE_DRAFT_API */
123*0e209d39SAndroid Build Coastguard Worker 
124*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_INTERNAL_API
125*0e209d39SAndroid Build Coastguard Worker     /**
126*0e209d39SAndroid Build Coastguard Worker      * ICU use only.
127*0e209d39SAndroid Build Coastguard Worker      * Used to determine the set of base-10 SI prefixes.
128*0e209d39SAndroid Build Coastguard Worker      * @internal
129*0e209d39SAndroid Build Coastguard Worker      */
130*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DRAFT_API
131*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_INTERNAL_MAX_SI = UMEASURE_PREFIX_QUETTA,
132*0e209d39SAndroid Build Coastguard Worker #else  /* U_HIDE_DRAFT_API */
133*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_INTERNAL_MAX_SI = UMEASURE_PREFIX_YOTTA,
134*0e209d39SAndroid Build Coastguard Worker #endif  /* U_HIDE_DRAFT_API */
135*0e209d39SAndroid Build Coastguard Worker 
136*0e209d39SAndroid Build Coastguard Worker #endif  /* U_HIDE_INTERNAL_API */
137*0e209d39SAndroid Build Coastguard Worker 
138*0e209d39SAndroid Build Coastguard Worker     /**
139*0e209d39SAndroid Build Coastguard Worker      * SI prefix: zetta, 10^21.
140*0e209d39SAndroid Build Coastguard Worker      *
141*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
142*0e209d39SAndroid Build Coastguard Worker      */
143*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_ZETTA = UMEASURE_PREFIX_ONE + 21,
144*0e209d39SAndroid Build Coastguard Worker 
145*0e209d39SAndroid Build Coastguard Worker     /**
146*0e209d39SAndroid Build Coastguard Worker      * SI prefix: exa, 10^18.
147*0e209d39SAndroid Build Coastguard Worker      *
148*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
149*0e209d39SAndroid Build Coastguard Worker      */
150*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_EXA = UMEASURE_PREFIX_ONE + 18,
151*0e209d39SAndroid Build Coastguard Worker 
152*0e209d39SAndroid Build Coastguard Worker     /**
153*0e209d39SAndroid Build Coastguard Worker      * SI prefix: peta, 10^15.
154*0e209d39SAndroid Build Coastguard Worker      *
155*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
156*0e209d39SAndroid Build Coastguard Worker      */
157*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_PETA = UMEASURE_PREFIX_ONE + 15,
158*0e209d39SAndroid Build Coastguard Worker 
159*0e209d39SAndroid Build Coastguard Worker     /**
160*0e209d39SAndroid Build Coastguard Worker      * SI prefix: tera, 10^12.
161*0e209d39SAndroid Build Coastguard Worker      *
162*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
163*0e209d39SAndroid Build Coastguard Worker      */
164*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_TERA = UMEASURE_PREFIX_ONE + 12,
165*0e209d39SAndroid Build Coastguard Worker 
166*0e209d39SAndroid Build Coastguard Worker     /**
167*0e209d39SAndroid Build Coastguard Worker      * SI prefix: giga, 10^9.
168*0e209d39SAndroid Build Coastguard Worker      *
169*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
170*0e209d39SAndroid Build Coastguard Worker      */
171*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_GIGA = UMEASURE_PREFIX_ONE + 9,
172*0e209d39SAndroid Build Coastguard Worker 
173*0e209d39SAndroid Build Coastguard Worker     /**
174*0e209d39SAndroid Build Coastguard Worker      * SI prefix: mega, 10^6.
175*0e209d39SAndroid Build Coastguard Worker      *
176*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
177*0e209d39SAndroid Build Coastguard Worker      */
178*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_MEGA = UMEASURE_PREFIX_ONE + 6,
179*0e209d39SAndroid Build Coastguard Worker 
180*0e209d39SAndroid Build Coastguard Worker     /**
181*0e209d39SAndroid Build Coastguard Worker      * SI prefix: kilo, 10^3.
182*0e209d39SAndroid Build Coastguard Worker      *
183*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
184*0e209d39SAndroid Build Coastguard Worker      */
185*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_KILO = UMEASURE_PREFIX_ONE + 3,
186*0e209d39SAndroid Build Coastguard Worker 
187*0e209d39SAndroid Build Coastguard Worker     /**
188*0e209d39SAndroid Build Coastguard Worker      * SI prefix: hecto, 10^2.
189*0e209d39SAndroid Build Coastguard Worker      *
190*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
191*0e209d39SAndroid Build Coastguard Worker      */
192*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_HECTO = UMEASURE_PREFIX_ONE + 2,
193*0e209d39SAndroid Build Coastguard Worker 
194*0e209d39SAndroid Build Coastguard Worker     /**
195*0e209d39SAndroid Build Coastguard Worker      * SI prefix: deka, 10^1.
196*0e209d39SAndroid Build Coastguard Worker      *
197*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
198*0e209d39SAndroid Build Coastguard Worker      */
199*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_DEKA = UMEASURE_PREFIX_ONE + 1,
200*0e209d39SAndroid Build Coastguard Worker 
201*0e209d39SAndroid Build Coastguard Worker     /**
202*0e209d39SAndroid Build Coastguard Worker      * SI prefix: deci, 10^-1.
203*0e209d39SAndroid Build Coastguard Worker      *
204*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
205*0e209d39SAndroid Build Coastguard Worker      */
206*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_DECI = UMEASURE_PREFIX_ONE + -1,
207*0e209d39SAndroid Build Coastguard Worker 
208*0e209d39SAndroid Build Coastguard Worker     /**
209*0e209d39SAndroid Build Coastguard Worker      * SI prefix: centi, 10^-2.
210*0e209d39SAndroid Build Coastguard Worker      *
211*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
212*0e209d39SAndroid Build Coastguard Worker      */
213*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_CENTI = UMEASURE_PREFIX_ONE + -2,
214*0e209d39SAndroid Build Coastguard Worker 
215*0e209d39SAndroid Build Coastguard Worker     /**
216*0e209d39SAndroid Build Coastguard Worker      * SI prefix: milli, 10^-3.
217*0e209d39SAndroid Build Coastguard Worker      *
218*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
219*0e209d39SAndroid Build Coastguard Worker      */
220*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_MILLI = UMEASURE_PREFIX_ONE + -3,
221*0e209d39SAndroid Build Coastguard Worker 
222*0e209d39SAndroid Build Coastguard Worker     /**
223*0e209d39SAndroid Build Coastguard Worker      * SI prefix: micro, 10^-6.
224*0e209d39SAndroid Build Coastguard Worker      *
225*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
226*0e209d39SAndroid Build Coastguard Worker      */
227*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_MICRO = UMEASURE_PREFIX_ONE + -6,
228*0e209d39SAndroid Build Coastguard Worker 
229*0e209d39SAndroid Build Coastguard Worker     /**
230*0e209d39SAndroid Build Coastguard Worker      * SI prefix: nano, 10^-9.
231*0e209d39SAndroid Build Coastguard Worker      *
232*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
233*0e209d39SAndroid Build Coastguard Worker      */
234*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_NANO = UMEASURE_PREFIX_ONE + -9,
235*0e209d39SAndroid Build Coastguard Worker 
236*0e209d39SAndroid Build Coastguard Worker     /**
237*0e209d39SAndroid Build Coastguard Worker      * SI prefix: pico, 10^-12.
238*0e209d39SAndroid Build Coastguard Worker      *
239*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
240*0e209d39SAndroid Build Coastguard Worker      */
241*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_PICO = UMEASURE_PREFIX_ONE + -12,
242*0e209d39SAndroid Build Coastguard Worker 
243*0e209d39SAndroid Build Coastguard Worker     /**
244*0e209d39SAndroid Build Coastguard Worker      * SI prefix: femto, 10^-15.
245*0e209d39SAndroid Build Coastguard Worker      *
246*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
247*0e209d39SAndroid Build Coastguard Worker      */
248*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_FEMTO = UMEASURE_PREFIX_ONE + -15,
249*0e209d39SAndroid Build Coastguard Worker 
250*0e209d39SAndroid Build Coastguard Worker     /**
251*0e209d39SAndroid Build Coastguard Worker      * SI prefix: atto, 10^-18.
252*0e209d39SAndroid Build Coastguard Worker      *
253*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
254*0e209d39SAndroid Build Coastguard Worker      */
255*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_ATTO = UMEASURE_PREFIX_ONE + -18,
256*0e209d39SAndroid Build Coastguard Worker 
257*0e209d39SAndroid Build Coastguard Worker     /**
258*0e209d39SAndroid Build Coastguard Worker      * SI prefix: zepto, 10^-21.
259*0e209d39SAndroid Build Coastguard Worker      *
260*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
261*0e209d39SAndroid Build Coastguard Worker      */
262*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_ZEPTO = UMEASURE_PREFIX_ONE + -21,
263*0e209d39SAndroid Build Coastguard Worker 
264*0e209d39SAndroid Build Coastguard Worker     /**
265*0e209d39SAndroid Build Coastguard Worker      * SI prefix: yocto, 10^-24.
266*0e209d39SAndroid Build Coastguard Worker      *
267*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
268*0e209d39SAndroid Build Coastguard Worker      */
269*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_YOCTO = UMEASURE_PREFIX_ONE + -24,
270*0e209d39SAndroid Build Coastguard Worker 
271*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DRAFT_API
272*0e209d39SAndroid Build Coastguard Worker     /**
273*0e209d39SAndroid Build Coastguard Worker      * SI prefix: ronto, 10^-27.
274*0e209d39SAndroid Build Coastguard Worker      *
275*0e209d39SAndroid Build Coastguard Worker      * @draft ICU 75
276*0e209d39SAndroid Build Coastguard Worker      */
277*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_RONTO = UMEASURE_PREFIX_ONE + -27,
278*0e209d39SAndroid Build Coastguard Worker 
279*0e209d39SAndroid Build Coastguard Worker     /**
280*0e209d39SAndroid Build Coastguard Worker      * SI prefix: quecto, 10^-30.
281*0e209d39SAndroid Build Coastguard Worker      *
282*0e209d39SAndroid Build Coastguard Worker      * @draft ICU 75
283*0e209d39SAndroid Build Coastguard Worker      */
284*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_QUECTO = UMEASURE_PREFIX_ONE + -30,
285*0e209d39SAndroid Build Coastguard Worker #endif  /* U_HIDE_DRAFT_API */
286*0e209d39SAndroid Build Coastguard Worker 
287*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_INTERNAL_API
288*0e209d39SAndroid Build Coastguard Worker     /**
289*0e209d39SAndroid Build Coastguard Worker      * ICU use only.
290*0e209d39SAndroid Build Coastguard Worker      * Used to determine the set of base-10 SI prefixes.
291*0e209d39SAndroid Build Coastguard Worker      * @internal
292*0e209d39SAndroid Build Coastguard Worker      */
293*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DRAFT_API
294*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_INTERNAL_MIN_SI = UMEASURE_PREFIX_QUECTO,
295*0e209d39SAndroid Build Coastguard Worker #else  /* U_HIDE_DRAFT_API */
296*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_INTERNAL_MIN_SI = UMEASURE_PREFIX_YOCTO,
297*0e209d39SAndroid Build Coastguard Worker #endif  /* U_HIDE_DRAFT_API */
298*0e209d39SAndroid Build Coastguard Worker 
299*0e209d39SAndroid Build Coastguard Worker #endif  // U_HIDE_INTERNAL_API
300*0e209d39SAndroid Build Coastguard Worker 
301*0e209d39SAndroid Build Coastguard Worker     // Cannot conditionalize the following with #ifndef U_HIDE_INTERNAL_API,
302*0e209d39SAndroid Build Coastguard Worker     // used in definitions of non-internal enum values
303*0e209d39SAndroid Build Coastguard Worker     /**
304*0e209d39SAndroid Build Coastguard Worker      * ICU use only.
305*0e209d39SAndroid Build Coastguard Worker      * Sets the arbitrary offset of the base-1024 binary prefixes' enum values.
306*0e209d39SAndroid Build Coastguard Worker      * @internal
307*0e209d39SAndroid Build Coastguard Worker      */
308*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_INTERNAL_ONE_BIN = -60,
309*0e209d39SAndroid Build Coastguard Worker 
310*0e209d39SAndroid Build Coastguard Worker     /**
311*0e209d39SAndroid Build Coastguard Worker      * Binary prefix: kibi, 1024^1.
312*0e209d39SAndroid Build Coastguard Worker      *
313*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
314*0e209d39SAndroid Build Coastguard Worker      */
315*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_KIBI = UMEASURE_PREFIX_INTERNAL_ONE_BIN + 1,
316*0e209d39SAndroid Build Coastguard Worker 
317*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_INTERNAL_API
318*0e209d39SAndroid Build Coastguard Worker     /**
319*0e209d39SAndroid Build Coastguard Worker      * ICU use only.
320*0e209d39SAndroid Build Coastguard Worker      * Used to determine the set of base-1024 binary prefixes.
321*0e209d39SAndroid Build Coastguard Worker      * @internal
322*0e209d39SAndroid Build Coastguard Worker      */
323*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_INTERNAL_MIN_BIN = UMEASURE_PREFIX_KIBI,
324*0e209d39SAndroid Build Coastguard Worker #endif  // U_HIDE_INTERNAL_API
325*0e209d39SAndroid Build Coastguard Worker 
326*0e209d39SAndroid Build Coastguard Worker     /**
327*0e209d39SAndroid Build Coastguard Worker      * Binary prefix: mebi, 1024^2.
328*0e209d39SAndroid Build Coastguard Worker      *
329*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
330*0e209d39SAndroid Build Coastguard Worker      */
331*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_MEBI = UMEASURE_PREFIX_INTERNAL_ONE_BIN + 2,
332*0e209d39SAndroid Build Coastguard Worker 
333*0e209d39SAndroid Build Coastguard Worker     /**
334*0e209d39SAndroid Build Coastguard Worker      * Binary prefix: gibi, 1024^3.
335*0e209d39SAndroid Build Coastguard Worker      *
336*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
337*0e209d39SAndroid Build Coastguard Worker      */
338*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_GIBI = UMEASURE_PREFIX_INTERNAL_ONE_BIN + 3,
339*0e209d39SAndroid Build Coastguard Worker 
340*0e209d39SAndroid Build Coastguard Worker     /**
341*0e209d39SAndroid Build Coastguard Worker      * Binary prefix: tebi, 1024^4.
342*0e209d39SAndroid Build Coastguard Worker      *
343*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
344*0e209d39SAndroid Build Coastguard Worker      */
345*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_TEBI = UMEASURE_PREFIX_INTERNAL_ONE_BIN + 4,
346*0e209d39SAndroid Build Coastguard Worker 
347*0e209d39SAndroid Build Coastguard Worker     /**
348*0e209d39SAndroid Build Coastguard Worker      * Binary prefix: pebi, 1024^5.
349*0e209d39SAndroid Build Coastguard Worker      *
350*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
351*0e209d39SAndroid Build Coastguard Worker      */
352*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_PEBI = UMEASURE_PREFIX_INTERNAL_ONE_BIN + 5,
353*0e209d39SAndroid Build Coastguard Worker 
354*0e209d39SAndroid Build Coastguard Worker     /**
355*0e209d39SAndroid Build Coastguard Worker      * Binary prefix: exbi, 1024^6.
356*0e209d39SAndroid Build Coastguard Worker      *
357*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
358*0e209d39SAndroid Build Coastguard Worker      */
359*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_EXBI = UMEASURE_PREFIX_INTERNAL_ONE_BIN + 6,
360*0e209d39SAndroid Build Coastguard Worker 
361*0e209d39SAndroid Build Coastguard Worker     /**
362*0e209d39SAndroid Build Coastguard Worker      * Binary prefix: zebi, 1024^7.
363*0e209d39SAndroid Build Coastguard Worker      *
364*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
365*0e209d39SAndroid Build Coastguard Worker      */
366*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_ZEBI = UMEASURE_PREFIX_INTERNAL_ONE_BIN + 7,
367*0e209d39SAndroid Build Coastguard Worker 
368*0e209d39SAndroid Build Coastguard Worker     /**
369*0e209d39SAndroid Build Coastguard Worker      * Binary prefix: yobi, 1024^8.
370*0e209d39SAndroid Build Coastguard Worker      *
371*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
372*0e209d39SAndroid Build Coastguard Worker      */
373*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_YOBI = UMEASURE_PREFIX_INTERNAL_ONE_BIN + 8,
374*0e209d39SAndroid Build Coastguard Worker 
375*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_INTERNAL_API
376*0e209d39SAndroid Build Coastguard Worker     /**
377*0e209d39SAndroid Build Coastguard Worker      * ICU use only.
378*0e209d39SAndroid Build Coastguard Worker      * Used to determine the set of base-1024 binary prefixes.
379*0e209d39SAndroid Build Coastguard Worker      * @internal
380*0e209d39SAndroid Build Coastguard Worker      */
381*0e209d39SAndroid Build Coastguard Worker     UMEASURE_PREFIX_INTERNAL_MAX_BIN = UMEASURE_PREFIX_YOBI,
382*0e209d39SAndroid Build Coastguard Worker #endif  // U_HIDE_INTERNAL_API
383*0e209d39SAndroid Build Coastguard Worker } UMeasurePrefix;
384*0e209d39SAndroid Build Coastguard Worker 
385*0e209d39SAndroid Build Coastguard Worker /**
386*0e209d39SAndroid Build Coastguard Worker  * Returns the base of the factor associated with the given unit prefix: the
387*0e209d39SAndroid Build Coastguard Worker  * base is 10 for SI prefixes (kilo, micro) and 1024 for binary prefixes (kibi,
388*0e209d39SAndroid Build Coastguard Worker  * mebi).
389*0e209d39SAndroid Build Coastguard Worker  *
390*0e209d39SAndroid Build Coastguard Worker  * @stable ICU 69
391*0e209d39SAndroid Build Coastguard Worker  */
392*0e209d39SAndroid Build Coastguard Worker U_CAPI int32_t U_EXPORT2 umeas_getPrefixBase(UMeasurePrefix unitPrefix);
393*0e209d39SAndroid Build Coastguard Worker 
394*0e209d39SAndroid Build Coastguard Worker /**
395*0e209d39SAndroid Build Coastguard Worker  * Returns the exponent of the factor associated with the given unit prefix, for
396*0e209d39SAndroid Build Coastguard Worker  * example 3 for kilo, -6 for micro, 1 for kibi, 2 for mebi, 3 for gibi.
397*0e209d39SAndroid Build Coastguard Worker  *
398*0e209d39SAndroid Build Coastguard Worker  * @stable ICU 69
399*0e209d39SAndroid Build Coastguard Worker  */
400*0e209d39SAndroid Build Coastguard Worker U_CAPI int32_t U_EXPORT2 umeas_getPrefixPower(UMeasurePrefix unitPrefix);
401*0e209d39SAndroid Build Coastguard Worker 
402*0e209d39SAndroid Build Coastguard Worker /**
403*0e209d39SAndroid Build Coastguard Worker  * A unit such as length, mass, volume, currency, etc.  A unit is
404*0e209d39SAndroid Build Coastguard Worker  * coupled with a numeric amount to produce a Measure.
405*0e209d39SAndroid Build Coastguard Worker  *
406*0e209d39SAndroid Build Coastguard Worker  * @author Alan Liu
407*0e209d39SAndroid Build Coastguard Worker  * @stable ICU 3.0
408*0e209d39SAndroid Build Coastguard Worker  */
409*0e209d39SAndroid Build Coastguard Worker class U_I18N_API MeasureUnit: public UObject {
410*0e209d39SAndroid Build Coastguard Worker  public:
411*0e209d39SAndroid Build Coastguard Worker 
412*0e209d39SAndroid Build Coastguard Worker     /**
413*0e209d39SAndroid Build Coastguard Worker      * Default constructor.
414*0e209d39SAndroid Build Coastguard Worker      * Populates the instance with the base dimensionless unit, which means that there will be
415*0e209d39SAndroid Build Coastguard Worker      * no unit on the formatted number.
416*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 3.0
417*0e209d39SAndroid Build Coastguard Worker      */
418*0e209d39SAndroid Build Coastguard Worker     MeasureUnit();
419*0e209d39SAndroid Build Coastguard Worker 
420*0e209d39SAndroid Build Coastguard Worker     /**
421*0e209d39SAndroid Build Coastguard Worker      * Copy constructor.
422*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 3.0
423*0e209d39SAndroid Build Coastguard Worker      */
424*0e209d39SAndroid Build Coastguard Worker     MeasureUnit(const MeasureUnit &other);
425*0e209d39SAndroid Build Coastguard Worker 
426*0e209d39SAndroid Build Coastguard Worker     /**
427*0e209d39SAndroid Build Coastguard Worker      * Move constructor.
428*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 67
429*0e209d39SAndroid Build Coastguard Worker      */
430*0e209d39SAndroid Build Coastguard Worker     MeasureUnit(MeasureUnit &&other) noexcept;
431*0e209d39SAndroid Build Coastguard Worker 
432*0e209d39SAndroid Build Coastguard Worker     /**
433*0e209d39SAndroid Build Coastguard Worker      * Construct a MeasureUnit from a CLDR Core Unit Identifier, defined in UTS
434*0e209d39SAndroid Build Coastguard Worker      * 35. (Core unit identifiers and mixed unit identifiers are supported, long
435*0e209d39SAndroid Build Coastguard Worker      * unit identifiers are not.) Validates and canonicalizes the identifier.
436*0e209d39SAndroid Build Coastguard Worker      *
437*0e209d39SAndroid Build Coastguard Worker      * <pre>
438*0e209d39SAndroid Build Coastguard Worker      * MeasureUnit example = MeasureUnit::forIdentifier("furlong-per-nanosecond")
439*0e209d39SAndroid Build Coastguard Worker      * </pre>
440*0e209d39SAndroid Build Coastguard Worker      *
441*0e209d39SAndroid Build Coastguard Worker      * @param identifier The CLDR Unit Identifier.
442*0e209d39SAndroid Build Coastguard Worker      * @param status Set if the identifier is invalid.
443*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 67
444*0e209d39SAndroid Build Coastguard Worker      */
445*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit forIdentifier(StringPiece identifier, UErrorCode& status);
446*0e209d39SAndroid Build Coastguard Worker 
447*0e209d39SAndroid Build Coastguard Worker     /**
448*0e209d39SAndroid Build Coastguard Worker      * Copy assignment operator.
449*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 3.0
450*0e209d39SAndroid Build Coastguard Worker      */
451*0e209d39SAndroid Build Coastguard Worker     MeasureUnit &operator=(const MeasureUnit &other);
452*0e209d39SAndroid Build Coastguard Worker 
453*0e209d39SAndroid Build Coastguard Worker     /**
454*0e209d39SAndroid Build Coastguard Worker      * Move assignment operator.
455*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 67
456*0e209d39SAndroid Build Coastguard Worker      */
457*0e209d39SAndroid Build Coastguard Worker     MeasureUnit &operator=(MeasureUnit &&other) noexcept;
458*0e209d39SAndroid Build Coastguard Worker 
459*0e209d39SAndroid Build Coastguard Worker     /**
460*0e209d39SAndroid Build Coastguard Worker      * Returns a polymorphic clone of this object.  The result will
461*0e209d39SAndroid Build Coastguard Worker      * have the same class as returned by getDynamicClassID().
462*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 3.0
463*0e209d39SAndroid Build Coastguard Worker      */
464*0e209d39SAndroid Build Coastguard Worker     virtual MeasureUnit* clone() const;
465*0e209d39SAndroid Build Coastguard Worker 
466*0e209d39SAndroid Build Coastguard Worker     /**
467*0e209d39SAndroid Build Coastguard Worker      * Destructor
468*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 3.0
469*0e209d39SAndroid Build Coastguard Worker      */
470*0e209d39SAndroid Build Coastguard Worker     virtual ~MeasureUnit();
471*0e209d39SAndroid Build Coastguard Worker 
472*0e209d39SAndroid Build Coastguard Worker     /**
473*0e209d39SAndroid Build Coastguard Worker      * Equality operator.  Return true if this object is equal
474*0e209d39SAndroid Build Coastguard Worker      * to the given object.
475*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 3.0
476*0e209d39SAndroid Build Coastguard Worker      */
477*0e209d39SAndroid Build Coastguard Worker     virtual bool operator==(const UObject& other) const;
478*0e209d39SAndroid Build Coastguard Worker 
479*0e209d39SAndroid Build Coastguard Worker     /**
480*0e209d39SAndroid Build Coastguard Worker      * Inequality operator.  Return true if this object is not equal
481*0e209d39SAndroid Build Coastguard Worker      * to the given object.
482*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
483*0e209d39SAndroid Build Coastguard Worker      */
484*0e209d39SAndroid Build Coastguard Worker     bool operator!=(const UObject& other) const {
485*0e209d39SAndroid Build Coastguard Worker         return !(*this == other);
486*0e209d39SAndroid Build Coastguard Worker     }
487*0e209d39SAndroid Build Coastguard Worker 
488*0e209d39SAndroid Build Coastguard Worker     /**
489*0e209d39SAndroid Build Coastguard Worker      * Get the type.
490*0e209d39SAndroid Build Coastguard Worker      *
491*0e209d39SAndroid Build Coastguard Worker      * If the unit does not have a type, the empty string is returned.
492*0e209d39SAndroid Build Coastguard Worker      *
493*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
494*0e209d39SAndroid Build Coastguard Worker      */
495*0e209d39SAndroid Build Coastguard Worker     const char *getType() const;
496*0e209d39SAndroid Build Coastguard Worker 
497*0e209d39SAndroid Build Coastguard Worker     /**
498*0e209d39SAndroid Build Coastguard Worker      * Get the sub type.
499*0e209d39SAndroid Build Coastguard Worker      *
500*0e209d39SAndroid Build Coastguard Worker      * If the unit does not have a subtype, the empty string is returned.
501*0e209d39SAndroid Build Coastguard Worker      *
502*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
503*0e209d39SAndroid Build Coastguard Worker      */
504*0e209d39SAndroid Build Coastguard Worker     const char *getSubtype() const;
505*0e209d39SAndroid Build Coastguard Worker 
506*0e209d39SAndroid Build Coastguard Worker     /**
507*0e209d39SAndroid Build Coastguard Worker      * Get CLDR Unit Identifier for this MeasureUnit, as defined in UTS 35.
508*0e209d39SAndroid Build Coastguard Worker      *
509*0e209d39SAndroid Build Coastguard Worker      * @return The string form of this unit, owned by this MeasureUnit.
510*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 67
511*0e209d39SAndroid Build Coastguard Worker      */
512*0e209d39SAndroid Build Coastguard Worker     const char* getIdentifier() const;
513*0e209d39SAndroid Build Coastguard Worker 
514*0e209d39SAndroid Build Coastguard Worker     /**
515*0e209d39SAndroid Build Coastguard Worker      * Compute the complexity of the unit. See UMeasureUnitComplexity for more information.
516*0e209d39SAndroid Build Coastguard Worker      *
517*0e209d39SAndroid Build Coastguard Worker      * @param status Set if an error occurs.
518*0e209d39SAndroid Build Coastguard Worker      * @return The unit complexity.
519*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 67
520*0e209d39SAndroid Build Coastguard Worker      */
521*0e209d39SAndroid Build Coastguard Worker     UMeasureUnitComplexity getComplexity(UErrorCode& status) const;
522*0e209d39SAndroid Build Coastguard Worker 
523*0e209d39SAndroid Build Coastguard Worker     /**
524*0e209d39SAndroid Build Coastguard Worker      * Creates a MeasureUnit which is this SINGLE unit augmented with the specified prefix.
525*0e209d39SAndroid Build Coastguard Worker      * For example, UMEASURE_PREFIX_KILO for "kilo", or UMEASURE_PREFIX_KIBI for "kibi".
526*0e209d39SAndroid Build Coastguard Worker      *
527*0e209d39SAndroid Build Coastguard Worker      * There is sufficient locale data to format all standard prefixes.
528*0e209d39SAndroid Build Coastguard Worker      *
529*0e209d39SAndroid Build Coastguard Worker      * NOTE: Only works on SINGLE units. If this is a COMPOUND or MIXED unit, an error will
530*0e209d39SAndroid Build Coastguard Worker      * occur. For more information, see UMeasureUnitComplexity.
531*0e209d39SAndroid Build Coastguard Worker      *
532*0e209d39SAndroid Build Coastguard Worker      * @param prefix The prefix, from UMeasurePrefix.
533*0e209d39SAndroid Build Coastguard Worker      * @param status Set if this is not a SINGLE unit or if another error occurs.
534*0e209d39SAndroid Build Coastguard Worker      * @return A new SINGLE unit.
535*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
536*0e209d39SAndroid Build Coastguard Worker      */
537*0e209d39SAndroid Build Coastguard Worker     MeasureUnit withPrefix(UMeasurePrefix prefix, UErrorCode& status) const;
538*0e209d39SAndroid Build Coastguard Worker 
539*0e209d39SAndroid Build Coastguard Worker     /**
540*0e209d39SAndroid Build Coastguard Worker      * Returns the current SI or binary prefix of this SINGLE unit. For example,
541*0e209d39SAndroid Build Coastguard Worker      * if the unit has the prefix "kilo", then UMEASURE_PREFIX_KILO is
542*0e209d39SAndroid Build Coastguard Worker      * returned.
543*0e209d39SAndroid Build Coastguard Worker      *
544*0e209d39SAndroid Build Coastguard Worker      * NOTE: Only works on SINGLE units. If this is a COMPOUND or MIXED unit, an error will
545*0e209d39SAndroid Build Coastguard Worker      * occur. For more information, see UMeasureUnitComplexity.
546*0e209d39SAndroid Build Coastguard Worker      *
547*0e209d39SAndroid Build Coastguard Worker      * @param status Set if this is not a SINGLE unit or if another error occurs.
548*0e209d39SAndroid Build Coastguard Worker      * @return The prefix of this SINGLE unit, from UMeasurePrefix.
549*0e209d39SAndroid Build Coastguard Worker      * @see umeas_getPrefixBase
550*0e209d39SAndroid Build Coastguard Worker      * @see umeas_getPrefixPower
551*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
552*0e209d39SAndroid Build Coastguard Worker      */
553*0e209d39SAndroid Build Coastguard Worker     UMeasurePrefix getPrefix(UErrorCode& status) const;
554*0e209d39SAndroid Build Coastguard Worker 
555*0e209d39SAndroid Build Coastguard Worker     /**
556*0e209d39SAndroid Build Coastguard Worker      * Creates a MeasureUnit which is this SINGLE unit augmented with the specified dimensionality
557*0e209d39SAndroid Build Coastguard Worker      * (power). For example, if dimensionality is 2, the unit will be squared.
558*0e209d39SAndroid Build Coastguard Worker      *
559*0e209d39SAndroid Build Coastguard Worker      * NOTE: Only works on SINGLE units. If this is a COMPOUND or MIXED unit, an error will
560*0e209d39SAndroid Build Coastguard Worker      * occur. For more information, see UMeasureUnitComplexity.
561*0e209d39SAndroid Build Coastguard Worker      *
562*0e209d39SAndroid Build Coastguard Worker      * For the base dimensionless unit, withDimensionality does nothing.
563*0e209d39SAndroid Build Coastguard Worker      *
564*0e209d39SAndroid Build Coastguard Worker      * @param dimensionality The dimensionality (power).
565*0e209d39SAndroid Build Coastguard Worker      * @param status Set if this is not a SINGLE unit or if another error occurs.
566*0e209d39SAndroid Build Coastguard Worker      * @return A new SINGLE unit.
567*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 67
568*0e209d39SAndroid Build Coastguard Worker      */
569*0e209d39SAndroid Build Coastguard Worker     MeasureUnit withDimensionality(int32_t dimensionality, UErrorCode& status) const;
570*0e209d39SAndroid Build Coastguard Worker 
571*0e209d39SAndroid Build Coastguard Worker     /**
572*0e209d39SAndroid Build Coastguard Worker      * Gets the dimensionality (power) of this MeasureUnit. For example, if the unit is square,
573*0e209d39SAndroid Build Coastguard Worker      * then 2 is returned.
574*0e209d39SAndroid Build Coastguard Worker      *
575*0e209d39SAndroid Build Coastguard Worker      * NOTE: Only works on SINGLE units. If this is a COMPOUND or MIXED unit, an error will
576*0e209d39SAndroid Build Coastguard Worker      * occur. For more information, see UMeasureUnitComplexity.
577*0e209d39SAndroid Build Coastguard Worker      *
578*0e209d39SAndroid Build Coastguard Worker      * For the base dimensionless unit, getDimensionality returns 0.
579*0e209d39SAndroid Build Coastguard Worker      *
580*0e209d39SAndroid Build Coastguard Worker      * @param status Set if this is not a SINGLE unit or if another error occurs.
581*0e209d39SAndroid Build Coastguard Worker      * @return The dimensionality (power) of this simple unit.
582*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 67
583*0e209d39SAndroid Build Coastguard Worker      */
584*0e209d39SAndroid Build Coastguard Worker     int32_t getDimensionality(UErrorCode& status) const;
585*0e209d39SAndroid Build Coastguard Worker 
586*0e209d39SAndroid Build Coastguard Worker     /**
587*0e209d39SAndroid Build Coastguard Worker      * Gets the reciprocal of this MeasureUnit, with the numerator and denominator flipped.
588*0e209d39SAndroid Build Coastguard Worker      *
589*0e209d39SAndroid Build Coastguard Worker      * For example, if the receiver is "meter-per-second", the unit "second-per-meter" is returned.
590*0e209d39SAndroid Build Coastguard Worker      *
591*0e209d39SAndroid Build Coastguard Worker      * NOTE: Only works on SINGLE and COMPOUND units. If this is a MIXED unit, an error will
592*0e209d39SAndroid Build Coastguard Worker      * occur. For more information, see UMeasureUnitComplexity.
593*0e209d39SAndroid Build Coastguard Worker      *
594*0e209d39SAndroid Build Coastguard Worker      * @param status Set if this is a MIXED unit or if another error occurs.
595*0e209d39SAndroid Build Coastguard Worker      * @return The reciprocal of the target unit.
596*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 67
597*0e209d39SAndroid Build Coastguard Worker      */
598*0e209d39SAndroid Build Coastguard Worker     MeasureUnit reciprocal(UErrorCode& status) const;
599*0e209d39SAndroid Build Coastguard Worker 
600*0e209d39SAndroid Build Coastguard Worker     /**
601*0e209d39SAndroid Build Coastguard Worker      * Gets the product of this unit with another unit. This is a way to build units from
602*0e209d39SAndroid Build Coastguard Worker      * constituent parts.
603*0e209d39SAndroid Build Coastguard Worker      *
604*0e209d39SAndroid Build Coastguard Worker      * The numerator and denominator are preserved through this operation.
605*0e209d39SAndroid Build Coastguard Worker      *
606*0e209d39SAndroid Build Coastguard Worker      * For example, if the receiver is "kilowatt" and the argument is "hour-per-day", then the
607*0e209d39SAndroid Build Coastguard Worker      * unit "kilowatt-hour-per-day" is returned.
608*0e209d39SAndroid Build Coastguard Worker      *
609*0e209d39SAndroid Build Coastguard Worker      * NOTE: Only works on SINGLE and COMPOUND units. If either unit (receiver and argument) is a
610*0e209d39SAndroid Build Coastguard Worker      * MIXED unit, an error will occur. For more information, see UMeasureUnitComplexity.
611*0e209d39SAndroid Build Coastguard Worker      *
612*0e209d39SAndroid Build Coastguard Worker      * @param other The MeasureUnit to multiply with the target.
613*0e209d39SAndroid Build Coastguard Worker      * @param status Set if this or other is a MIXED unit or if another error occurs.
614*0e209d39SAndroid Build Coastguard Worker      * @return The product of the target unit with the provided unit.
615*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 67
616*0e209d39SAndroid Build Coastguard Worker      */
617*0e209d39SAndroid Build Coastguard Worker     MeasureUnit product(const MeasureUnit& other, UErrorCode& status) const;
618*0e209d39SAndroid Build Coastguard Worker 
619*0e209d39SAndroid Build Coastguard Worker     /**
620*0e209d39SAndroid Build Coastguard Worker      * Gets the list of SINGLE units contained within a MIXED or COMPOUND unit.
621*0e209d39SAndroid Build Coastguard Worker      *
622*0e209d39SAndroid Build Coastguard Worker      * Examples:
623*0e209d39SAndroid Build Coastguard Worker      * - Given "meter-kilogram-per-second", three units will be returned: "meter",
624*0e209d39SAndroid Build Coastguard Worker      *   "kilogram", and "per-second".
625*0e209d39SAndroid Build Coastguard Worker      * - Given "hour+minute+second", three units will be returned: "hour", "minute",
626*0e209d39SAndroid Build Coastguard Worker      *   and "second".
627*0e209d39SAndroid Build Coastguard Worker      *
628*0e209d39SAndroid Build Coastguard Worker      * If this is a SINGLE unit, an array of length 1 will be returned.
629*0e209d39SAndroid Build Coastguard Worker      *
630*0e209d39SAndroid Build Coastguard Worker      * @param status Set if an error occurs.
631*0e209d39SAndroid Build Coastguard Worker      * @return A pair with the list of units as a LocalArray and the number of units in the list.
632*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 68
633*0e209d39SAndroid Build Coastguard Worker      */
634*0e209d39SAndroid Build Coastguard Worker     inline std::pair<LocalArray<MeasureUnit>, int32_t> splitToSingleUnits(UErrorCode& status) const;
635*0e209d39SAndroid Build Coastguard Worker 
636*0e209d39SAndroid Build Coastguard Worker     /**
637*0e209d39SAndroid Build Coastguard Worker      * getAvailable gets all of the available units.
638*0e209d39SAndroid Build Coastguard Worker      * If there are too many units to fit into destCapacity then the
639*0e209d39SAndroid Build Coastguard Worker      * error code is set to U_BUFFER_OVERFLOW_ERROR.
640*0e209d39SAndroid Build Coastguard Worker      *
641*0e209d39SAndroid Build Coastguard Worker      * @param destArray destination buffer.
642*0e209d39SAndroid Build Coastguard Worker      * @param destCapacity number of MeasureUnit instances available at dest.
643*0e209d39SAndroid Build Coastguard Worker      * @param errorCode ICU error code.
644*0e209d39SAndroid Build Coastguard Worker      * @return number of available units.
645*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
646*0e209d39SAndroid Build Coastguard Worker      */
647*0e209d39SAndroid Build Coastguard Worker     static int32_t getAvailable(
648*0e209d39SAndroid Build Coastguard Worker             MeasureUnit *destArray,
649*0e209d39SAndroid Build Coastguard Worker             int32_t destCapacity,
650*0e209d39SAndroid Build Coastguard Worker             UErrorCode &errorCode);
651*0e209d39SAndroid Build Coastguard Worker 
652*0e209d39SAndroid Build Coastguard Worker     /**
653*0e209d39SAndroid Build Coastguard Worker      * getAvailable gets all of the available units for a specific type.
654*0e209d39SAndroid Build Coastguard Worker      * If there are too many units to fit into destCapacity then the
655*0e209d39SAndroid Build Coastguard Worker      * error code is set to U_BUFFER_OVERFLOW_ERROR.
656*0e209d39SAndroid Build Coastguard Worker      *
657*0e209d39SAndroid Build Coastguard Worker      * @param type the type
658*0e209d39SAndroid Build Coastguard Worker      * @param destArray destination buffer.
659*0e209d39SAndroid Build Coastguard Worker      * @param destCapacity number of MeasureUnit instances available at dest.
660*0e209d39SAndroid Build Coastguard Worker      * @param errorCode ICU error code.
661*0e209d39SAndroid Build Coastguard Worker      * @return number of available units for type.
662*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
663*0e209d39SAndroid Build Coastguard Worker      */
664*0e209d39SAndroid Build Coastguard Worker     static int32_t getAvailable(
665*0e209d39SAndroid Build Coastguard Worker             const char *type,
666*0e209d39SAndroid Build Coastguard Worker             MeasureUnit *destArray,
667*0e209d39SAndroid Build Coastguard Worker             int32_t destCapacity,
668*0e209d39SAndroid Build Coastguard Worker             UErrorCode &errorCode);
669*0e209d39SAndroid Build Coastguard Worker 
670*0e209d39SAndroid Build Coastguard Worker     /**
671*0e209d39SAndroid Build Coastguard Worker      * getAvailableTypes gets all of the available types. Caller owns the
672*0e209d39SAndroid Build Coastguard Worker      * returned StringEnumeration and must delete it when finished using it.
673*0e209d39SAndroid Build Coastguard Worker      *
674*0e209d39SAndroid Build Coastguard Worker      * @param errorCode ICU error code.
675*0e209d39SAndroid Build Coastguard Worker      * @return the types.
676*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
677*0e209d39SAndroid Build Coastguard Worker      */
678*0e209d39SAndroid Build Coastguard Worker     static StringEnumeration* getAvailableTypes(UErrorCode &errorCode);
679*0e209d39SAndroid Build Coastguard Worker 
680*0e209d39SAndroid Build Coastguard Worker     /**
681*0e209d39SAndroid Build Coastguard Worker      * Return the class ID for this class. This is useful only for comparing to
682*0e209d39SAndroid Build Coastguard Worker      * a return value from getDynamicClassID(). For example:
683*0e209d39SAndroid Build Coastguard Worker      * <pre>
684*0e209d39SAndroid Build Coastguard Worker      * .   Base* polymorphic_pointer = createPolymorphicObject();
685*0e209d39SAndroid Build Coastguard Worker      * .   if (polymorphic_pointer->getDynamicClassID() ==
686*0e209d39SAndroid Build Coastguard Worker      * .       Derived::getStaticClassID()) ...
687*0e209d39SAndroid Build Coastguard Worker      * </pre>
688*0e209d39SAndroid Build Coastguard Worker      * @return          The class ID for all objects of this class.
689*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
690*0e209d39SAndroid Build Coastguard Worker      */
691*0e209d39SAndroid Build Coastguard Worker     static UClassID U_EXPORT2 getStaticClassID();
692*0e209d39SAndroid Build Coastguard Worker 
693*0e209d39SAndroid Build Coastguard Worker     /**
694*0e209d39SAndroid Build Coastguard Worker      * Returns a unique class ID POLYMORPHICALLY. Pure virtual override. This
695*0e209d39SAndroid Build Coastguard Worker      * method is to implement a simple version of RTTI, since not all C++
696*0e209d39SAndroid Build Coastguard Worker      * compilers support genuine RTTI. Polymorphic operator==() and clone()
697*0e209d39SAndroid Build Coastguard Worker      * methods call this method.
698*0e209d39SAndroid Build Coastguard Worker      *
699*0e209d39SAndroid Build Coastguard Worker      * @return          The class ID for this object. All objects of a
700*0e209d39SAndroid Build Coastguard Worker      *                  given class have the same class ID.  Objects of
701*0e209d39SAndroid Build Coastguard Worker      *                  other classes have different class IDs.
702*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
703*0e209d39SAndroid Build Coastguard Worker      */
704*0e209d39SAndroid Build Coastguard Worker     virtual UClassID getDynamicClassID() const override;
705*0e209d39SAndroid Build Coastguard Worker 
706*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_INTERNAL_API
707*0e209d39SAndroid Build Coastguard Worker     /**
708*0e209d39SAndroid Build Coastguard Worker      * ICU use only.
709*0e209d39SAndroid Build Coastguard Worker      * Returns associated array index for this measure unit.
710*0e209d39SAndroid Build Coastguard Worker      * @internal
711*0e209d39SAndroid Build Coastguard Worker      */
712*0e209d39SAndroid Build Coastguard Worker     int32_t getOffset() const;
713*0e209d39SAndroid Build Coastguard Worker #endif /* U_HIDE_INTERNAL_API */
714*0e209d39SAndroid Build Coastguard Worker 
715*0e209d39SAndroid Build Coastguard Worker // All code between the "Start generated createXXX methods" comment and
716*0e209d39SAndroid Build Coastguard Worker // the "End generated createXXX methods" comment is auto generated code
717*0e209d39SAndroid Build Coastguard Worker // and must not be edited manually. For instructions on how to correctly
718*0e209d39SAndroid Build Coastguard Worker // update this code, refer to:
719*0e209d39SAndroid Build Coastguard Worker // docs/processes/release/tasks/updating-measure-unit.md
720*0e209d39SAndroid Build Coastguard Worker //
721*0e209d39SAndroid Build Coastguard Worker // Start generated createXXX methods
722*0e209d39SAndroid Build Coastguard Worker 
723*0e209d39SAndroid Build Coastguard Worker     /**
724*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of acceleration: g-force.
725*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
726*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getGForce()}.
727*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
728*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
729*0e209d39SAndroid Build Coastguard Worker      */
730*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createGForce(UErrorCode &status);
731*0e209d39SAndroid Build Coastguard Worker 
732*0e209d39SAndroid Build Coastguard Worker     /**
733*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of acceleration: g-force.
734*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createGForce()}.
735*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
736*0e209d39SAndroid Build Coastguard Worker      */
737*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getGForce();
738*0e209d39SAndroid Build Coastguard Worker 
739*0e209d39SAndroid Build Coastguard Worker     /**
740*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of acceleration: meter-per-square-second.
741*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
742*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMeterPerSecondSquared()}.
743*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
744*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
745*0e209d39SAndroid Build Coastguard Worker      */
746*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMeterPerSecondSquared(UErrorCode &status);
747*0e209d39SAndroid Build Coastguard Worker 
748*0e209d39SAndroid Build Coastguard Worker     /**
749*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of acceleration: meter-per-square-second.
750*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMeterPerSecondSquared()}.
751*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
752*0e209d39SAndroid Build Coastguard Worker      */
753*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMeterPerSecondSquared();
754*0e209d39SAndroid Build Coastguard Worker 
755*0e209d39SAndroid Build Coastguard Worker     /**
756*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of angle: arc-minute.
757*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
758*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getArcMinute()}.
759*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
760*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
761*0e209d39SAndroid Build Coastguard Worker      */
762*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createArcMinute(UErrorCode &status);
763*0e209d39SAndroid Build Coastguard Worker 
764*0e209d39SAndroid Build Coastguard Worker     /**
765*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of angle: arc-minute.
766*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createArcMinute()}.
767*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
768*0e209d39SAndroid Build Coastguard Worker      */
769*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getArcMinute();
770*0e209d39SAndroid Build Coastguard Worker 
771*0e209d39SAndroid Build Coastguard Worker     /**
772*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of angle: arc-second.
773*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
774*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getArcSecond()}.
775*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
776*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
777*0e209d39SAndroid Build Coastguard Worker      */
778*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createArcSecond(UErrorCode &status);
779*0e209d39SAndroid Build Coastguard Worker 
780*0e209d39SAndroid Build Coastguard Worker     /**
781*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of angle: arc-second.
782*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createArcSecond()}.
783*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
784*0e209d39SAndroid Build Coastguard Worker      */
785*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getArcSecond();
786*0e209d39SAndroid Build Coastguard Worker 
787*0e209d39SAndroid Build Coastguard Worker     /**
788*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of angle: degree.
789*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
790*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getDegree()}.
791*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
792*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
793*0e209d39SAndroid Build Coastguard Worker      */
794*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createDegree(UErrorCode &status);
795*0e209d39SAndroid Build Coastguard Worker 
796*0e209d39SAndroid Build Coastguard Worker     /**
797*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of angle: degree.
798*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createDegree()}.
799*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
800*0e209d39SAndroid Build Coastguard Worker      */
801*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getDegree();
802*0e209d39SAndroid Build Coastguard Worker 
803*0e209d39SAndroid Build Coastguard Worker     /**
804*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of angle: radian.
805*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
806*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getRadian()}.
807*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
808*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
809*0e209d39SAndroid Build Coastguard Worker      */
810*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createRadian(UErrorCode &status);
811*0e209d39SAndroid Build Coastguard Worker 
812*0e209d39SAndroid Build Coastguard Worker     /**
813*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of angle: radian.
814*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createRadian()}.
815*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
816*0e209d39SAndroid Build Coastguard Worker      */
817*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getRadian();
818*0e209d39SAndroid Build Coastguard Worker 
819*0e209d39SAndroid Build Coastguard Worker     /**
820*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of angle: revolution.
821*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
822*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getRevolutionAngle()}.
823*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
824*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 56
825*0e209d39SAndroid Build Coastguard Worker      */
826*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createRevolutionAngle(UErrorCode &status);
827*0e209d39SAndroid Build Coastguard Worker 
828*0e209d39SAndroid Build Coastguard Worker     /**
829*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of angle: revolution.
830*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createRevolutionAngle()}.
831*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
832*0e209d39SAndroid Build Coastguard Worker      */
833*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getRevolutionAngle();
834*0e209d39SAndroid Build Coastguard Worker 
835*0e209d39SAndroid Build Coastguard Worker     /**
836*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of area: acre.
837*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
838*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getAcre()}.
839*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
840*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
841*0e209d39SAndroid Build Coastguard Worker      */
842*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createAcre(UErrorCode &status);
843*0e209d39SAndroid Build Coastguard Worker 
844*0e209d39SAndroid Build Coastguard Worker     /**
845*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of area: acre.
846*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createAcre()}.
847*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
848*0e209d39SAndroid Build Coastguard Worker      */
849*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getAcre();
850*0e209d39SAndroid Build Coastguard Worker 
851*0e209d39SAndroid Build Coastguard Worker     /**
852*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of area: dunam.
853*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
854*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getDunam()}.
855*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
856*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
857*0e209d39SAndroid Build Coastguard Worker      */
858*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createDunam(UErrorCode &status);
859*0e209d39SAndroid Build Coastguard Worker 
860*0e209d39SAndroid Build Coastguard Worker     /**
861*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of area: dunam.
862*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createDunam()}.
863*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
864*0e209d39SAndroid Build Coastguard Worker      */
865*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getDunam();
866*0e209d39SAndroid Build Coastguard Worker 
867*0e209d39SAndroid Build Coastguard Worker     /**
868*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of area: hectare.
869*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
870*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getHectare()}.
871*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
872*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
873*0e209d39SAndroid Build Coastguard Worker      */
874*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createHectare(UErrorCode &status);
875*0e209d39SAndroid Build Coastguard Worker 
876*0e209d39SAndroid Build Coastguard Worker     /**
877*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of area: hectare.
878*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createHectare()}.
879*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
880*0e209d39SAndroid Build Coastguard Worker      */
881*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getHectare();
882*0e209d39SAndroid Build Coastguard Worker 
883*0e209d39SAndroid Build Coastguard Worker     /**
884*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of area: square-centimeter.
885*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
886*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getSquareCentimeter()}.
887*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
888*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
889*0e209d39SAndroid Build Coastguard Worker      */
890*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createSquareCentimeter(UErrorCode &status);
891*0e209d39SAndroid Build Coastguard Worker 
892*0e209d39SAndroid Build Coastguard Worker     /**
893*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of area: square-centimeter.
894*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createSquareCentimeter()}.
895*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
896*0e209d39SAndroid Build Coastguard Worker      */
897*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getSquareCentimeter();
898*0e209d39SAndroid Build Coastguard Worker 
899*0e209d39SAndroid Build Coastguard Worker     /**
900*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of area: square-foot.
901*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
902*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getSquareFoot()}.
903*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
904*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
905*0e209d39SAndroid Build Coastguard Worker      */
906*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createSquareFoot(UErrorCode &status);
907*0e209d39SAndroid Build Coastguard Worker 
908*0e209d39SAndroid Build Coastguard Worker     /**
909*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of area: square-foot.
910*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createSquareFoot()}.
911*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
912*0e209d39SAndroid Build Coastguard Worker      */
913*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getSquareFoot();
914*0e209d39SAndroid Build Coastguard Worker 
915*0e209d39SAndroid Build Coastguard Worker     /**
916*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of area: square-inch.
917*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
918*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getSquareInch()}.
919*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
920*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
921*0e209d39SAndroid Build Coastguard Worker      */
922*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createSquareInch(UErrorCode &status);
923*0e209d39SAndroid Build Coastguard Worker 
924*0e209d39SAndroid Build Coastguard Worker     /**
925*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of area: square-inch.
926*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createSquareInch()}.
927*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
928*0e209d39SAndroid Build Coastguard Worker      */
929*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getSquareInch();
930*0e209d39SAndroid Build Coastguard Worker 
931*0e209d39SAndroid Build Coastguard Worker     /**
932*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of area: square-kilometer.
933*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
934*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getSquareKilometer()}.
935*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
936*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
937*0e209d39SAndroid Build Coastguard Worker      */
938*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createSquareKilometer(UErrorCode &status);
939*0e209d39SAndroid Build Coastguard Worker 
940*0e209d39SAndroid Build Coastguard Worker     /**
941*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of area: square-kilometer.
942*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createSquareKilometer()}.
943*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
944*0e209d39SAndroid Build Coastguard Worker      */
945*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getSquareKilometer();
946*0e209d39SAndroid Build Coastguard Worker 
947*0e209d39SAndroid Build Coastguard Worker     /**
948*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of area: square-meter.
949*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
950*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getSquareMeter()}.
951*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
952*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
953*0e209d39SAndroid Build Coastguard Worker      */
954*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createSquareMeter(UErrorCode &status);
955*0e209d39SAndroid Build Coastguard Worker 
956*0e209d39SAndroid Build Coastguard Worker     /**
957*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of area: square-meter.
958*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createSquareMeter()}.
959*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
960*0e209d39SAndroid Build Coastguard Worker      */
961*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getSquareMeter();
962*0e209d39SAndroid Build Coastguard Worker 
963*0e209d39SAndroid Build Coastguard Worker     /**
964*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of area: square-mile.
965*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
966*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getSquareMile()}.
967*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
968*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
969*0e209d39SAndroid Build Coastguard Worker      */
970*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createSquareMile(UErrorCode &status);
971*0e209d39SAndroid Build Coastguard Worker 
972*0e209d39SAndroid Build Coastguard Worker     /**
973*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of area: square-mile.
974*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createSquareMile()}.
975*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
976*0e209d39SAndroid Build Coastguard Worker      */
977*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getSquareMile();
978*0e209d39SAndroid Build Coastguard Worker 
979*0e209d39SAndroid Build Coastguard Worker     /**
980*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of area: square-yard.
981*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
982*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getSquareYard()}.
983*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
984*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
985*0e209d39SAndroid Build Coastguard Worker      */
986*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createSquareYard(UErrorCode &status);
987*0e209d39SAndroid Build Coastguard Worker 
988*0e209d39SAndroid Build Coastguard Worker     /**
989*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of area: square-yard.
990*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createSquareYard()}.
991*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
992*0e209d39SAndroid Build Coastguard Worker      */
993*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getSquareYard();
994*0e209d39SAndroid Build Coastguard Worker 
995*0e209d39SAndroid Build Coastguard Worker     /**
996*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of concentr: item.
997*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
998*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getItem()}.
999*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1000*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 70
1001*0e209d39SAndroid Build Coastguard Worker      */
1002*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createItem(UErrorCode &status);
1003*0e209d39SAndroid Build Coastguard Worker 
1004*0e209d39SAndroid Build Coastguard Worker     /**
1005*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of concentr: item.
1006*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createItem()}.
1007*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 70
1008*0e209d39SAndroid Build Coastguard Worker      */
1009*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getItem();
1010*0e209d39SAndroid Build Coastguard Worker 
1011*0e209d39SAndroid Build Coastguard Worker     /**
1012*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of concentr: karat.
1013*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1014*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getKarat()}.
1015*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1016*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1017*0e209d39SAndroid Build Coastguard Worker      */
1018*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createKarat(UErrorCode &status);
1019*0e209d39SAndroid Build Coastguard Worker 
1020*0e209d39SAndroid Build Coastguard Worker     /**
1021*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of concentr: karat.
1022*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createKarat()}.
1023*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1024*0e209d39SAndroid Build Coastguard Worker      */
1025*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getKarat();
1026*0e209d39SAndroid Build Coastguard Worker 
1027*0e209d39SAndroid Build Coastguard Worker     /**
1028*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of concentr: milligram-ofglucose-per-deciliter.
1029*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1030*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMilligramOfglucosePerDeciliter()}.
1031*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1032*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
1033*0e209d39SAndroid Build Coastguard Worker      */
1034*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMilligramOfglucosePerDeciliter(UErrorCode &status);
1035*0e209d39SAndroid Build Coastguard Worker 
1036*0e209d39SAndroid Build Coastguard Worker     /**
1037*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of concentr: milligram-ofglucose-per-deciliter.
1038*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMilligramOfglucosePerDeciliter()}.
1039*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 69
1040*0e209d39SAndroid Build Coastguard Worker      */
1041*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMilligramOfglucosePerDeciliter();
1042*0e209d39SAndroid Build Coastguard Worker 
1043*0e209d39SAndroid Build Coastguard Worker     /**
1044*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of concentr: milligram-per-deciliter.
1045*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1046*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMilligramPerDeciliter()}.
1047*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1048*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 57
1049*0e209d39SAndroid Build Coastguard Worker      */
1050*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMilligramPerDeciliter(UErrorCode &status);
1051*0e209d39SAndroid Build Coastguard Worker 
1052*0e209d39SAndroid Build Coastguard Worker     /**
1053*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of concentr: milligram-per-deciliter.
1054*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMilligramPerDeciliter()}.
1055*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1056*0e209d39SAndroid Build Coastguard Worker      */
1057*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMilligramPerDeciliter();
1058*0e209d39SAndroid Build Coastguard Worker 
1059*0e209d39SAndroid Build Coastguard Worker     /**
1060*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of concentr: millimole-per-liter.
1061*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1062*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMillimolePerLiter()}.
1063*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1064*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 57
1065*0e209d39SAndroid Build Coastguard Worker      */
1066*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMillimolePerLiter(UErrorCode &status);
1067*0e209d39SAndroid Build Coastguard Worker 
1068*0e209d39SAndroid Build Coastguard Worker     /**
1069*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of concentr: millimole-per-liter.
1070*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMillimolePerLiter()}.
1071*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1072*0e209d39SAndroid Build Coastguard Worker      */
1073*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMillimolePerLiter();
1074*0e209d39SAndroid Build Coastguard Worker 
1075*0e209d39SAndroid Build Coastguard Worker     /**
1076*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of concentr: mole.
1077*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1078*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMole()}.
1079*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1080*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1081*0e209d39SAndroid Build Coastguard Worker      */
1082*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMole(UErrorCode &status);
1083*0e209d39SAndroid Build Coastguard Worker 
1084*0e209d39SAndroid Build Coastguard Worker     /**
1085*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of concentr: mole.
1086*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMole()}.
1087*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1088*0e209d39SAndroid Build Coastguard Worker      */
1089*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMole();
1090*0e209d39SAndroid Build Coastguard Worker 
1091*0e209d39SAndroid Build Coastguard Worker     /**
1092*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of concentr: percent.
1093*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1094*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getPercent()}.
1095*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1096*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 63
1097*0e209d39SAndroid Build Coastguard Worker      */
1098*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createPercent(UErrorCode &status);
1099*0e209d39SAndroid Build Coastguard Worker 
1100*0e209d39SAndroid Build Coastguard Worker     /**
1101*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of concentr: percent.
1102*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createPercent()}.
1103*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1104*0e209d39SAndroid Build Coastguard Worker      */
1105*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getPercent();
1106*0e209d39SAndroid Build Coastguard Worker 
1107*0e209d39SAndroid Build Coastguard Worker     /**
1108*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of concentr: permille.
1109*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1110*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getPermille()}.
1111*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1112*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 63
1113*0e209d39SAndroid Build Coastguard Worker      */
1114*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createPermille(UErrorCode &status);
1115*0e209d39SAndroid Build Coastguard Worker 
1116*0e209d39SAndroid Build Coastguard Worker     /**
1117*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of concentr: permille.
1118*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createPermille()}.
1119*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1120*0e209d39SAndroid Build Coastguard Worker      */
1121*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getPermille();
1122*0e209d39SAndroid Build Coastguard Worker 
1123*0e209d39SAndroid Build Coastguard Worker     /**
1124*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of concentr: permillion.
1125*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1126*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getPartPerMillion()}.
1127*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1128*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 57
1129*0e209d39SAndroid Build Coastguard Worker      */
1130*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createPartPerMillion(UErrorCode &status);
1131*0e209d39SAndroid Build Coastguard Worker 
1132*0e209d39SAndroid Build Coastguard Worker     /**
1133*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of concentr: permillion.
1134*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createPartPerMillion()}.
1135*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1136*0e209d39SAndroid Build Coastguard Worker      */
1137*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getPartPerMillion();
1138*0e209d39SAndroid Build Coastguard Worker 
1139*0e209d39SAndroid Build Coastguard Worker     /**
1140*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of concentr: permyriad.
1141*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1142*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getPermyriad()}.
1143*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1144*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1145*0e209d39SAndroid Build Coastguard Worker      */
1146*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createPermyriad(UErrorCode &status);
1147*0e209d39SAndroid Build Coastguard Worker 
1148*0e209d39SAndroid Build Coastguard Worker     /**
1149*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of concentr: permyriad.
1150*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createPermyriad()}.
1151*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1152*0e209d39SAndroid Build Coastguard Worker      */
1153*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getPermyriad();
1154*0e209d39SAndroid Build Coastguard Worker 
1155*0e209d39SAndroid Build Coastguard Worker     /**
1156*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of consumption: liter-per-100-kilometer.
1157*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1158*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getLiterPer100Kilometers()}.
1159*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1160*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 56
1161*0e209d39SAndroid Build Coastguard Worker      */
1162*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createLiterPer100Kilometers(UErrorCode &status);
1163*0e209d39SAndroid Build Coastguard Worker 
1164*0e209d39SAndroid Build Coastguard Worker     /**
1165*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of consumption: liter-per-100-kilometer.
1166*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createLiterPer100Kilometers()}.
1167*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1168*0e209d39SAndroid Build Coastguard Worker      */
1169*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getLiterPer100Kilometers();
1170*0e209d39SAndroid Build Coastguard Worker 
1171*0e209d39SAndroid Build Coastguard Worker     /**
1172*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of consumption: liter-per-kilometer.
1173*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1174*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getLiterPerKilometer()}.
1175*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1176*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1177*0e209d39SAndroid Build Coastguard Worker      */
1178*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createLiterPerKilometer(UErrorCode &status);
1179*0e209d39SAndroid Build Coastguard Worker 
1180*0e209d39SAndroid Build Coastguard Worker     /**
1181*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of consumption: liter-per-kilometer.
1182*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createLiterPerKilometer()}.
1183*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1184*0e209d39SAndroid Build Coastguard Worker      */
1185*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getLiterPerKilometer();
1186*0e209d39SAndroid Build Coastguard Worker 
1187*0e209d39SAndroid Build Coastguard Worker     /**
1188*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of consumption: mile-per-gallon.
1189*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1190*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMilePerGallon()}.
1191*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1192*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1193*0e209d39SAndroid Build Coastguard Worker      */
1194*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMilePerGallon(UErrorCode &status);
1195*0e209d39SAndroid Build Coastguard Worker 
1196*0e209d39SAndroid Build Coastguard Worker     /**
1197*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of consumption: mile-per-gallon.
1198*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMilePerGallon()}.
1199*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1200*0e209d39SAndroid Build Coastguard Worker      */
1201*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMilePerGallon();
1202*0e209d39SAndroid Build Coastguard Worker 
1203*0e209d39SAndroid Build Coastguard Worker     /**
1204*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of consumption: mile-per-gallon-imperial.
1205*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1206*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMilePerGallonImperial()}.
1207*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1208*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 57
1209*0e209d39SAndroid Build Coastguard Worker      */
1210*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMilePerGallonImperial(UErrorCode &status);
1211*0e209d39SAndroid Build Coastguard Worker 
1212*0e209d39SAndroid Build Coastguard Worker     /**
1213*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of consumption: mile-per-gallon-imperial.
1214*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMilePerGallonImperial()}.
1215*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1216*0e209d39SAndroid Build Coastguard Worker      */
1217*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMilePerGallonImperial();
1218*0e209d39SAndroid Build Coastguard Worker 
1219*0e209d39SAndroid Build Coastguard Worker     /**
1220*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of digital: bit.
1221*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1222*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getBit()}.
1223*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1224*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1225*0e209d39SAndroid Build Coastguard Worker      */
1226*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createBit(UErrorCode &status);
1227*0e209d39SAndroid Build Coastguard Worker 
1228*0e209d39SAndroid Build Coastguard Worker     /**
1229*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of digital: bit.
1230*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createBit()}.
1231*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1232*0e209d39SAndroid Build Coastguard Worker      */
1233*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getBit();
1234*0e209d39SAndroid Build Coastguard Worker 
1235*0e209d39SAndroid Build Coastguard Worker     /**
1236*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of digital: byte.
1237*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1238*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getByte()}.
1239*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1240*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1241*0e209d39SAndroid Build Coastguard Worker      */
1242*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createByte(UErrorCode &status);
1243*0e209d39SAndroid Build Coastguard Worker 
1244*0e209d39SAndroid Build Coastguard Worker     /**
1245*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of digital: byte.
1246*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createByte()}.
1247*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1248*0e209d39SAndroid Build Coastguard Worker      */
1249*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getByte();
1250*0e209d39SAndroid Build Coastguard Worker 
1251*0e209d39SAndroid Build Coastguard Worker     /**
1252*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of digital: gigabit.
1253*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1254*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getGigabit()}.
1255*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1256*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1257*0e209d39SAndroid Build Coastguard Worker      */
1258*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createGigabit(UErrorCode &status);
1259*0e209d39SAndroid Build Coastguard Worker 
1260*0e209d39SAndroid Build Coastguard Worker     /**
1261*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of digital: gigabit.
1262*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createGigabit()}.
1263*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1264*0e209d39SAndroid Build Coastguard Worker      */
1265*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getGigabit();
1266*0e209d39SAndroid Build Coastguard Worker 
1267*0e209d39SAndroid Build Coastguard Worker     /**
1268*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of digital: gigabyte.
1269*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1270*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getGigabyte()}.
1271*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1272*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1273*0e209d39SAndroid Build Coastguard Worker      */
1274*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createGigabyte(UErrorCode &status);
1275*0e209d39SAndroid Build Coastguard Worker 
1276*0e209d39SAndroid Build Coastguard Worker     /**
1277*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of digital: gigabyte.
1278*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createGigabyte()}.
1279*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1280*0e209d39SAndroid Build Coastguard Worker      */
1281*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getGigabyte();
1282*0e209d39SAndroid Build Coastguard Worker 
1283*0e209d39SAndroid Build Coastguard Worker     /**
1284*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of digital: kilobit.
1285*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1286*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getKilobit()}.
1287*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1288*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1289*0e209d39SAndroid Build Coastguard Worker      */
1290*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createKilobit(UErrorCode &status);
1291*0e209d39SAndroid Build Coastguard Worker 
1292*0e209d39SAndroid Build Coastguard Worker     /**
1293*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of digital: kilobit.
1294*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createKilobit()}.
1295*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1296*0e209d39SAndroid Build Coastguard Worker      */
1297*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getKilobit();
1298*0e209d39SAndroid Build Coastguard Worker 
1299*0e209d39SAndroid Build Coastguard Worker     /**
1300*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of digital: kilobyte.
1301*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1302*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getKilobyte()}.
1303*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1304*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1305*0e209d39SAndroid Build Coastguard Worker      */
1306*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createKilobyte(UErrorCode &status);
1307*0e209d39SAndroid Build Coastguard Worker 
1308*0e209d39SAndroid Build Coastguard Worker     /**
1309*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of digital: kilobyte.
1310*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createKilobyte()}.
1311*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1312*0e209d39SAndroid Build Coastguard Worker      */
1313*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getKilobyte();
1314*0e209d39SAndroid Build Coastguard Worker 
1315*0e209d39SAndroid Build Coastguard Worker     /**
1316*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of digital: megabit.
1317*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1318*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMegabit()}.
1319*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1320*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1321*0e209d39SAndroid Build Coastguard Worker      */
1322*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMegabit(UErrorCode &status);
1323*0e209d39SAndroid Build Coastguard Worker 
1324*0e209d39SAndroid Build Coastguard Worker     /**
1325*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of digital: megabit.
1326*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMegabit()}.
1327*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1328*0e209d39SAndroid Build Coastguard Worker      */
1329*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMegabit();
1330*0e209d39SAndroid Build Coastguard Worker 
1331*0e209d39SAndroid Build Coastguard Worker     /**
1332*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of digital: megabyte.
1333*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1334*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMegabyte()}.
1335*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1336*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1337*0e209d39SAndroid Build Coastguard Worker      */
1338*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMegabyte(UErrorCode &status);
1339*0e209d39SAndroid Build Coastguard Worker 
1340*0e209d39SAndroid Build Coastguard Worker     /**
1341*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of digital: megabyte.
1342*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMegabyte()}.
1343*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1344*0e209d39SAndroid Build Coastguard Worker      */
1345*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMegabyte();
1346*0e209d39SAndroid Build Coastguard Worker 
1347*0e209d39SAndroid Build Coastguard Worker     /**
1348*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of digital: petabyte.
1349*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1350*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getPetabyte()}.
1351*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1352*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 63
1353*0e209d39SAndroid Build Coastguard Worker      */
1354*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createPetabyte(UErrorCode &status);
1355*0e209d39SAndroid Build Coastguard Worker 
1356*0e209d39SAndroid Build Coastguard Worker     /**
1357*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of digital: petabyte.
1358*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createPetabyte()}.
1359*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1360*0e209d39SAndroid Build Coastguard Worker      */
1361*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getPetabyte();
1362*0e209d39SAndroid Build Coastguard Worker 
1363*0e209d39SAndroid Build Coastguard Worker     /**
1364*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of digital: terabit.
1365*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1366*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getTerabit()}.
1367*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1368*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1369*0e209d39SAndroid Build Coastguard Worker      */
1370*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createTerabit(UErrorCode &status);
1371*0e209d39SAndroid Build Coastguard Worker 
1372*0e209d39SAndroid Build Coastguard Worker     /**
1373*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of digital: terabit.
1374*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createTerabit()}.
1375*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1376*0e209d39SAndroid Build Coastguard Worker      */
1377*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getTerabit();
1378*0e209d39SAndroid Build Coastguard Worker 
1379*0e209d39SAndroid Build Coastguard Worker     /**
1380*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of digital: terabyte.
1381*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1382*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getTerabyte()}.
1383*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1384*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1385*0e209d39SAndroid Build Coastguard Worker      */
1386*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createTerabyte(UErrorCode &status);
1387*0e209d39SAndroid Build Coastguard Worker 
1388*0e209d39SAndroid Build Coastguard Worker     /**
1389*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of digital: terabyte.
1390*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createTerabyte()}.
1391*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1392*0e209d39SAndroid Build Coastguard Worker      */
1393*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getTerabyte();
1394*0e209d39SAndroid Build Coastguard Worker 
1395*0e209d39SAndroid Build Coastguard Worker     /**
1396*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of duration: century.
1397*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1398*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getCentury()}.
1399*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1400*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 56
1401*0e209d39SAndroid Build Coastguard Worker      */
1402*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createCentury(UErrorCode &status);
1403*0e209d39SAndroid Build Coastguard Worker 
1404*0e209d39SAndroid Build Coastguard Worker     /**
1405*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of duration: century.
1406*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createCentury()}.
1407*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1408*0e209d39SAndroid Build Coastguard Worker      */
1409*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getCentury();
1410*0e209d39SAndroid Build Coastguard Worker 
1411*0e209d39SAndroid Build Coastguard Worker     /**
1412*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of duration: day.
1413*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1414*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getDay()}.
1415*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1416*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
1417*0e209d39SAndroid Build Coastguard Worker      */
1418*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createDay(UErrorCode &status);
1419*0e209d39SAndroid Build Coastguard Worker 
1420*0e209d39SAndroid Build Coastguard Worker     /**
1421*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of duration: day.
1422*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createDay()}.
1423*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1424*0e209d39SAndroid Build Coastguard Worker      */
1425*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getDay();
1426*0e209d39SAndroid Build Coastguard Worker 
1427*0e209d39SAndroid Build Coastguard Worker     /**
1428*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of duration: day-person.
1429*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1430*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getDayPerson()}.
1431*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1432*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1433*0e209d39SAndroid Build Coastguard Worker      */
1434*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createDayPerson(UErrorCode &status);
1435*0e209d39SAndroid Build Coastguard Worker 
1436*0e209d39SAndroid Build Coastguard Worker     /**
1437*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of duration: day-person.
1438*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createDayPerson()}.
1439*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1440*0e209d39SAndroid Build Coastguard Worker      */
1441*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getDayPerson();
1442*0e209d39SAndroid Build Coastguard Worker 
1443*0e209d39SAndroid Build Coastguard Worker     /**
1444*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of duration: decade.
1445*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1446*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getDecade()}.
1447*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1448*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 65
1449*0e209d39SAndroid Build Coastguard Worker      */
1450*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createDecade(UErrorCode &status);
1451*0e209d39SAndroid Build Coastguard Worker 
1452*0e209d39SAndroid Build Coastguard Worker     /**
1453*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of duration: decade.
1454*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createDecade()}.
1455*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 65
1456*0e209d39SAndroid Build Coastguard Worker      */
1457*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getDecade();
1458*0e209d39SAndroid Build Coastguard Worker 
1459*0e209d39SAndroid Build Coastguard Worker     /**
1460*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of duration: hour.
1461*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1462*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getHour()}.
1463*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1464*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
1465*0e209d39SAndroid Build Coastguard Worker      */
1466*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createHour(UErrorCode &status);
1467*0e209d39SAndroid Build Coastguard Worker 
1468*0e209d39SAndroid Build Coastguard Worker     /**
1469*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of duration: hour.
1470*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createHour()}.
1471*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1472*0e209d39SAndroid Build Coastguard Worker      */
1473*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getHour();
1474*0e209d39SAndroid Build Coastguard Worker 
1475*0e209d39SAndroid Build Coastguard Worker     /**
1476*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of duration: microsecond.
1477*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1478*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMicrosecond()}.
1479*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1480*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1481*0e209d39SAndroid Build Coastguard Worker      */
1482*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMicrosecond(UErrorCode &status);
1483*0e209d39SAndroid Build Coastguard Worker 
1484*0e209d39SAndroid Build Coastguard Worker     /**
1485*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of duration: microsecond.
1486*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMicrosecond()}.
1487*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1488*0e209d39SAndroid Build Coastguard Worker      */
1489*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMicrosecond();
1490*0e209d39SAndroid Build Coastguard Worker 
1491*0e209d39SAndroid Build Coastguard Worker     /**
1492*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of duration: millisecond.
1493*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1494*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMillisecond()}.
1495*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1496*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
1497*0e209d39SAndroid Build Coastguard Worker      */
1498*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMillisecond(UErrorCode &status);
1499*0e209d39SAndroid Build Coastguard Worker 
1500*0e209d39SAndroid Build Coastguard Worker     /**
1501*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of duration: millisecond.
1502*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMillisecond()}.
1503*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1504*0e209d39SAndroid Build Coastguard Worker      */
1505*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMillisecond();
1506*0e209d39SAndroid Build Coastguard Worker 
1507*0e209d39SAndroid Build Coastguard Worker     /**
1508*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of duration: minute.
1509*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1510*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMinute()}.
1511*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1512*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
1513*0e209d39SAndroid Build Coastguard Worker      */
1514*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMinute(UErrorCode &status);
1515*0e209d39SAndroid Build Coastguard Worker 
1516*0e209d39SAndroid Build Coastguard Worker     /**
1517*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of duration: minute.
1518*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMinute()}.
1519*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1520*0e209d39SAndroid Build Coastguard Worker      */
1521*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMinute();
1522*0e209d39SAndroid Build Coastguard Worker 
1523*0e209d39SAndroid Build Coastguard Worker     /**
1524*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of duration: month.
1525*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1526*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMonth()}.
1527*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1528*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
1529*0e209d39SAndroid Build Coastguard Worker      */
1530*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMonth(UErrorCode &status);
1531*0e209d39SAndroid Build Coastguard Worker 
1532*0e209d39SAndroid Build Coastguard Worker     /**
1533*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of duration: month.
1534*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMonth()}.
1535*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1536*0e209d39SAndroid Build Coastguard Worker      */
1537*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMonth();
1538*0e209d39SAndroid Build Coastguard Worker 
1539*0e209d39SAndroid Build Coastguard Worker     /**
1540*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of duration: month-person.
1541*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1542*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMonthPerson()}.
1543*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1544*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1545*0e209d39SAndroid Build Coastguard Worker      */
1546*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMonthPerson(UErrorCode &status);
1547*0e209d39SAndroid Build Coastguard Worker 
1548*0e209d39SAndroid Build Coastguard Worker     /**
1549*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of duration: month-person.
1550*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMonthPerson()}.
1551*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1552*0e209d39SAndroid Build Coastguard Worker      */
1553*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMonthPerson();
1554*0e209d39SAndroid Build Coastguard Worker 
1555*0e209d39SAndroid Build Coastguard Worker     /**
1556*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of duration: nanosecond.
1557*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1558*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getNanosecond()}.
1559*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1560*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1561*0e209d39SAndroid Build Coastguard Worker      */
1562*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createNanosecond(UErrorCode &status);
1563*0e209d39SAndroid Build Coastguard Worker 
1564*0e209d39SAndroid Build Coastguard Worker     /**
1565*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of duration: nanosecond.
1566*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createNanosecond()}.
1567*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1568*0e209d39SAndroid Build Coastguard Worker      */
1569*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getNanosecond();
1570*0e209d39SAndroid Build Coastguard Worker 
1571*0e209d39SAndroid Build Coastguard Worker     /**
1572*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of duration: quarter.
1573*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1574*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getQuarter()}.
1575*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1576*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 72
1577*0e209d39SAndroid Build Coastguard Worker      */
1578*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createQuarter(UErrorCode &status);
1579*0e209d39SAndroid Build Coastguard Worker 
1580*0e209d39SAndroid Build Coastguard Worker     /**
1581*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of duration: quarter.
1582*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createQuarter()}.
1583*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 72
1584*0e209d39SAndroid Build Coastguard Worker      */
1585*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getQuarter();
1586*0e209d39SAndroid Build Coastguard Worker 
1587*0e209d39SAndroid Build Coastguard Worker     /**
1588*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of duration: second.
1589*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1590*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getSecond()}.
1591*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1592*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
1593*0e209d39SAndroid Build Coastguard Worker      */
1594*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createSecond(UErrorCode &status);
1595*0e209d39SAndroid Build Coastguard Worker 
1596*0e209d39SAndroid Build Coastguard Worker     /**
1597*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of duration: second.
1598*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createSecond()}.
1599*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1600*0e209d39SAndroid Build Coastguard Worker      */
1601*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getSecond();
1602*0e209d39SAndroid Build Coastguard Worker 
1603*0e209d39SAndroid Build Coastguard Worker     /**
1604*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of duration: week.
1605*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1606*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getWeek()}.
1607*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1608*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
1609*0e209d39SAndroid Build Coastguard Worker      */
1610*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createWeek(UErrorCode &status);
1611*0e209d39SAndroid Build Coastguard Worker 
1612*0e209d39SAndroid Build Coastguard Worker     /**
1613*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of duration: week.
1614*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createWeek()}.
1615*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1616*0e209d39SAndroid Build Coastguard Worker      */
1617*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getWeek();
1618*0e209d39SAndroid Build Coastguard Worker 
1619*0e209d39SAndroid Build Coastguard Worker     /**
1620*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of duration: week-person.
1621*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1622*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getWeekPerson()}.
1623*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1624*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1625*0e209d39SAndroid Build Coastguard Worker      */
1626*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createWeekPerson(UErrorCode &status);
1627*0e209d39SAndroid Build Coastguard Worker 
1628*0e209d39SAndroid Build Coastguard Worker     /**
1629*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of duration: week-person.
1630*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createWeekPerson()}.
1631*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1632*0e209d39SAndroid Build Coastguard Worker      */
1633*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getWeekPerson();
1634*0e209d39SAndroid Build Coastguard Worker 
1635*0e209d39SAndroid Build Coastguard Worker     /**
1636*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of duration: year.
1637*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1638*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getYear()}.
1639*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1640*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
1641*0e209d39SAndroid Build Coastguard Worker      */
1642*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createYear(UErrorCode &status);
1643*0e209d39SAndroid Build Coastguard Worker 
1644*0e209d39SAndroid Build Coastguard Worker     /**
1645*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of duration: year.
1646*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createYear()}.
1647*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1648*0e209d39SAndroid Build Coastguard Worker      */
1649*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getYear();
1650*0e209d39SAndroid Build Coastguard Worker 
1651*0e209d39SAndroid Build Coastguard Worker     /**
1652*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of duration: year-person.
1653*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1654*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getYearPerson()}.
1655*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1656*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1657*0e209d39SAndroid Build Coastguard Worker      */
1658*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createYearPerson(UErrorCode &status);
1659*0e209d39SAndroid Build Coastguard Worker 
1660*0e209d39SAndroid Build Coastguard Worker     /**
1661*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of duration: year-person.
1662*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createYearPerson()}.
1663*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1664*0e209d39SAndroid Build Coastguard Worker      */
1665*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getYearPerson();
1666*0e209d39SAndroid Build Coastguard Worker 
1667*0e209d39SAndroid Build Coastguard Worker     /**
1668*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of electric: ampere.
1669*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1670*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getAmpere()}.
1671*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1672*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1673*0e209d39SAndroid Build Coastguard Worker      */
1674*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createAmpere(UErrorCode &status);
1675*0e209d39SAndroid Build Coastguard Worker 
1676*0e209d39SAndroid Build Coastguard Worker     /**
1677*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of electric: ampere.
1678*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createAmpere()}.
1679*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1680*0e209d39SAndroid Build Coastguard Worker      */
1681*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getAmpere();
1682*0e209d39SAndroid Build Coastguard Worker 
1683*0e209d39SAndroid Build Coastguard Worker     /**
1684*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of electric: milliampere.
1685*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1686*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMilliampere()}.
1687*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1688*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1689*0e209d39SAndroid Build Coastguard Worker      */
1690*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMilliampere(UErrorCode &status);
1691*0e209d39SAndroid Build Coastguard Worker 
1692*0e209d39SAndroid Build Coastguard Worker     /**
1693*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of electric: milliampere.
1694*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMilliampere()}.
1695*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1696*0e209d39SAndroid Build Coastguard Worker      */
1697*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMilliampere();
1698*0e209d39SAndroid Build Coastguard Worker 
1699*0e209d39SAndroid Build Coastguard Worker     /**
1700*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of electric: ohm.
1701*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1702*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getOhm()}.
1703*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1704*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1705*0e209d39SAndroid Build Coastguard Worker      */
1706*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createOhm(UErrorCode &status);
1707*0e209d39SAndroid Build Coastguard Worker 
1708*0e209d39SAndroid Build Coastguard Worker     /**
1709*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of electric: ohm.
1710*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createOhm()}.
1711*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1712*0e209d39SAndroid Build Coastguard Worker      */
1713*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getOhm();
1714*0e209d39SAndroid Build Coastguard Worker 
1715*0e209d39SAndroid Build Coastguard Worker     /**
1716*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of electric: volt.
1717*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1718*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getVolt()}.
1719*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1720*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1721*0e209d39SAndroid Build Coastguard Worker      */
1722*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createVolt(UErrorCode &status);
1723*0e209d39SAndroid Build Coastguard Worker 
1724*0e209d39SAndroid Build Coastguard Worker     /**
1725*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of electric: volt.
1726*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createVolt()}.
1727*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1728*0e209d39SAndroid Build Coastguard Worker      */
1729*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getVolt();
1730*0e209d39SAndroid Build Coastguard Worker 
1731*0e209d39SAndroid Build Coastguard Worker     /**
1732*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of energy: british-thermal-unit.
1733*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1734*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getBritishThermalUnit()}.
1735*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1736*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1737*0e209d39SAndroid Build Coastguard Worker      */
1738*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createBritishThermalUnit(UErrorCode &status);
1739*0e209d39SAndroid Build Coastguard Worker 
1740*0e209d39SAndroid Build Coastguard Worker     /**
1741*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of energy: british-thermal-unit.
1742*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createBritishThermalUnit()}.
1743*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1744*0e209d39SAndroid Build Coastguard Worker      */
1745*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getBritishThermalUnit();
1746*0e209d39SAndroid Build Coastguard Worker 
1747*0e209d39SAndroid Build Coastguard Worker     /**
1748*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of energy: calorie.
1749*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1750*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getCalorie()}.
1751*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1752*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1753*0e209d39SAndroid Build Coastguard Worker      */
1754*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createCalorie(UErrorCode &status);
1755*0e209d39SAndroid Build Coastguard Worker 
1756*0e209d39SAndroid Build Coastguard Worker     /**
1757*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of energy: calorie.
1758*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createCalorie()}.
1759*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1760*0e209d39SAndroid Build Coastguard Worker      */
1761*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getCalorie();
1762*0e209d39SAndroid Build Coastguard Worker 
1763*0e209d39SAndroid Build Coastguard Worker     /**
1764*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of energy: electronvolt.
1765*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1766*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getElectronvolt()}.
1767*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1768*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1769*0e209d39SAndroid Build Coastguard Worker      */
1770*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createElectronvolt(UErrorCode &status);
1771*0e209d39SAndroid Build Coastguard Worker 
1772*0e209d39SAndroid Build Coastguard Worker     /**
1773*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of energy: electronvolt.
1774*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createElectronvolt()}.
1775*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1776*0e209d39SAndroid Build Coastguard Worker      */
1777*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getElectronvolt();
1778*0e209d39SAndroid Build Coastguard Worker 
1779*0e209d39SAndroid Build Coastguard Worker     /**
1780*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of energy: foodcalorie.
1781*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1782*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getFoodcalorie()}.
1783*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1784*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1785*0e209d39SAndroid Build Coastguard Worker      */
1786*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createFoodcalorie(UErrorCode &status);
1787*0e209d39SAndroid Build Coastguard Worker 
1788*0e209d39SAndroid Build Coastguard Worker     /**
1789*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of energy: foodcalorie.
1790*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createFoodcalorie()}.
1791*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1792*0e209d39SAndroid Build Coastguard Worker      */
1793*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getFoodcalorie();
1794*0e209d39SAndroid Build Coastguard Worker 
1795*0e209d39SAndroid Build Coastguard Worker     /**
1796*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of energy: joule.
1797*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1798*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getJoule()}.
1799*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1800*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1801*0e209d39SAndroid Build Coastguard Worker      */
1802*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createJoule(UErrorCode &status);
1803*0e209d39SAndroid Build Coastguard Worker 
1804*0e209d39SAndroid Build Coastguard Worker     /**
1805*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of energy: joule.
1806*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createJoule()}.
1807*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1808*0e209d39SAndroid Build Coastguard Worker      */
1809*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getJoule();
1810*0e209d39SAndroid Build Coastguard Worker 
1811*0e209d39SAndroid Build Coastguard Worker     /**
1812*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of energy: kilocalorie.
1813*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1814*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getKilocalorie()}.
1815*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1816*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1817*0e209d39SAndroid Build Coastguard Worker      */
1818*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createKilocalorie(UErrorCode &status);
1819*0e209d39SAndroid Build Coastguard Worker 
1820*0e209d39SAndroid Build Coastguard Worker     /**
1821*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of energy: kilocalorie.
1822*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createKilocalorie()}.
1823*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1824*0e209d39SAndroid Build Coastguard Worker      */
1825*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getKilocalorie();
1826*0e209d39SAndroid Build Coastguard Worker 
1827*0e209d39SAndroid Build Coastguard Worker     /**
1828*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of energy: kilojoule.
1829*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1830*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getKilojoule()}.
1831*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1832*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1833*0e209d39SAndroid Build Coastguard Worker      */
1834*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createKilojoule(UErrorCode &status);
1835*0e209d39SAndroid Build Coastguard Worker 
1836*0e209d39SAndroid Build Coastguard Worker     /**
1837*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of energy: kilojoule.
1838*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createKilojoule()}.
1839*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1840*0e209d39SAndroid Build Coastguard Worker      */
1841*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getKilojoule();
1842*0e209d39SAndroid Build Coastguard Worker 
1843*0e209d39SAndroid Build Coastguard Worker     /**
1844*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of energy: kilowatt-hour.
1845*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1846*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getKilowattHour()}.
1847*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1848*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1849*0e209d39SAndroid Build Coastguard Worker      */
1850*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createKilowattHour(UErrorCode &status);
1851*0e209d39SAndroid Build Coastguard Worker 
1852*0e209d39SAndroid Build Coastguard Worker     /**
1853*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of energy: kilowatt-hour.
1854*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createKilowattHour()}.
1855*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1856*0e209d39SAndroid Build Coastguard Worker      */
1857*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getKilowattHour();
1858*0e209d39SAndroid Build Coastguard Worker 
1859*0e209d39SAndroid Build Coastguard Worker     /**
1860*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of energy: therm-us.
1861*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1862*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getThermUs()}.
1863*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1864*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 65
1865*0e209d39SAndroid Build Coastguard Worker      */
1866*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createThermUs(UErrorCode &status);
1867*0e209d39SAndroid Build Coastguard Worker 
1868*0e209d39SAndroid Build Coastguard Worker     /**
1869*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of energy: therm-us.
1870*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createThermUs()}.
1871*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 65
1872*0e209d39SAndroid Build Coastguard Worker      */
1873*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getThermUs();
1874*0e209d39SAndroid Build Coastguard Worker 
1875*0e209d39SAndroid Build Coastguard Worker     /**
1876*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of force: kilowatt-hour-per-100-kilometer.
1877*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1878*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getKilowattHourPer100Kilometer()}.
1879*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1880*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 70
1881*0e209d39SAndroid Build Coastguard Worker      */
1882*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createKilowattHourPer100Kilometer(UErrorCode &status);
1883*0e209d39SAndroid Build Coastguard Worker 
1884*0e209d39SAndroid Build Coastguard Worker     /**
1885*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of force: kilowatt-hour-per-100-kilometer.
1886*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createKilowattHourPer100Kilometer()}.
1887*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 70
1888*0e209d39SAndroid Build Coastguard Worker      */
1889*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getKilowattHourPer100Kilometer();
1890*0e209d39SAndroid Build Coastguard Worker 
1891*0e209d39SAndroid Build Coastguard Worker     /**
1892*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of force: newton.
1893*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1894*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getNewton()}.
1895*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1896*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1897*0e209d39SAndroid Build Coastguard Worker      */
1898*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createNewton(UErrorCode &status);
1899*0e209d39SAndroid Build Coastguard Worker 
1900*0e209d39SAndroid Build Coastguard Worker     /**
1901*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of force: newton.
1902*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createNewton()}.
1903*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1904*0e209d39SAndroid Build Coastguard Worker      */
1905*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getNewton();
1906*0e209d39SAndroid Build Coastguard Worker 
1907*0e209d39SAndroid Build Coastguard Worker     /**
1908*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of force: pound-force.
1909*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1910*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getPoundForce()}.
1911*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1912*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1913*0e209d39SAndroid Build Coastguard Worker      */
1914*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createPoundForce(UErrorCode &status);
1915*0e209d39SAndroid Build Coastguard Worker 
1916*0e209d39SAndroid Build Coastguard Worker     /**
1917*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of force: pound-force.
1918*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createPoundForce()}.
1919*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1920*0e209d39SAndroid Build Coastguard Worker      */
1921*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getPoundForce();
1922*0e209d39SAndroid Build Coastguard Worker 
1923*0e209d39SAndroid Build Coastguard Worker     /**
1924*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of frequency: gigahertz.
1925*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1926*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getGigahertz()}.
1927*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1928*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1929*0e209d39SAndroid Build Coastguard Worker      */
1930*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createGigahertz(UErrorCode &status);
1931*0e209d39SAndroid Build Coastguard Worker 
1932*0e209d39SAndroid Build Coastguard Worker     /**
1933*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of frequency: gigahertz.
1934*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createGigahertz()}.
1935*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1936*0e209d39SAndroid Build Coastguard Worker      */
1937*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getGigahertz();
1938*0e209d39SAndroid Build Coastguard Worker 
1939*0e209d39SAndroid Build Coastguard Worker     /**
1940*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of frequency: hertz.
1941*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1942*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getHertz()}.
1943*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1944*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1945*0e209d39SAndroid Build Coastguard Worker      */
1946*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createHertz(UErrorCode &status);
1947*0e209d39SAndroid Build Coastguard Worker 
1948*0e209d39SAndroid Build Coastguard Worker     /**
1949*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of frequency: hertz.
1950*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createHertz()}.
1951*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1952*0e209d39SAndroid Build Coastguard Worker      */
1953*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getHertz();
1954*0e209d39SAndroid Build Coastguard Worker 
1955*0e209d39SAndroid Build Coastguard Worker     /**
1956*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of frequency: kilohertz.
1957*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1958*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getKilohertz()}.
1959*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1960*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1961*0e209d39SAndroid Build Coastguard Worker      */
1962*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createKilohertz(UErrorCode &status);
1963*0e209d39SAndroid Build Coastguard Worker 
1964*0e209d39SAndroid Build Coastguard Worker     /**
1965*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of frequency: kilohertz.
1966*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createKilohertz()}.
1967*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1968*0e209d39SAndroid Build Coastguard Worker      */
1969*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getKilohertz();
1970*0e209d39SAndroid Build Coastguard Worker 
1971*0e209d39SAndroid Build Coastguard Worker     /**
1972*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of frequency: megahertz.
1973*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1974*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMegahertz()}.
1975*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1976*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
1977*0e209d39SAndroid Build Coastguard Worker      */
1978*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMegahertz(UErrorCode &status);
1979*0e209d39SAndroid Build Coastguard Worker 
1980*0e209d39SAndroid Build Coastguard Worker     /**
1981*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of frequency: megahertz.
1982*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMegahertz()}.
1983*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
1984*0e209d39SAndroid Build Coastguard Worker      */
1985*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMegahertz();
1986*0e209d39SAndroid Build Coastguard Worker 
1987*0e209d39SAndroid Build Coastguard Worker     /**
1988*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of graphics: dot.
1989*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
1990*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getDot()}.
1991*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
1992*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 68
1993*0e209d39SAndroid Build Coastguard Worker      */
1994*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createDot(UErrorCode &status);
1995*0e209d39SAndroid Build Coastguard Worker 
1996*0e209d39SAndroid Build Coastguard Worker     /**
1997*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of graphics: dot.
1998*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createDot()}.
1999*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 68
2000*0e209d39SAndroid Build Coastguard Worker      */
2001*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getDot();
2002*0e209d39SAndroid Build Coastguard Worker 
2003*0e209d39SAndroid Build Coastguard Worker     /**
2004*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of graphics: dot-per-centimeter.
2005*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2006*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getDotPerCentimeter()}.
2007*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2008*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 65
2009*0e209d39SAndroid Build Coastguard Worker      */
2010*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createDotPerCentimeter(UErrorCode &status);
2011*0e209d39SAndroid Build Coastguard Worker 
2012*0e209d39SAndroid Build Coastguard Worker     /**
2013*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of graphics: dot-per-centimeter.
2014*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createDotPerCentimeter()}.
2015*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 65
2016*0e209d39SAndroid Build Coastguard Worker      */
2017*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getDotPerCentimeter();
2018*0e209d39SAndroid Build Coastguard Worker 
2019*0e209d39SAndroid Build Coastguard Worker     /**
2020*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of graphics: dot-per-inch.
2021*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2022*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getDotPerInch()}.
2023*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2024*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 65
2025*0e209d39SAndroid Build Coastguard Worker      */
2026*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createDotPerInch(UErrorCode &status);
2027*0e209d39SAndroid Build Coastguard Worker 
2028*0e209d39SAndroid Build Coastguard Worker     /**
2029*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of graphics: dot-per-inch.
2030*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createDotPerInch()}.
2031*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 65
2032*0e209d39SAndroid Build Coastguard Worker      */
2033*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getDotPerInch();
2034*0e209d39SAndroid Build Coastguard Worker 
2035*0e209d39SAndroid Build Coastguard Worker     /**
2036*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of graphics: em.
2037*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2038*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getEm()}.
2039*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2040*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 65
2041*0e209d39SAndroid Build Coastguard Worker      */
2042*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createEm(UErrorCode &status);
2043*0e209d39SAndroid Build Coastguard Worker 
2044*0e209d39SAndroid Build Coastguard Worker     /**
2045*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of graphics: em.
2046*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createEm()}.
2047*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 65
2048*0e209d39SAndroid Build Coastguard Worker      */
2049*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getEm();
2050*0e209d39SAndroid Build Coastguard Worker 
2051*0e209d39SAndroid Build Coastguard Worker     /**
2052*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of graphics: megapixel.
2053*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2054*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMegapixel()}.
2055*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2056*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 65
2057*0e209d39SAndroid Build Coastguard Worker      */
2058*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMegapixel(UErrorCode &status);
2059*0e209d39SAndroid Build Coastguard Worker 
2060*0e209d39SAndroid Build Coastguard Worker     /**
2061*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of graphics: megapixel.
2062*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMegapixel()}.
2063*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 65
2064*0e209d39SAndroid Build Coastguard Worker      */
2065*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMegapixel();
2066*0e209d39SAndroid Build Coastguard Worker 
2067*0e209d39SAndroid Build Coastguard Worker     /**
2068*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of graphics: pixel.
2069*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2070*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getPixel()}.
2071*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2072*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 65
2073*0e209d39SAndroid Build Coastguard Worker      */
2074*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createPixel(UErrorCode &status);
2075*0e209d39SAndroid Build Coastguard Worker 
2076*0e209d39SAndroid Build Coastguard Worker     /**
2077*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of graphics: pixel.
2078*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createPixel()}.
2079*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 65
2080*0e209d39SAndroid Build Coastguard Worker      */
2081*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getPixel();
2082*0e209d39SAndroid Build Coastguard Worker 
2083*0e209d39SAndroid Build Coastguard Worker     /**
2084*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of graphics: pixel-per-centimeter.
2085*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2086*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getPixelPerCentimeter()}.
2087*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2088*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 65
2089*0e209d39SAndroid Build Coastguard Worker      */
2090*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createPixelPerCentimeter(UErrorCode &status);
2091*0e209d39SAndroid Build Coastguard Worker 
2092*0e209d39SAndroid Build Coastguard Worker     /**
2093*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of graphics: pixel-per-centimeter.
2094*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createPixelPerCentimeter()}.
2095*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 65
2096*0e209d39SAndroid Build Coastguard Worker      */
2097*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getPixelPerCentimeter();
2098*0e209d39SAndroid Build Coastguard Worker 
2099*0e209d39SAndroid Build Coastguard Worker     /**
2100*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of graphics: pixel-per-inch.
2101*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2102*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getPixelPerInch()}.
2103*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2104*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 65
2105*0e209d39SAndroid Build Coastguard Worker      */
2106*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createPixelPerInch(UErrorCode &status);
2107*0e209d39SAndroid Build Coastguard Worker 
2108*0e209d39SAndroid Build Coastguard Worker     /**
2109*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of graphics: pixel-per-inch.
2110*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createPixelPerInch()}.
2111*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 65
2112*0e209d39SAndroid Build Coastguard Worker      */
2113*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getPixelPerInch();
2114*0e209d39SAndroid Build Coastguard Worker 
2115*0e209d39SAndroid Build Coastguard Worker     /**
2116*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of length: astronomical-unit.
2117*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2118*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getAstronomicalUnit()}.
2119*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2120*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
2121*0e209d39SAndroid Build Coastguard Worker      */
2122*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createAstronomicalUnit(UErrorCode &status);
2123*0e209d39SAndroid Build Coastguard Worker 
2124*0e209d39SAndroid Build Coastguard Worker     /**
2125*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of length: astronomical-unit.
2126*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createAstronomicalUnit()}.
2127*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2128*0e209d39SAndroid Build Coastguard Worker      */
2129*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getAstronomicalUnit();
2130*0e209d39SAndroid Build Coastguard Worker 
2131*0e209d39SAndroid Build Coastguard Worker     /**
2132*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of length: centimeter.
2133*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2134*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getCentimeter()}.
2135*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2136*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
2137*0e209d39SAndroid Build Coastguard Worker      */
2138*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createCentimeter(UErrorCode &status);
2139*0e209d39SAndroid Build Coastguard Worker 
2140*0e209d39SAndroid Build Coastguard Worker     /**
2141*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of length: centimeter.
2142*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createCentimeter()}.
2143*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2144*0e209d39SAndroid Build Coastguard Worker      */
2145*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getCentimeter();
2146*0e209d39SAndroid Build Coastguard Worker 
2147*0e209d39SAndroid Build Coastguard Worker     /**
2148*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of length: decimeter.
2149*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2150*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getDecimeter()}.
2151*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2152*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
2153*0e209d39SAndroid Build Coastguard Worker      */
2154*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createDecimeter(UErrorCode &status);
2155*0e209d39SAndroid Build Coastguard Worker 
2156*0e209d39SAndroid Build Coastguard Worker     /**
2157*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of length: decimeter.
2158*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createDecimeter()}.
2159*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2160*0e209d39SAndroid Build Coastguard Worker      */
2161*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getDecimeter();
2162*0e209d39SAndroid Build Coastguard Worker 
2163*0e209d39SAndroid Build Coastguard Worker     /**
2164*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of length: earth-radius.
2165*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2166*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getEarthRadius()}.
2167*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2168*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 68
2169*0e209d39SAndroid Build Coastguard Worker      */
2170*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createEarthRadius(UErrorCode &status);
2171*0e209d39SAndroid Build Coastguard Worker 
2172*0e209d39SAndroid Build Coastguard Worker     /**
2173*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of length: earth-radius.
2174*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createEarthRadius()}.
2175*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 68
2176*0e209d39SAndroid Build Coastguard Worker      */
2177*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getEarthRadius();
2178*0e209d39SAndroid Build Coastguard Worker 
2179*0e209d39SAndroid Build Coastguard Worker     /**
2180*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of length: fathom.
2181*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2182*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getFathom()}.
2183*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2184*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
2185*0e209d39SAndroid Build Coastguard Worker      */
2186*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createFathom(UErrorCode &status);
2187*0e209d39SAndroid Build Coastguard Worker 
2188*0e209d39SAndroid Build Coastguard Worker     /**
2189*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of length: fathom.
2190*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createFathom()}.
2191*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2192*0e209d39SAndroid Build Coastguard Worker      */
2193*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getFathom();
2194*0e209d39SAndroid Build Coastguard Worker 
2195*0e209d39SAndroid Build Coastguard Worker     /**
2196*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of length: foot.
2197*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2198*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getFoot()}.
2199*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2200*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
2201*0e209d39SAndroid Build Coastguard Worker      */
2202*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createFoot(UErrorCode &status);
2203*0e209d39SAndroid Build Coastguard Worker 
2204*0e209d39SAndroid Build Coastguard Worker     /**
2205*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of length: foot.
2206*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createFoot()}.
2207*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2208*0e209d39SAndroid Build Coastguard Worker      */
2209*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getFoot();
2210*0e209d39SAndroid Build Coastguard Worker 
2211*0e209d39SAndroid Build Coastguard Worker     /**
2212*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of length: furlong.
2213*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2214*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getFurlong()}.
2215*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2216*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
2217*0e209d39SAndroid Build Coastguard Worker      */
2218*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createFurlong(UErrorCode &status);
2219*0e209d39SAndroid Build Coastguard Worker 
2220*0e209d39SAndroid Build Coastguard Worker     /**
2221*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of length: furlong.
2222*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createFurlong()}.
2223*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2224*0e209d39SAndroid Build Coastguard Worker      */
2225*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getFurlong();
2226*0e209d39SAndroid Build Coastguard Worker 
2227*0e209d39SAndroid Build Coastguard Worker     /**
2228*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of length: inch.
2229*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2230*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getInch()}.
2231*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2232*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
2233*0e209d39SAndroid Build Coastguard Worker      */
2234*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createInch(UErrorCode &status);
2235*0e209d39SAndroid Build Coastguard Worker 
2236*0e209d39SAndroid Build Coastguard Worker     /**
2237*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of length: inch.
2238*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createInch()}.
2239*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2240*0e209d39SAndroid Build Coastguard Worker      */
2241*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getInch();
2242*0e209d39SAndroid Build Coastguard Worker 
2243*0e209d39SAndroid Build Coastguard Worker     /**
2244*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of length: kilometer.
2245*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2246*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getKilometer()}.
2247*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2248*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
2249*0e209d39SAndroid Build Coastguard Worker      */
2250*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createKilometer(UErrorCode &status);
2251*0e209d39SAndroid Build Coastguard Worker 
2252*0e209d39SAndroid Build Coastguard Worker     /**
2253*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of length: kilometer.
2254*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createKilometer()}.
2255*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2256*0e209d39SAndroid Build Coastguard Worker      */
2257*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getKilometer();
2258*0e209d39SAndroid Build Coastguard Worker 
2259*0e209d39SAndroid Build Coastguard Worker     /**
2260*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of length: light-year.
2261*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2262*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getLightYear()}.
2263*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2264*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
2265*0e209d39SAndroid Build Coastguard Worker      */
2266*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createLightYear(UErrorCode &status);
2267*0e209d39SAndroid Build Coastguard Worker 
2268*0e209d39SAndroid Build Coastguard Worker     /**
2269*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of length: light-year.
2270*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createLightYear()}.
2271*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2272*0e209d39SAndroid Build Coastguard Worker      */
2273*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getLightYear();
2274*0e209d39SAndroid Build Coastguard Worker 
2275*0e209d39SAndroid Build Coastguard Worker     /**
2276*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of length: meter.
2277*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2278*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMeter()}.
2279*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2280*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
2281*0e209d39SAndroid Build Coastguard Worker      */
2282*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMeter(UErrorCode &status);
2283*0e209d39SAndroid Build Coastguard Worker 
2284*0e209d39SAndroid Build Coastguard Worker     /**
2285*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of length: meter.
2286*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMeter()}.
2287*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2288*0e209d39SAndroid Build Coastguard Worker      */
2289*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMeter();
2290*0e209d39SAndroid Build Coastguard Worker 
2291*0e209d39SAndroid Build Coastguard Worker     /**
2292*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of length: micrometer.
2293*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2294*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMicrometer()}.
2295*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2296*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
2297*0e209d39SAndroid Build Coastguard Worker      */
2298*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMicrometer(UErrorCode &status);
2299*0e209d39SAndroid Build Coastguard Worker 
2300*0e209d39SAndroid Build Coastguard Worker     /**
2301*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of length: micrometer.
2302*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMicrometer()}.
2303*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2304*0e209d39SAndroid Build Coastguard Worker      */
2305*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMicrometer();
2306*0e209d39SAndroid Build Coastguard Worker 
2307*0e209d39SAndroid Build Coastguard Worker     /**
2308*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of length: mile.
2309*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2310*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMile()}.
2311*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2312*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
2313*0e209d39SAndroid Build Coastguard Worker      */
2314*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMile(UErrorCode &status);
2315*0e209d39SAndroid Build Coastguard Worker 
2316*0e209d39SAndroid Build Coastguard Worker     /**
2317*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of length: mile.
2318*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMile()}.
2319*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2320*0e209d39SAndroid Build Coastguard Worker      */
2321*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMile();
2322*0e209d39SAndroid Build Coastguard Worker 
2323*0e209d39SAndroid Build Coastguard Worker     /**
2324*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of length: mile-scandinavian.
2325*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2326*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMileScandinavian()}.
2327*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2328*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 56
2329*0e209d39SAndroid Build Coastguard Worker      */
2330*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMileScandinavian(UErrorCode &status);
2331*0e209d39SAndroid Build Coastguard Worker 
2332*0e209d39SAndroid Build Coastguard Worker     /**
2333*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of length: mile-scandinavian.
2334*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMileScandinavian()}.
2335*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2336*0e209d39SAndroid Build Coastguard Worker      */
2337*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMileScandinavian();
2338*0e209d39SAndroid Build Coastguard Worker 
2339*0e209d39SAndroid Build Coastguard Worker     /**
2340*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of length: millimeter.
2341*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2342*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMillimeter()}.
2343*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2344*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
2345*0e209d39SAndroid Build Coastguard Worker      */
2346*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMillimeter(UErrorCode &status);
2347*0e209d39SAndroid Build Coastguard Worker 
2348*0e209d39SAndroid Build Coastguard Worker     /**
2349*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of length: millimeter.
2350*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMillimeter()}.
2351*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2352*0e209d39SAndroid Build Coastguard Worker      */
2353*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMillimeter();
2354*0e209d39SAndroid Build Coastguard Worker 
2355*0e209d39SAndroid Build Coastguard Worker     /**
2356*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of length: nanometer.
2357*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2358*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getNanometer()}.
2359*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2360*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
2361*0e209d39SAndroid Build Coastguard Worker      */
2362*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createNanometer(UErrorCode &status);
2363*0e209d39SAndroid Build Coastguard Worker 
2364*0e209d39SAndroid Build Coastguard Worker     /**
2365*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of length: nanometer.
2366*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createNanometer()}.
2367*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2368*0e209d39SAndroid Build Coastguard Worker      */
2369*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getNanometer();
2370*0e209d39SAndroid Build Coastguard Worker 
2371*0e209d39SAndroid Build Coastguard Worker     /**
2372*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of length: nautical-mile.
2373*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2374*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getNauticalMile()}.
2375*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2376*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
2377*0e209d39SAndroid Build Coastguard Worker      */
2378*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createNauticalMile(UErrorCode &status);
2379*0e209d39SAndroid Build Coastguard Worker 
2380*0e209d39SAndroid Build Coastguard Worker     /**
2381*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of length: nautical-mile.
2382*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createNauticalMile()}.
2383*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2384*0e209d39SAndroid Build Coastguard Worker      */
2385*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getNauticalMile();
2386*0e209d39SAndroid Build Coastguard Worker 
2387*0e209d39SAndroid Build Coastguard Worker     /**
2388*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of length: parsec.
2389*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2390*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getParsec()}.
2391*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2392*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
2393*0e209d39SAndroid Build Coastguard Worker      */
2394*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createParsec(UErrorCode &status);
2395*0e209d39SAndroid Build Coastguard Worker 
2396*0e209d39SAndroid Build Coastguard Worker     /**
2397*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of length: parsec.
2398*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createParsec()}.
2399*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2400*0e209d39SAndroid Build Coastguard Worker      */
2401*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getParsec();
2402*0e209d39SAndroid Build Coastguard Worker 
2403*0e209d39SAndroid Build Coastguard Worker     /**
2404*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of length: picometer.
2405*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2406*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getPicometer()}.
2407*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2408*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
2409*0e209d39SAndroid Build Coastguard Worker      */
2410*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createPicometer(UErrorCode &status);
2411*0e209d39SAndroid Build Coastguard Worker 
2412*0e209d39SAndroid Build Coastguard Worker     /**
2413*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of length: picometer.
2414*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createPicometer()}.
2415*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2416*0e209d39SAndroid Build Coastguard Worker      */
2417*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getPicometer();
2418*0e209d39SAndroid Build Coastguard Worker 
2419*0e209d39SAndroid Build Coastguard Worker     /**
2420*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of length: point.
2421*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2422*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getPoint()}.
2423*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2424*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 59
2425*0e209d39SAndroid Build Coastguard Worker      */
2426*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createPoint(UErrorCode &status);
2427*0e209d39SAndroid Build Coastguard Worker 
2428*0e209d39SAndroid Build Coastguard Worker     /**
2429*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of length: point.
2430*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createPoint()}.
2431*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2432*0e209d39SAndroid Build Coastguard Worker      */
2433*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getPoint();
2434*0e209d39SAndroid Build Coastguard Worker 
2435*0e209d39SAndroid Build Coastguard Worker     /**
2436*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of length: solar-radius.
2437*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2438*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getSolarRadius()}.
2439*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2440*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2441*0e209d39SAndroid Build Coastguard Worker      */
2442*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createSolarRadius(UErrorCode &status);
2443*0e209d39SAndroid Build Coastguard Worker 
2444*0e209d39SAndroid Build Coastguard Worker     /**
2445*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of length: solar-radius.
2446*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createSolarRadius()}.
2447*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2448*0e209d39SAndroid Build Coastguard Worker      */
2449*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getSolarRadius();
2450*0e209d39SAndroid Build Coastguard Worker 
2451*0e209d39SAndroid Build Coastguard Worker     /**
2452*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of length: yard.
2453*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2454*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getYard()}.
2455*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2456*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
2457*0e209d39SAndroid Build Coastguard Worker      */
2458*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createYard(UErrorCode &status);
2459*0e209d39SAndroid Build Coastguard Worker 
2460*0e209d39SAndroid Build Coastguard Worker     /**
2461*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of length: yard.
2462*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createYard()}.
2463*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2464*0e209d39SAndroid Build Coastguard Worker      */
2465*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getYard();
2466*0e209d39SAndroid Build Coastguard Worker 
2467*0e209d39SAndroid Build Coastguard Worker     /**
2468*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of light: candela.
2469*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2470*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getCandela()}.
2471*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2472*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 68
2473*0e209d39SAndroid Build Coastguard Worker      */
2474*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createCandela(UErrorCode &status);
2475*0e209d39SAndroid Build Coastguard Worker 
2476*0e209d39SAndroid Build Coastguard Worker     /**
2477*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of light: candela.
2478*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createCandela()}.
2479*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 68
2480*0e209d39SAndroid Build Coastguard Worker      */
2481*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getCandela();
2482*0e209d39SAndroid Build Coastguard Worker 
2483*0e209d39SAndroid Build Coastguard Worker     /**
2484*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of light: lumen.
2485*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2486*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getLumen()}.
2487*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2488*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 68
2489*0e209d39SAndroid Build Coastguard Worker      */
2490*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createLumen(UErrorCode &status);
2491*0e209d39SAndroid Build Coastguard Worker 
2492*0e209d39SAndroid Build Coastguard Worker     /**
2493*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of light: lumen.
2494*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createLumen()}.
2495*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 68
2496*0e209d39SAndroid Build Coastguard Worker      */
2497*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getLumen();
2498*0e209d39SAndroid Build Coastguard Worker 
2499*0e209d39SAndroid Build Coastguard Worker     /**
2500*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of light: lux.
2501*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2502*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getLux()}.
2503*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2504*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
2505*0e209d39SAndroid Build Coastguard Worker      */
2506*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createLux(UErrorCode &status);
2507*0e209d39SAndroid Build Coastguard Worker 
2508*0e209d39SAndroid Build Coastguard Worker     /**
2509*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of light: lux.
2510*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createLux()}.
2511*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2512*0e209d39SAndroid Build Coastguard Worker      */
2513*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getLux();
2514*0e209d39SAndroid Build Coastguard Worker 
2515*0e209d39SAndroid Build Coastguard Worker     /**
2516*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of light: solar-luminosity.
2517*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2518*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getSolarLuminosity()}.
2519*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2520*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2521*0e209d39SAndroid Build Coastguard Worker      */
2522*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createSolarLuminosity(UErrorCode &status);
2523*0e209d39SAndroid Build Coastguard Worker 
2524*0e209d39SAndroid Build Coastguard Worker     /**
2525*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of light: solar-luminosity.
2526*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createSolarLuminosity()}.
2527*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2528*0e209d39SAndroid Build Coastguard Worker      */
2529*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getSolarLuminosity();
2530*0e209d39SAndroid Build Coastguard Worker 
2531*0e209d39SAndroid Build Coastguard Worker     /**
2532*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of mass: carat.
2533*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2534*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getCarat()}.
2535*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2536*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
2537*0e209d39SAndroid Build Coastguard Worker      */
2538*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createCarat(UErrorCode &status);
2539*0e209d39SAndroid Build Coastguard Worker 
2540*0e209d39SAndroid Build Coastguard Worker     /**
2541*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of mass: carat.
2542*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createCarat()}.
2543*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2544*0e209d39SAndroid Build Coastguard Worker      */
2545*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getCarat();
2546*0e209d39SAndroid Build Coastguard Worker 
2547*0e209d39SAndroid Build Coastguard Worker     /**
2548*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of mass: dalton.
2549*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2550*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getDalton()}.
2551*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2552*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2553*0e209d39SAndroid Build Coastguard Worker      */
2554*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createDalton(UErrorCode &status);
2555*0e209d39SAndroid Build Coastguard Worker 
2556*0e209d39SAndroid Build Coastguard Worker     /**
2557*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of mass: dalton.
2558*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createDalton()}.
2559*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2560*0e209d39SAndroid Build Coastguard Worker      */
2561*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getDalton();
2562*0e209d39SAndroid Build Coastguard Worker 
2563*0e209d39SAndroid Build Coastguard Worker     /**
2564*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of mass: earth-mass.
2565*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2566*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getEarthMass()}.
2567*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2568*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2569*0e209d39SAndroid Build Coastguard Worker      */
2570*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createEarthMass(UErrorCode &status);
2571*0e209d39SAndroid Build Coastguard Worker 
2572*0e209d39SAndroid Build Coastguard Worker     /**
2573*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of mass: earth-mass.
2574*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createEarthMass()}.
2575*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2576*0e209d39SAndroid Build Coastguard Worker      */
2577*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getEarthMass();
2578*0e209d39SAndroid Build Coastguard Worker 
2579*0e209d39SAndroid Build Coastguard Worker     /**
2580*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of mass: grain.
2581*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2582*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getGrain()}.
2583*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2584*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 68
2585*0e209d39SAndroid Build Coastguard Worker      */
2586*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createGrain(UErrorCode &status);
2587*0e209d39SAndroid Build Coastguard Worker 
2588*0e209d39SAndroid Build Coastguard Worker     /**
2589*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of mass: grain.
2590*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createGrain()}.
2591*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 68
2592*0e209d39SAndroid Build Coastguard Worker      */
2593*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getGrain();
2594*0e209d39SAndroid Build Coastguard Worker 
2595*0e209d39SAndroid Build Coastguard Worker     /**
2596*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of mass: gram.
2597*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2598*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getGram()}.
2599*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2600*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
2601*0e209d39SAndroid Build Coastguard Worker      */
2602*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createGram(UErrorCode &status);
2603*0e209d39SAndroid Build Coastguard Worker 
2604*0e209d39SAndroid Build Coastguard Worker     /**
2605*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of mass: gram.
2606*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createGram()}.
2607*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2608*0e209d39SAndroid Build Coastguard Worker      */
2609*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getGram();
2610*0e209d39SAndroid Build Coastguard Worker 
2611*0e209d39SAndroid Build Coastguard Worker     /**
2612*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of mass: kilogram.
2613*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2614*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getKilogram()}.
2615*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2616*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
2617*0e209d39SAndroid Build Coastguard Worker      */
2618*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createKilogram(UErrorCode &status);
2619*0e209d39SAndroid Build Coastguard Worker 
2620*0e209d39SAndroid Build Coastguard Worker     /**
2621*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of mass: kilogram.
2622*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createKilogram()}.
2623*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2624*0e209d39SAndroid Build Coastguard Worker      */
2625*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getKilogram();
2626*0e209d39SAndroid Build Coastguard Worker 
2627*0e209d39SAndroid Build Coastguard Worker     /**
2628*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of mass: metric-ton
2629*0e209d39SAndroid Build Coastguard Worker      * (renamed to tonne in CLDR 42 / ICU 72).
2630*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2631*0e209d39SAndroid Build Coastguard Worker      * Note: In ICU 74 this will be deprecated in favor of
2632*0e209d39SAndroid Build Coastguard Worker      * createTonne(), which is currently draft but will
2633*0e209d39SAndroid Build Coastguard Worker      * become stable in ICU 74, and which uses the preferred naming.
2634*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMetricTon()} and {@link #createTonne()}.
2635*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2636*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
2637*0e209d39SAndroid Build Coastguard Worker      */
2638*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMetricTon(UErrorCode &status);
2639*0e209d39SAndroid Build Coastguard Worker 
2640*0e209d39SAndroid Build Coastguard Worker     /**
2641*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of mass: metric-ton
2642*0e209d39SAndroid Build Coastguard Worker      * (renamed to tonne in CLDR 42 / ICU 72).
2643*0e209d39SAndroid Build Coastguard Worker      * Note: In ICU 74 this will be deprecated in favor of
2644*0e209d39SAndroid Build Coastguard Worker      * getTonne(), which is currently draft but will
2645*0e209d39SAndroid Build Coastguard Worker      * become stable in ICU 74, and which uses the preferred naming.
2646*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMetricTon()} and {@link #getTonne()}.
2647*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2648*0e209d39SAndroid Build Coastguard Worker      */
2649*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMetricTon();
2650*0e209d39SAndroid Build Coastguard Worker 
2651*0e209d39SAndroid Build Coastguard Worker     /**
2652*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of mass: microgram.
2653*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2654*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMicrogram()}.
2655*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2656*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
2657*0e209d39SAndroid Build Coastguard Worker      */
2658*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMicrogram(UErrorCode &status);
2659*0e209d39SAndroid Build Coastguard Worker 
2660*0e209d39SAndroid Build Coastguard Worker     /**
2661*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of mass: microgram.
2662*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMicrogram()}.
2663*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2664*0e209d39SAndroid Build Coastguard Worker      */
2665*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMicrogram();
2666*0e209d39SAndroid Build Coastguard Worker 
2667*0e209d39SAndroid Build Coastguard Worker     /**
2668*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of mass: milligram.
2669*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2670*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMilligram()}.
2671*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2672*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
2673*0e209d39SAndroid Build Coastguard Worker      */
2674*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMilligram(UErrorCode &status);
2675*0e209d39SAndroid Build Coastguard Worker 
2676*0e209d39SAndroid Build Coastguard Worker     /**
2677*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of mass: milligram.
2678*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMilligram()}.
2679*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2680*0e209d39SAndroid Build Coastguard Worker      */
2681*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMilligram();
2682*0e209d39SAndroid Build Coastguard Worker 
2683*0e209d39SAndroid Build Coastguard Worker     /**
2684*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of mass: ounce.
2685*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2686*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getOunce()}.
2687*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2688*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
2689*0e209d39SAndroid Build Coastguard Worker      */
2690*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createOunce(UErrorCode &status);
2691*0e209d39SAndroid Build Coastguard Worker 
2692*0e209d39SAndroid Build Coastguard Worker     /**
2693*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of mass: ounce.
2694*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createOunce()}.
2695*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2696*0e209d39SAndroid Build Coastguard Worker      */
2697*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getOunce();
2698*0e209d39SAndroid Build Coastguard Worker 
2699*0e209d39SAndroid Build Coastguard Worker     /**
2700*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of mass: ounce-troy.
2701*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2702*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getOunceTroy()}.
2703*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2704*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
2705*0e209d39SAndroid Build Coastguard Worker      */
2706*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createOunceTroy(UErrorCode &status);
2707*0e209d39SAndroid Build Coastguard Worker 
2708*0e209d39SAndroid Build Coastguard Worker     /**
2709*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of mass: ounce-troy.
2710*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createOunceTroy()}.
2711*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2712*0e209d39SAndroid Build Coastguard Worker      */
2713*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getOunceTroy();
2714*0e209d39SAndroid Build Coastguard Worker 
2715*0e209d39SAndroid Build Coastguard Worker     /**
2716*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of mass: pound.
2717*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2718*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getPound()}.
2719*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2720*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
2721*0e209d39SAndroid Build Coastguard Worker      */
2722*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createPound(UErrorCode &status);
2723*0e209d39SAndroid Build Coastguard Worker 
2724*0e209d39SAndroid Build Coastguard Worker     /**
2725*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of mass: pound.
2726*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createPound()}.
2727*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2728*0e209d39SAndroid Build Coastguard Worker      */
2729*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getPound();
2730*0e209d39SAndroid Build Coastguard Worker 
2731*0e209d39SAndroid Build Coastguard Worker     /**
2732*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of mass: solar-mass.
2733*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2734*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getSolarMass()}.
2735*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2736*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2737*0e209d39SAndroid Build Coastguard Worker      */
2738*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createSolarMass(UErrorCode &status);
2739*0e209d39SAndroid Build Coastguard Worker 
2740*0e209d39SAndroid Build Coastguard Worker     /**
2741*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of mass: solar-mass.
2742*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createSolarMass()}.
2743*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2744*0e209d39SAndroid Build Coastguard Worker      */
2745*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getSolarMass();
2746*0e209d39SAndroid Build Coastguard Worker 
2747*0e209d39SAndroid Build Coastguard Worker     /**
2748*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of mass: stone.
2749*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2750*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getStone()}.
2751*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2752*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
2753*0e209d39SAndroid Build Coastguard Worker      */
2754*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createStone(UErrorCode &status);
2755*0e209d39SAndroid Build Coastguard Worker 
2756*0e209d39SAndroid Build Coastguard Worker     /**
2757*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of mass: stone.
2758*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createStone()}.
2759*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2760*0e209d39SAndroid Build Coastguard Worker      */
2761*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getStone();
2762*0e209d39SAndroid Build Coastguard Worker 
2763*0e209d39SAndroid Build Coastguard Worker     /**
2764*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of mass: ton.
2765*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2766*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getTon()}.
2767*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2768*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
2769*0e209d39SAndroid Build Coastguard Worker      */
2770*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createTon(UErrorCode &status);
2771*0e209d39SAndroid Build Coastguard Worker 
2772*0e209d39SAndroid Build Coastguard Worker     /**
2773*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of mass: ton.
2774*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createTon()}.
2775*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2776*0e209d39SAndroid Build Coastguard Worker      */
2777*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getTon();
2778*0e209d39SAndroid Build Coastguard Worker 
2779*0e209d39SAndroid Build Coastguard Worker     /**
2780*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of mass: tonne.
2781*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2782*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getTonne()}.
2783*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2784*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 72
2785*0e209d39SAndroid Build Coastguard Worker      */
2786*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createTonne(UErrorCode &status);
2787*0e209d39SAndroid Build Coastguard Worker 
2788*0e209d39SAndroid Build Coastguard Worker     /**
2789*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of mass: tonne.
2790*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createTonne()}.
2791*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 72
2792*0e209d39SAndroid Build Coastguard Worker      */
2793*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getTonne();
2794*0e209d39SAndroid Build Coastguard Worker 
2795*0e209d39SAndroid Build Coastguard Worker     /**
2796*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of power: gigawatt.
2797*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2798*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getGigawatt()}.
2799*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2800*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
2801*0e209d39SAndroid Build Coastguard Worker      */
2802*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createGigawatt(UErrorCode &status);
2803*0e209d39SAndroid Build Coastguard Worker 
2804*0e209d39SAndroid Build Coastguard Worker     /**
2805*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of power: gigawatt.
2806*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createGigawatt()}.
2807*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2808*0e209d39SAndroid Build Coastguard Worker      */
2809*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getGigawatt();
2810*0e209d39SAndroid Build Coastguard Worker 
2811*0e209d39SAndroid Build Coastguard Worker     /**
2812*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of power: horsepower.
2813*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2814*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getHorsepower()}.
2815*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2816*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
2817*0e209d39SAndroid Build Coastguard Worker      */
2818*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createHorsepower(UErrorCode &status);
2819*0e209d39SAndroid Build Coastguard Worker 
2820*0e209d39SAndroid Build Coastguard Worker     /**
2821*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of power: horsepower.
2822*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createHorsepower()}.
2823*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2824*0e209d39SAndroid Build Coastguard Worker      */
2825*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getHorsepower();
2826*0e209d39SAndroid Build Coastguard Worker 
2827*0e209d39SAndroid Build Coastguard Worker     /**
2828*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of power: kilowatt.
2829*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2830*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getKilowatt()}.
2831*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2832*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
2833*0e209d39SAndroid Build Coastguard Worker      */
2834*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createKilowatt(UErrorCode &status);
2835*0e209d39SAndroid Build Coastguard Worker 
2836*0e209d39SAndroid Build Coastguard Worker     /**
2837*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of power: kilowatt.
2838*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createKilowatt()}.
2839*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2840*0e209d39SAndroid Build Coastguard Worker      */
2841*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getKilowatt();
2842*0e209d39SAndroid Build Coastguard Worker 
2843*0e209d39SAndroid Build Coastguard Worker     /**
2844*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of power: megawatt.
2845*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2846*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMegawatt()}.
2847*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2848*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
2849*0e209d39SAndroid Build Coastguard Worker      */
2850*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMegawatt(UErrorCode &status);
2851*0e209d39SAndroid Build Coastguard Worker 
2852*0e209d39SAndroid Build Coastguard Worker     /**
2853*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of power: megawatt.
2854*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMegawatt()}.
2855*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2856*0e209d39SAndroid Build Coastguard Worker      */
2857*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMegawatt();
2858*0e209d39SAndroid Build Coastguard Worker 
2859*0e209d39SAndroid Build Coastguard Worker     /**
2860*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of power: milliwatt.
2861*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2862*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMilliwatt()}.
2863*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2864*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
2865*0e209d39SAndroid Build Coastguard Worker      */
2866*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMilliwatt(UErrorCode &status);
2867*0e209d39SAndroid Build Coastguard Worker 
2868*0e209d39SAndroid Build Coastguard Worker     /**
2869*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of power: milliwatt.
2870*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMilliwatt()}.
2871*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2872*0e209d39SAndroid Build Coastguard Worker      */
2873*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMilliwatt();
2874*0e209d39SAndroid Build Coastguard Worker 
2875*0e209d39SAndroid Build Coastguard Worker     /**
2876*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of power: watt.
2877*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2878*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getWatt()}.
2879*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2880*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
2881*0e209d39SAndroid Build Coastguard Worker      */
2882*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createWatt(UErrorCode &status);
2883*0e209d39SAndroid Build Coastguard Worker 
2884*0e209d39SAndroid Build Coastguard Worker     /**
2885*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of power: watt.
2886*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createWatt()}.
2887*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2888*0e209d39SAndroid Build Coastguard Worker      */
2889*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getWatt();
2890*0e209d39SAndroid Build Coastguard Worker 
2891*0e209d39SAndroid Build Coastguard Worker     /**
2892*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of pressure: atmosphere.
2893*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2894*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getAtmosphere()}.
2895*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2896*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 63
2897*0e209d39SAndroid Build Coastguard Worker      */
2898*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createAtmosphere(UErrorCode &status);
2899*0e209d39SAndroid Build Coastguard Worker 
2900*0e209d39SAndroid Build Coastguard Worker     /**
2901*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of pressure: atmosphere.
2902*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createAtmosphere()}.
2903*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2904*0e209d39SAndroid Build Coastguard Worker      */
2905*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getAtmosphere();
2906*0e209d39SAndroid Build Coastguard Worker 
2907*0e209d39SAndroid Build Coastguard Worker     /**
2908*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of pressure: bar.
2909*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2910*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getBar()}.
2911*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2912*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 65
2913*0e209d39SAndroid Build Coastguard Worker      */
2914*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createBar(UErrorCode &status);
2915*0e209d39SAndroid Build Coastguard Worker 
2916*0e209d39SAndroid Build Coastguard Worker     /**
2917*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of pressure: bar.
2918*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createBar()}.
2919*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 65
2920*0e209d39SAndroid Build Coastguard Worker      */
2921*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getBar();
2922*0e209d39SAndroid Build Coastguard Worker 
2923*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DRAFT_API
2924*0e209d39SAndroid Build Coastguard Worker     /**
2925*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of pressure: gasoline-energy-density.
2926*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2927*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getGasolineEnergyDensity()}.
2928*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2929*0e209d39SAndroid Build Coastguard Worker      * @draft ICU 74
2930*0e209d39SAndroid Build Coastguard Worker      */
2931*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createGasolineEnergyDensity(UErrorCode &status);
2932*0e209d39SAndroid Build Coastguard Worker 
2933*0e209d39SAndroid Build Coastguard Worker     /**
2934*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of pressure: gasoline-energy-density.
2935*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createGasolineEnergyDensity()}.
2936*0e209d39SAndroid Build Coastguard Worker      * @draft ICU 74
2937*0e209d39SAndroid Build Coastguard Worker      */
2938*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getGasolineEnergyDensity();
2939*0e209d39SAndroid Build Coastguard Worker #endif /* U_HIDE_DRAFT_API */
2940*0e209d39SAndroid Build Coastguard Worker 
2941*0e209d39SAndroid Build Coastguard Worker     /**
2942*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of pressure: hectopascal.
2943*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2944*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getHectopascal()}.
2945*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2946*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
2947*0e209d39SAndroid Build Coastguard Worker      */
2948*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createHectopascal(UErrorCode &status);
2949*0e209d39SAndroid Build Coastguard Worker 
2950*0e209d39SAndroid Build Coastguard Worker     /**
2951*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of pressure: hectopascal.
2952*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createHectopascal()}.
2953*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2954*0e209d39SAndroid Build Coastguard Worker      */
2955*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getHectopascal();
2956*0e209d39SAndroid Build Coastguard Worker 
2957*0e209d39SAndroid Build Coastguard Worker     /**
2958*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of pressure: inch-ofhg.
2959*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2960*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getInchHg()}.
2961*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2962*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
2963*0e209d39SAndroid Build Coastguard Worker      */
2964*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createInchHg(UErrorCode &status);
2965*0e209d39SAndroid Build Coastguard Worker 
2966*0e209d39SAndroid Build Coastguard Worker     /**
2967*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of pressure: inch-ofhg.
2968*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createInchHg()}.
2969*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2970*0e209d39SAndroid Build Coastguard Worker      */
2971*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getInchHg();
2972*0e209d39SAndroid Build Coastguard Worker 
2973*0e209d39SAndroid Build Coastguard Worker     /**
2974*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of pressure: kilopascal.
2975*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2976*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getKilopascal()}.
2977*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2978*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2979*0e209d39SAndroid Build Coastguard Worker      */
2980*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createKilopascal(UErrorCode &status);
2981*0e209d39SAndroid Build Coastguard Worker 
2982*0e209d39SAndroid Build Coastguard Worker     /**
2983*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of pressure: kilopascal.
2984*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createKilopascal()}.
2985*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2986*0e209d39SAndroid Build Coastguard Worker      */
2987*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getKilopascal();
2988*0e209d39SAndroid Build Coastguard Worker 
2989*0e209d39SAndroid Build Coastguard Worker     /**
2990*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of pressure: megapascal.
2991*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
2992*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMegapascal()}.
2993*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
2994*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
2995*0e209d39SAndroid Build Coastguard Worker      */
2996*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMegapascal(UErrorCode &status);
2997*0e209d39SAndroid Build Coastguard Worker 
2998*0e209d39SAndroid Build Coastguard Worker     /**
2999*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of pressure: megapascal.
3000*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMegapascal()}.
3001*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3002*0e209d39SAndroid Build Coastguard Worker      */
3003*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMegapascal();
3004*0e209d39SAndroid Build Coastguard Worker 
3005*0e209d39SAndroid Build Coastguard Worker     /**
3006*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of pressure: millibar.
3007*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3008*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMillibar()}.
3009*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3010*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
3011*0e209d39SAndroid Build Coastguard Worker      */
3012*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMillibar(UErrorCode &status);
3013*0e209d39SAndroid Build Coastguard Worker 
3014*0e209d39SAndroid Build Coastguard Worker     /**
3015*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of pressure: millibar.
3016*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMillibar()}.
3017*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3018*0e209d39SAndroid Build Coastguard Worker      */
3019*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMillibar();
3020*0e209d39SAndroid Build Coastguard Worker 
3021*0e209d39SAndroid Build Coastguard Worker     /**
3022*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of pressure: millimeter-ofhg.
3023*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3024*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMillimeterOfMercury()}.
3025*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3026*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
3027*0e209d39SAndroid Build Coastguard Worker      */
3028*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMillimeterOfMercury(UErrorCode &status);
3029*0e209d39SAndroid Build Coastguard Worker 
3030*0e209d39SAndroid Build Coastguard Worker     /**
3031*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of pressure: millimeter-ofhg.
3032*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMillimeterOfMercury()}.
3033*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3034*0e209d39SAndroid Build Coastguard Worker      */
3035*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMillimeterOfMercury();
3036*0e209d39SAndroid Build Coastguard Worker 
3037*0e209d39SAndroid Build Coastguard Worker     /**
3038*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of pressure: pascal.
3039*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3040*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getPascal()}.
3041*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3042*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 65
3043*0e209d39SAndroid Build Coastguard Worker      */
3044*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createPascal(UErrorCode &status);
3045*0e209d39SAndroid Build Coastguard Worker 
3046*0e209d39SAndroid Build Coastguard Worker     /**
3047*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of pressure: pascal.
3048*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createPascal()}.
3049*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 65
3050*0e209d39SAndroid Build Coastguard Worker      */
3051*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getPascal();
3052*0e209d39SAndroid Build Coastguard Worker 
3053*0e209d39SAndroid Build Coastguard Worker     /**
3054*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of pressure: pound-force-per-square-inch.
3055*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3056*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getPoundPerSquareInch()}.
3057*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3058*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
3059*0e209d39SAndroid Build Coastguard Worker      */
3060*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createPoundPerSquareInch(UErrorCode &status);
3061*0e209d39SAndroid Build Coastguard Worker 
3062*0e209d39SAndroid Build Coastguard Worker     /**
3063*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of pressure: pound-force-per-square-inch.
3064*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createPoundPerSquareInch()}.
3065*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3066*0e209d39SAndroid Build Coastguard Worker      */
3067*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getPoundPerSquareInch();
3068*0e209d39SAndroid Build Coastguard Worker 
3069*0e209d39SAndroid Build Coastguard Worker     /**
3070*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of speed: beaufort.
3071*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3072*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getBeaufort()}.
3073*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3074*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 73
3075*0e209d39SAndroid Build Coastguard Worker      */
3076*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createBeaufort(UErrorCode &status);
3077*0e209d39SAndroid Build Coastguard Worker 
3078*0e209d39SAndroid Build Coastguard Worker     /**
3079*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of speed: beaufort.
3080*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createBeaufort()}.
3081*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 73
3082*0e209d39SAndroid Build Coastguard Worker      */
3083*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getBeaufort();
3084*0e209d39SAndroid Build Coastguard Worker 
3085*0e209d39SAndroid Build Coastguard Worker     /**
3086*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of speed: kilometer-per-hour.
3087*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3088*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getKilometerPerHour()}.
3089*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3090*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
3091*0e209d39SAndroid Build Coastguard Worker      */
3092*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createKilometerPerHour(UErrorCode &status);
3093*0e209d39SAndroid Build Coastguard Worker 
3094*0e209d39SAndroid Build Coastguard Worker     /**
3095*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of speed: kilometer-per-hour.
3096*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createKilometerPerHour()}.
3097*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3098*0e209d39SAndroid Build Coastguard Worker      */
3099*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getKilometerPerHour();
3100*0e209d39SAndroid Build Coastguard Worker 
3101*0e209d39SAndroid Build Coastguard Worker     /**
3102*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of speed: knot.
3103*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3104*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getKnot()}.
3105*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3106*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 56
3107*0e209d39SAndroid Build Coastguard Worker      */
3108*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createKnot(UErrorCode &status);
3109*0e209d39SAndroid Build Coastguard Worker 
3110*0e209d39SAndroid Build Coastguard Worker     /**
3111*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of speed: knot.
3112*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createKnot()}.
3113*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3114*0e209d39SAndroid Build Coastguard Worker      */
3115*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getKnot();
3116*0e209d39SAndroid Build Coastguard Worker 
3117*0e209d39SAndroid Build Coastguard Worker     /**
3118*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of speed: meter-per-second.
3119*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3120*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMeterPerSecond()}.
3121*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3122*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
3123*0e209d39SAndroid Build Coastguard Worker      */
3124*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMeterPerSecond(UErrorCode &status);
3125*0e209d39SAndroid Build Coastguard Worker 
3126*0e209d39SAndroid Build Coastguard Worker     /**
3127*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of speed: meter-per-second.
3128*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMeterPerSecond()}.
3129*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3130*0e209d39SAndroid Build Coastguard Worker      */
3131*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMeterPerSecond();
3132*0e209d39SAndroid Build Coastguard Worker 
3133*0e209d39SAndroid Build Coastguard Worker     /**
3134*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of speed: mile-per-hour.
3135*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3136*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMilePerHour()}.
3137*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3138*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
3139*0e209d39SAndroid Build Coastguard Worker      */
3140*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMilePerHour(UErrorCode &status);
3141*0e209d39SAndroid Build Coastguard Worker 
3142*0e209d39SAndroid Build Coastguard Worker     /**
3143*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of speed: mile-per-hour.
3144*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMilePerHour()}.
3145*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3146*0e209d39SAndroid Build Coastguard Worker      */
3147*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMilePerHour();
3148*0e209d39SAndroid Build Coastguard Worker 
3149*0e209d39SAndroid Build Coastguard Worker     /**
3150*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of temperature: celsius.
3151*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3152*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getCelsius()}.
3153*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3154*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
3155*0e209d39SAndroid Build Coastguard Worker      */
3156*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createCelsius(UErrorCode &status);
3157*0e209d39SAndroid Build Coastguard Worker 
3158*0e209d39SAndroid Build Coastguard Worker     /**
3159*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of temperature: celsius.
3160*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createCelsius()}.
3161*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3162*0e209d39SAndroid Build Coastguard Worker      */
3163*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getCelsius();
3164*0e209d39SAndroid Build Coastguard Worker 
3165*0e209d39SAndroid Build Coastguard Worker     /**
3166*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of temperature: fahrenheit.
3167*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3168*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getFahrenheit()}.
3169*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3170*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
3171*0e209d39SAndroid Build Coastguard Worker      */
3172*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createFahrenheit(UErrorCode &status);
3173*0e209d39SAndroid Build Coastguard Worker 
3174*0e209d39SAndroid Build Coastguard Worker     /**
3175*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of temperature: fahrenheit.
3176*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createFahrenheit()}.
3177*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3178*0e209d39SAndroid Build Coastguard Worker      */
3179*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getFahrenheit();
3180*0e209d39SAndroid Build Coastguard Worker 
3181*0e209d39SAndroid Build Coastguard Worker     /**
3182*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of temperature: generic.
3183*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3184*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getGenericTemperature()}.
3185*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3186*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 56
3187*0e209d39SAndroid Build Coastguard Worker      */
3188*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createGenericTemperature(UErrorCode &status);
3189*0e209d39SAndroid Build Coastguard Worker 
3190*0e209d39SAndroid Build Coastguard Worker     /**
3191*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of temperature: generic.
3192*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createGenericTemperature()}.
3193*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3194*0e209d39SAndroid Build Coastguard Worker      */
3195*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getGenericTemperature();
3196*0e209d39SAndroid Build Coastguard Worker 
3197*0e209d39SAndroid Build Coastguard Worker     /**
3198*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of temperature: kelvin.
3199*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3200*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getKelvin()}.
3201*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3202*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
3203*0e209d39SAndroid Build Coastguard Worker      */
3204*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createKelvin(UErrorCode &status);
3205*0e209d39SAndroid Build Coastguard Worker 
3206*0e209d39SAndroid Build Coastguard Worker     /**
3207*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of temperature: kelvin.
3208*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createKelvin()}.
3209*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3210*0e209d39SAndroid Build Coastguard Worker      */
3211*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getKelvin();
3212*0e209d39SAndroid Build Coastguard Worker 
3213*0e209d39SAndroid Build Coastguard Worker     /**
3214*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of torque: newton-meter.
3215*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3216*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getNewtonMeter()}.
3217*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3218*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3219*0e209d39SAndroid Build Coastguard Worker      */
3220*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createNewtonMeter(UErrorCode &status);
3221*0e209d39SAndroid Build Coastguard Worker 
3222*0e209d39SAndroid Build Coastguard Worker     /**
3223*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of torque: newton-meter.
3224*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createNewtonMeter()}.
3225*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3226*0e209d39SAndroid Build Coastguard Worker      */
3227*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getNewtonMeter();
3228*0e209d39SAndroid Build Coastguard Worker 
3229*0e209d39SAndroid Build Coastguard Worker     /**
3230*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of torque: pound-force-foot.
3231*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3232*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getPoundFoot()}.
3233*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3234*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3235*0e209d39SAndroid Build Coastguard Worker      */
3236*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createPoundFoot(UErrorCode &status);
3237*0e209d39SAndroid Build Coastguard Worker 
3238*0e209d39SAndroid Build Coastguard Worker     /**
3239*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of torque: pound-force-foot.
3240*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createPoundFoot()}.
3241*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3242*0e209d39SAndroid Build Coastguard Worker      */
3243*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getPoundFoot();
3244*0e209d39SAndroid Build Coastguard Worker 
3245*0e209d39SAndroid Build Coastguard Worker     /**
3246*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: acre-foot.
3247*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3248*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getAcreFoot()}.
3249*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3250*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
3251*0e209d39SAndroid Build Coastguard Worker      */
3252*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createAcreFoot(UErrorCode &status);
3253*0e209d39SAndroid Build Coastguard Worker 
3254*0e209d39SAndroid Build Coastguard Worker     /**
3255*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: acre-foot.
3256*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createAcreFoot()}.
3257*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3258*0e209d39SAndroid Build Coastguard Worker      */
3259*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getAcreFoot();
3260*0e209d39SAndroid Build Coastguard Worker 
3261*0e209d39SAndroid Build Coastguard Worker     /**
3262*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: barrel.
3263*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3264*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getBarrel()}.
3265*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3266*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3267*0e209d39SAndroid Build Coastguard Worker      */
3268*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createBarrel(UErrorCode &status);
3269*0e209d39SAndroid Build Coastguard Worker 
3270*0e209d39SAndroid Build Coastguard Worker     /**
3271*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: barrel.
3272*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createBarrel()}.
3273*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3274*0e209d39SAndroid Build Coastguard Worker      */
3275*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getBarrel();
3276*0e209d39SAndroid Build Coastguard Worker 
3277*0e209d39SAndroid Build Coastguard Worker     /**
3278*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: bushel.
3279*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3280*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getBushel()}.
3281*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3282*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
3283*0e209d39SAndroid Build Coastguard Worker      */
3284*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createBushel(UErrorCode &status);
3285*0e209d39SAndroid Build Coastguard Worker 
3286*0e209d39SAndroid Build Coastguard Worker     /**
3287*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: bushel.
3288*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createBushel()}.
3289*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3290*0e209d39SAndroid Build Coastguard Worker      */
3291*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getBushel();
3292*0e209d39SAndroid Build Coastguard Worker 
3293*0e209d39SAndroid Build Coastguard Worker     /**
3294*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: centiliter.
3295*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3296*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getCentiliter()}.
3297*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3298*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
3299*0e209d39SAndroid Build Coastguard Worker      */
3300*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createCentiliter(UErrorCode &status);
3301*0e209d39SAndroid Build Coastguard Worker 
3302*0e209d39SAndroid Build Coastguard Worker     /**
3303*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: centiliter.
3304*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createCentiliter()}.
3305*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3306*0e209d39SAndroid Build Coastguard Worker      */
3307*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getCentiliter();
3308*0e209d39SAndroid Build Coastguard Worker 
3309*0e209d39SAndroid Build Coastguard Worker     /**
3310*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: cubic-centimeter.
3311*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3312*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getCubicCentimeter()}.
3313*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3314*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
3315*0e209d39SAndroid Build Coastguard Worker      */
3316*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createCubicCentimeter(UErrorCode &status);
3317*0e209d39SAndroid Build Coastguard Worker 
3318*0e209d39SAndroid Build Coastguard Worker     /**
3319*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: cubic-centimeter.
3320*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createCubicCentimeter()}.
3321*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3322*0e209d39SAndroid Build Coastguard Worker      */
3323*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getCubicCentimeter();
3324*0e209d39SAndroid Build Coastguard Worker 
3325*0e209d39SAndroid Build Coastguard Worker     /**
3326*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: cubic-foot.
3327*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3328*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getCubicFoot()}.
3329*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3330*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
3331*0e209d39SAndroid Build Coastguard Worker      */
3332*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createCubicFoot(UErrorCode &status);
3333*0e209d39SAndroid Build Coastguard Worker 
3334*0e209d39SAndroid Build Coastguard Worker     /**
3335*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: cubic-foot.
3336*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createCubicFoot()}.
3337*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3338*0e209d39SAndroid Build Coastguard Worker      */
3339*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getCubicFoot();
3340*0e209d39SAndroid Build Coastguard Worker 
3341*0e209d39SAndroid Build Coastguard Worker     /**
3342*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: cubic-inch.
3343*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3344*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getCubicInch()}.
3345*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3346*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
3347*0e209d39SAndroid Build Coastguard Worker      */
3348*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createCubicInch(UErrorCode &status);
3349*0e209d39SAndroid Build Coastguard Worker 
3350*0e209d39SAndroid Build Coastguard Worker     /**
3351*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: cubic-inch.
3352*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createCubicInch()}.
3353*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3354*0e209d39SAndroid Build Coastguard Worker      */
3355*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getCubicInch();
3356*0e209d39SAndroid Build Coastguard Worker 
3357*0e209d39SAndroid Build Coastguard Worker     /**
3358*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: cubic-kilometer.
3359*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3360*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getCubicKilometer()}.
3361*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3362*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
3363*0e209d39SAndroid Build Coastguard Worker      */
3364*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createCubicKilometer(UErrorCode &status);
3365*0e209d39SAndroid Build Coastguard Worker 
3366*0e209d39SAndroid Build Coastguard Worker     /**
3367*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: cubic-kilometer.
3368*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createCubicKilometer()}.
3369*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3370*0e209d39SAndroid Build Coastguard Worker      */
3371*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getCubicKilometer();
3372*0e209d39SAndroid Build Coastguard Worker 
3373*0e209d39SAndroid Build Coastguard Worker     /**
3374*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: cubic-meter.
3375*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3376*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getCubicMeter()}.
3377*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3378*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
3379*0e209d39SAndroid Build Coastguard Worker      */
3380*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createCubicMeter(UErrorCode &status);
3381*0e209d39SAndroid Build Coastguard Worker 
3382*0e209d39SAndroid Build Coastguard Worker     /**
3383*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: cubic-meter.
3384*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createCubicMeter()}.
3385*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3386*0e209d39SAndroid Build Coastguard Worker      */
3387*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getCubicMeter();
3388*0e209d39SAndroid Build Coastguard Worker 
3389*0e209d39SAndroid Build Coastguard Worker     /**
3390*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: cubic-mile.
3391*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3392*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getCubicMile()}.
3393*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3394*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
3395*0e209d39SAndroid Build Coastguard Worker      */
3396*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createCubicMile(UErrorCode &status);
3397*0e209d39SAndroid Build Coastguard Worker 
3398*0e209d39SAndroid Build Coastguard Worker     /**
3399*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: cubic-mile.
3400*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createCubicMile()}.
3401*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3402*0e209d39SAndroid Build Coastguard Worker      */
3403*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getCubicMile();
3404*0e209d39SAndroid Build Coastguard Worker 
3405*0e209d39SAndroid Build Coastguard Worker     /**
3406*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: cubic-yard.
3407*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3408*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getCubicYard()}.
3409*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3410*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
3411*0e209d39SAndroid Build Coastguard Worker      */
3412*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createCubicYard(UErrorCode &status);
3413*0e209d39SAndroid Build Coastguard Worker 
3414*0e209d39SAndroid Build Coastguard Worker     /**
3415*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: cubic-yard.
3416*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createCubicYard()}.
3417*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3418*0e209d39SAndroid Build Coastguard Worker      */
3419*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getCubicYard();
3420*0e209d39SAndroid Build Coastguard Worker 
3421*0e209d39SAndroid Build Coastguard Worker     /**
3422*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: cup.
3423*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3424*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getCup()}.
3425*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3426*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
3427*0e209d39SAndroid Build Coastguard Worker      */
3428*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createCup(UErrorCode &status);
3429*0e209d39SAndroid Build Coastguard Worker 
3430*0e209d39SAndroid Build Coastguard Worker     /**
3431*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: cup.
3432*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createCup()}.
3433*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3434*0e209d39SAndroid Build Coastguard Worker      */
3435*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getCup();
3436*0e209d39SAndroid Build Coastguard Worker 
3437*0e209d39SAndroid Build Coastguard Worker     /**
3438*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: cup-metric.
3439*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3440*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getCupMetric()}.
3441*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3442*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 56
3443*0e209d39SAndroid Build Coastguard Worker      */
3444*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createCupMetric(UErrorCode &status);
3445*0e209d39SAndroid Build Coastguard Worker 
3446*0e209d39SAndroid Build Coastguard Worker     /**
3447*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: cup-metric.
3448*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createCupMetric()}.
3449*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3450*0e209d39SAndroid Build Coastguard Worker      */
3451*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getCupMetric();
3452*0e209d39SAndroid Build Coastguard Worker 
3453*0e209d39SAndroid Build Coastguard Worker     /**
3454*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: deciliter.
3455*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3456*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getDeciliter()}.
3457*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3458*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
3459*0e209d39SAndroid Build Coastguard Worker      */
3460*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createDeciliter(UErrorCode &status);
3461*0e209d39SAndroid Build Coastguard Worker 
3462*0e209d39SAndroid Build Coastguard Worker     /**
3463*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: deciliter.
3464*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createDeciliter()}.
3465*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3466*0e209d39SAndroid Build Coastguard Worker      */
3467*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getDeciliter();
3468*0e209d39SAndroid Build Coastguard Worker 
3469*0e209d39SAndroid Build Coastguard Worker     /**
3470*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: dessert-spoon.
3471*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3472*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getDessertSpoon()}.
3473*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3474*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 68
3475*0e209d39SAndroid Build Coastguard Worker      */
3476*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createDessertSpoon(UErrorCode &status);
3477*0e209d39SAndroid Build Coastguard Worker 
3478*0e209d39SAndroid Build Coastguard Worker     /**
3479*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: dessert-spoon.
3480*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createDessertSpoon()}.
3481*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 68
3482*0e209d39SAndroid Build Coastguard Worker      */
3483*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getDessertSpoon();
3484*0e209d39SAndroid Build Coastguard Worker 
3485*0e209d39SAndroid Build Coastguard Worker     /**
3486*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: dessert-spoon-imperial.
3487*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3488*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getDessertSpoonImperial()}.
3489*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3490*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 68
3491*0e209d39SAndroid Build Coastguard Worker      */
3492*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createDessertSpoonImperial(UErrorCode &status);
3493*0e209d39SAndroid Build Coastguard Worker 
3494*0e209d39SAndroid Build Coastguard Worker     /**
3495*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: dessert-spoon-imperial.
3496*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createDessertSpoonImperial()}.
3497*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 68
3498*0e209d39SAndroid Build Coastguard Worker      */
3499*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getDessertSpoonImperial();
3500*0e209d39SAndroid Build Coastguard Worker 
3501*0e209d39SAndroid Build Coastguard Worker     /**
3502*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: dram.
3503*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3504*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getDram()}.
3505*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3506*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 68
3507*0e209d39SAndroid Build Coastguard Worker      */
3508*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createDram(UErrorCode &status);
3509*0e209d39SAndroid Build Coastguard Worker 
3510*0e209d39SAndroid Build Coastguard Worker     /**
3511*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: dram.
3512*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createDram()}.
3513*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 68
3514*0e209d39SAndroid Build Coastguard Worker      */
3515*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getDram();
3516*0e209d39SAndroid Build Coastguard Worker 
3517*0e209d39SAndroid Build Coastguard Worker     /**
3518*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: drop.
3519*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3520*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getDrop()}.
3521*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3522*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 68
3523*0e209d39SAndroid Build Coastguard Worker      */
3524*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createDrop(UErrorCode &status);
3525*0e209d39SAndroid Build Coastguard Worker 
3526*0e209d39SAndroid Build Coastguard Worker     /**
3527*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: drop.
3528*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createDrop()}.
3529*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 68
3530*0e209d39SAndroid Build Coastguard Worker      */
3531*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getDrop();
3532*0e209d39SAndroid Build Coastguard Worker 
3533*0e209d39SAndroid Build Coastguard Worker     /**
3534*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: fluid-ounce.
3535*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3536*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getFluidOunce()}.
3537*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3538*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
3539*0e209d39SAndroid Build Coastguard Worker      */
3540*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createFluidOunce(UErrorCode &status);
3541*0e209d39SAndroid Build Coastguard Worker 
3542*0e209d39SAndroid Build Coastguard Worker     /**
3543*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: fluid-ounce.
3544*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createFluidOunce()}.
3545*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3546*0e209d39SAndroid Build Coastguard Worker      */
3547*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getFluidOunce();
3548*0e209d39SAndroid Build Coastguard Worker 
3549*0e209d39SAndroid Build Coastguard Worker     /**
3550*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: fluid-ounce-imperial.
3551*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3552*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getFluidOunceImperial()}.
3553*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3554*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3555*0e209d39SAndroid Build Coastguard Worker      */
3556*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createFluidOunceImperial(UErrorCode &status);
3557*0e209d39SAndroid Build Coastguard Worker 
3558*0e209d39SAndroid Build Coastguard Worker     /**
3559*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: fluid-ounce-imperial.
3560*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createFluidOunceImperial()}.
3561*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3562*0e209d39SAndroid Build Coastguard Worker      */
3563*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getFluidOunceImperial();
3564*0e209d39SAndroid Build Coastguard Worker 
3565*0e209d39SAndroid Build Coastguard Worker     /**
3566*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: gallon.
3567*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3568*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getGallon()}.
3569*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3570*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
3571*0e209d39SAndroid Build Coastguard Worker      */
3572*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createGallon(UErrorCode &status);
3573*0e209d39SAndroid Build Coastguard Worker 
3574*0e209d39SAndroid Build Coastguard Worker     /**
3575*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: gallon.
3576*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createGallon()}.
3577*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3578*0e209d39SAndroid Build Coastguard Worker      */
3579*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getGallon();
3580*0e209d39SAndroid Build Coastguard Worker 
3581*0e209d39SAndroid Build Coastguard Worker     /**
3582*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: gallon-imperial.
3583*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3584*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getGallonImperial()}.
3585*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3586*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 57
3587*0e209d39SAndroid Build Coastguard Worker      */
3588*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createGallonImperial(UErrorCode &status);
3589*0e209d39SAndroid Build Coastguard Worker 
3590*0e209d39SAndroid Build Coastguard Worker     /**
3591*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: gallon-imperial.
3592*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createGallonImperial()}.
3593*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3594*0e209d39SAndroid Build Coastguard Worker      */
3595*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getGallonImperial();
3596*0e209d39SAndroid Build Coastguard Worker 
3597*0e209d39SAndroid Build Coastguard Worker     /**
3598*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: hectoliter.
3599*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3600*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getHectoliter()}.
3601*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3602*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
3603*0e209d39SAndroid Build Coastguard Worker      */
3604*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createHectoliter(UErrorCode &status);
3605*0e209d39SAndroid Build Coastguard Worker 
3606*0e209d39SAndroid Build Coastguard Worker     /**
3607*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: hectoliter.
3608*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createHectoliter()}.
3609*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3610*0e209d39SAndroid Build Coastguard Worker      */
3611*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getHectoliter();
3612*0e209d39SAndroid Build Coastguard Worker 
3613*0e209d39SAndroid Build Coastguard Worker     /**
3614*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: jigger.
3615*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3616*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getJigger()}.
3617*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3618*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 68
3619*0e209d39SAndroid Build Coastguard Worker      */
3620*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createJigger(UErrorCode &status);
3621*0e209d39SAndroid Build Coastguard Worker 
3622*0e209d39SAndroid Build Coastguard Worker     /**
3623*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: jigger.
3624*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createJigger()}.
3625*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 68
3626*0e209d39SAndroid Build Coastguard Worker      */
3627*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getJigger();
3628*0e209d39SAndroid Build Coastguard Worker 
3629*0e209d39SAndroid Build Coastguard Worker     /**
3630*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: liter.
3631*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3632*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getLiter()}.
3633*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3634*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 53
3635*0e209d39SAndroid Build Coastguard Worker      */
3636*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createLiter(UErrorCode &status);
3637*0e209d39SAndroid Build Coastguard Worker 
3638*0e209d39SAndroid Build Coastguard Worker     /**
3639*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: liter.
3640*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createLiter()}.
3641*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3642*0e209d39SAndroid Build Coastguard Worker      */
3643*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getLiter();
3644*0e209d39SAndroid Build Coastguard Worker 
3645*0e209d39SAndroid Build Coastguard Worker     /**
3646*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: megaliter.
3647*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3648*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMegaliter()}.
3649*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3650*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
3651*0e209d39SAndroid Build Coastguard Worker      */
3652*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMegaliter(UErrorCode &status);
3653*0e209d39SAndroid Build Coastguard Worker 
3654*0e209d39SAndroid Build Coastguard Worker     /**
3655*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: megaliter.
3656*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMegaliter()}.
3657*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3658*0e209d39SAndroid Build Coastguard Worker      */
3659*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMegaliter();
3660*0e209d39SAndroid Build Coastguard Worker 
3661*0e209d39SAndroid Build Coastguard Worker     /**
3662*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: milliliter.
3663*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3664*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getMilliliter()}.
3665*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3666*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
3667*0e209d39SAndroid Build Coastguard Worker      */
3668*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createMilliliter(UErrorCode &status);
3669*0e209d39SAndroid Build Coastguard Worker 
3670*0e209d39SAndroid Build Coastguard Worker     /**
3671*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: milliliter.
3672*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createMilliliter()}.
3673*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3674*0e209d39SAndroid Build Coastguard Worker      */
3675*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getMilliliter();
3676*0e209d39SAndroid Build Coastguard Worker 
3677*0e209d39SAndroid Build Coastguard Worker     /**
3678*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: pinch.
3679*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3680*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getPinch()}.
3681*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3682*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 68
3683*0e209d39SAndroid Build Coastguard Worker      */
3684*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createPinch(UErrorCode &status);
3685*0e209d39SAndroid Build Coastguard Worker 
3686*0e209d39SAndroid Build Coastguard Worker     /**
3687*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: pinch.
3688*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createPinch()}.
3689*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 68
3690*0e209d39SAndroid Build Coastguard Worker      */
3691*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getPinch();
3692*0e209d39SAndroid Build Coastguard Worker 
3693*0e209d39SAndroid Build Coastguard Worker     /**
3694*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: pint.
3695*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3696*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getPint()}.
3697*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3698*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
3699*0e209d39SAndroid Build Coastguard Worker      */
3700*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createPint(UErrorCode &status);
3701*0e209d39SAndroid Build Coastguard Worker 
3702*0e209d39SAndroid Build Coastguard Worker     /**
3703*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: pint.
3704*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createPint()}.
3705*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3706*0e209d39SAndroid Build Coastguard Worker      */
3707*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getPint();
3708*0e209d39SAndroid Build Coastguard Worker 
3709*0e209d39SAndroid Build Coastguard Worker     /**
3710*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: pint-metric.
3711*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3712*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getPintMetric()}.
3713*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3714*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 56
3715*0e209d39SAndroid Build Coastguard Worker      */
3716*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createPintMetric(UErrorCode &status);
3717*0e209d39SAndroid Build Coastguard Worker 
3718*0e209d39SAndroid Build Coastguard Worker     /**
3719*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: pint-metric.
3720*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createPintMetric()}.
3721*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3722*0e209d39SAndroid Build Coastguard Worker      */
3723*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getPintMetric();
3724*0e209d39SAndroid Build Coastguard Worker 
3725*0e209d39SAndroid Build Coastguard Worker     /**
3726*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: quart.
3727*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3728*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getQuart()}.
3729*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3730*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
3731*0e209d39SAndroid Build Coastguard Worker      */
3732*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createQuart(UErrorCode &status);
3733*0e209d39SAndroid Build Coastguard Worker 
3734*0e209d39SAndroid Build Coastguard Worker     /**
3735*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: quart.
3736*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createQuart()}.
3737*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3738*0e209d39SAndroid Build Coastguard Worker      */
3739*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getQuart();
3740*0e209d39SAndroid Build Coastguard Worker 
3741*0e209d39SAndroid Build Coastguard Worker     /**
3742*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: quart-imperial.
3743*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3744*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getQuartImperial()}.
3745*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3746*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 68
3747*0e209d39SAndroid Build Coastguard Worker      */
3748*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createQuartImperial(UErrorCode &status);
3749*0e209d39SAndroid Build Coastguard Worker 
3750*0e209d39SAndroid Build Coastguard Worker     /**
3751*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: quart-imperial.
3752*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createQuartImperial()}.
3753*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 68
3754*0e209d39SAndroid Build Coastguard Worker      */
3755*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getQuartImperial();
3756*0e209d39SAndroid Build Coastguard Worker 
3757*0e209d39SAndroid Build Coastguard Worker     /**
3758*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: tablespoon.
3759*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3760*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getTablespoon()}.
3761*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3762*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
3763*0e209d39SAndroid Build Coastguard Worker      */
3764*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createTablespoon(UErrorCode &status);
3765*0e209d39SAndroid Build Coastguard Worker 
3766*0e209d39SAndroid Build Coastguard Worker     /**
3767*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: tablespoon.
3768*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createTablespoon()}.
3769*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3770*0e209d39SAndroid Build Coastguard Worker      */
3771*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getTablespoon();
3772*0e209d39SAndroid Build Coastguard Worker 
3773*0e209d39SAndroid Build Coastguard Worker     /**
3774*0e209d39SAndroid Build Coastguard Worker      * Returns by pointer, unit of volume: teaspoon.
3775*0e209d39SAndroid Build Coastguard Worker      * Caller owns returned value and must free it.
3776*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #getTeaspoon()}.
3777*0e209d39SAndroid Build Coastguard Worker      * @param status ICU error code.
3778*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 54
3779*0e209d39SAndroid Build Coastguard Worker      */
3780*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *createTeaspoon(UErrorCode &status);
3781*0e209d39SAndroid Build Coastguard Worker 
3782*0e209d39SAndroid Build Coastguard Worker     /**
3783*0e209d39SAndroid Build Coastguard Worker      * Returns by value, unit of volume: teaspoon.
3784*0e209d39SAndroid Build Coastguard Worker      * Also see {@link #createTeaspoon()}.
3785*0e209d39SAndroid Build Coastguard Worker      * @stable ICU 64
3786*0e209d39SAndroid Build Coastguard Worker      */
3787*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit getTeaspoon();
3788*0e209d39SAndroid Build Coastguard Worker 
3789*0e209d39SAndroid Build Coastguard Worker // End generated createXXX methods
3790*0e209d39SAndroid Build Coastguard Worker 
3791*0e209d39SAndroid Build Coastguard Worker  protected:
3792*0e209d39SAndroid Build Coastguard Worker 
3793*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_INTERNAL_API
3794*0e209d39SAndroid Build Coastguard Worker     /**
3795*0e209d39SAndroid Build Coastguard Worker      * For ICU use only.
3796*0e209d39SAndroid Build Coastguard Worker      * @internal
3797*0e209d39SAndroid Build Coastguard Worker      */
3798*0e209d39SAndroid Build Coastguard Worker     void initTime(const char *timeId);
3799*0e209d39SAndroid Build Coastguard Worker 
3800*0e209d39SAndroid Build Coastguard Worker     /**
3801*0e209d39SAndroid Build Coastguard Worker      * For ICU use only.
3802*0e209d39SAndroid Build Coastguard Worker      * @internal
3803*0e209d39SAndroid Build Coastguard Worker      */
3804*0e209d39SAndroid Build Coastguard Worker     void initCurrency(StringPiece isoCurrency);
3805*0e209d39SAndroid Build Coastguard Worker 
3806*0e209d39SAndroid Build Coastguard Worker #endif  /* U_HIDE_INTERNAL_API */
3807*0e209d39SAndroid Build Coastguard Worker 
3808*0e209d39SAndroid Build Coastguard Worker private:
3809*0e209d39SAndroid Build Coastguard Worker 
3810*0e209d39SAndroid Build Coastguard Worker     // Used by new draft APIs in ICU 67. If non-null, fImpl is owned by the
3811*0e209d39SAndroid Build Coastguard Worker     // MeasureUnit.
3812*0e209d39SAndroid Build Coastguard Worker     MeasureUnitImpl* fImpl;
3813*0e209d39SAndroid Build Coastguard Worker 
3814*0e209d39SAndroid Build Coastguard Worker     // An index into a static string list in measunit.cpp. If set to -1, fImpl
3815*0e209d39SAndroid Build Coastguard Worker     // is in use instead of fTypeId and fSubTypeId.
3816*0e209d39SAndroid Build Coastguard Worker     int16_t fSubTypeId;
3817*0e209d39SAndroid Build Coastguard Worker     // An index into a static string list in measunit.cpp. If set to -1, fImpl
3818*0e209d39SAndroid Build Coastguard Worker     // is in use instead of fTypeId and fSubTypeId.
3819*0e209d39SAndroid Build Coastguard Worker     int8_t fTypeId;
3820*0e209d39SAndroid Build Coastguard Worker 
3821*0e209d39SAndroid Build Coastguard Worker     MeasureUnit(int32_t typeId, int32_t subTypeId);
3822*0e209d39SAndroid Build Coastguard Worker     MeasureUnit(MeasureUnitImpl&& impl);
3823*0e209d39SAndroid Build Coastguard Worker     void setTo(int32_t typeId, int32_t subTypeId);
3824*0e209d39SAndroid Build Coastguard Worker     static MeasureUnit *create(int typeId, int subTypeId, UErrorCode &status);
3825*0e209d39SAndroid Build Coastguard Worker 
3826*0e209d39SAndroid Build Coastguard Worker     /**
3827*0e209d39SAndroid Build Coastguard Worker      * Sets output's typeId and subTypeId according to subType, if subType is a
3828*0e209d39SAndroid Build Coastguard Worker      * valid/known identifier.
3829*0e209d39SAndroid Build Coastguard Worker      *
3830*0e209d39SAndroid Build Coastguard Worker      * @return Whether subType is known to ICU. If false, output was not
3831*0e209d39SAndroid Build Coastguard Worker      * modified.
3832*0e209d39SAndroid Build Coastguard Worker      */
3833*0e209d39SAndroid Build Coastguard Worker     static bool findBySubType(StringPiece subType, MeasureUnit* output);
3834*0e209d39SAndroid Build Coastguard Worker 
3835*0e209d39SAndroid Build Coastguard Worker     /** Internal version of public API */
3836*0e209d39SAndroid Build Coastguard Worker     LocalArray<MeasureUnit> splitToSingleUnitsImpl(int32_t& outCount, UErrorCode& status) const;
3837*0e209d39SAndroid Build Coastguard Worker 
3838*0e209d39SAndroid Build Coastguard Worker     friend class MeasureUnitImpl;
3839*0e209d39SAndroid Build Coastguard Worker 
3840*0e209d39SAndroid Build Coastguard Worker     // For access to findBySubType
3841*0e209d39SAndroid Build Coastguard Worker     friend class number::impl::LongNameHandler;
3842*0e209d39SAndroid Build Coastguard Worker };
3843*0e209d39SAndroid Build Coastguard Worker 
3844*0e209d39SAndroid Build Coastguard Worker // inline impl of @stable ICU 68 method
3845*0e209d39SAndroid Build Coastguard Worker inline std::pair<LocalArray<MeasureUnit>, int32_t>
splitToSingleUnits(UErrorCode & status)3846*0e209d39SAndroid Build Coastguard Worker MeasureUnit::splitToSingleUnits(UErrorCode& status) const {
3847*0e209d39SAndroid Build Coastguard Worker     int32_t length;
3848*0e209d39SAndroid Build Coastguard Worker     auto array = splitToSingleUnitsImpl(length, status);
3849*0e209d39SAndroid Build Coastguard Worker     return std::make_pair(std::move(array), length);
3850*0e209d39SAndroid Build Coastguard Worker }
3851*0e209d39SAndroid Build Coastguard Worker 
3852*0e209d39SAndroid Build Coastguard Worker U_NAMESPACE_END
3853*0e209d39SAndroid Build Coastguard Worker 
3854*0e209d39SAndroid Build Coastguard Worker #endif // !UNCONFIG_NO_FORMATTING
3855*0e209d39SAndroid Build Coastguard Worker 
3856*0e209d39SAndroid Build Coastguard Worker #endif /* U_SHOW_CPLUSPLUS_API */
3857*0e209d39SAndroid Build Coastguard Worker 
3858*0e209d39SAndroid Build Coastguard Worker #endif // __MEASUREUNIT_H__
3859