ICU 57.1 57.1
measunit.h
Go to the documentation of this file.
1/*
2**********************************************************************
3* Copyright (c) 2004-2016, International Business Machines
4* Corporation and others. All Rights Reserved.
5**********************************************************************
6* Author: Alan Liu
7* Created: April 26, 2004
8* Since: ICU 3.0
9**********************************************************************
10*/
11#ifndef __MEASUREUNIT_H__
12#define __MEASUREUNIT_H__
13
14#include "unicode/utypes.h"
15
16#if !UCONFIG_NO_FORMATTING
17
18#include "unicode/unistr.h"
19
26
28
37 public:
38
43 MeasureUnit() : fTypeId(0), fSubTypeId(0) {
44 fCurrency[0] = 0;
45 }
46
51 MeasureUnit(const MeasureUnit &other);
52
58
64 virtual UObject* clone() const;
65
70 virtual ~MeasureUnit();
71
77 virtual UBool operator==(const UObject& other) const;
78
84 UBool operator!=(const UObject& other) const {
85 return !(*this == other);
86 }
87
92 const char *getType() const;
93
98 const char *getSubtype() const;
99
111 static int32_t getAvailable(
112 MeasureUnit *destArray,
113 int32_t destCapacity,
114 UErrorCode &errorCode);
115
128 static int32_t getAvailable(
129 const char *type,
130 MeasureUnit *destArray,
131 int32_t destCapacity,
132 UErrorCode &errorCode);
133
143
155 static UClassID U_EXPORT2 getStaticClassID(void);
156
168 virtual UClassID getDynamicClassID(void) const;
169
170#ifndef U_HIDE_INTERNAL_API
177 int32_t getIndex() const;
178
184 static int32_t getIndexCount();
185
192 static int32_t internalGetIndexForTypeAndSubtype(const char *type, const char *subtype);
193
199 const MeasureUnit &unit, const MeasureUnit &perUnit);
200#endif /* U_HIDE_INTERNAL_API */
201
202// All code between the "Start generated createXXX methods" comment and
203// the "End generated createXXX methods" comment is auto generated code
204// and must not be edited manually. For instructions on how to correctly
205// update this code, refer to:
206// http://site.icu-project.org/design/formatting/measureformat/updating-measure-unit
207//
208// Start generated createXXX methods
209
217
225
233
241
249
257
258#ifndef U_HIDE_DRAFT_API
266#endif /* U_HIDE_DRAFT_API */
267
275
283
291
299
307
315
323
331
339
347
348#ifndef U_HIDE_DRAFT_API
356#endif /* U_HIDE_DRAFT_API */
357
358#ifndef U_HIDE_DRAFT_API
366#endif /* U_HIDE_DRAFT_API */
367
368#ifndef U_HIDE_DRAFT_API
376#endif /* U_HIDE_DRAFT_API */
377
378#ifndef U_HIDE_DRAFT_API
386#endif /* U_HIDE_DRAFT_API */
387
395
403
404#ifndef U_HIDE_DRAFT_API
412#endif /* U_HIDE_DRAFT_API */
413
421
429
437
445
453
461
469
477
485
493
494#ifndef U_HIDE_DRAFT_API
502#endif /* U_HIDE_DRAFT_API */
503
511
519
527
535
543
551
559
567
575
583
591
599
607
615
623
631
639
647
655
663
671
679
687
695
703
711
719
727
735
743
751
759
767
775
783
791
792#ifndef U_HIDE_DRAFT_API
800#endif /* U_HIDE_DRAFT_API */
801
809
817
825
833
841
849
857
865
873
881
889
897
905
913
921
929
937
945
953
961
969
977
985
993
1001
1009
1017
1025
1033
1041
1042#ifndef U_HIDE_DRAFT_API
1050#endif /* U_HIDE_DRAFT_API */
1051
1059
1067
1075
1083
1084#ifndef U_HIDE_DRAFT_API
1092#endif /* U_HIDE_DRAFT_API */
1093
1101
1109
1117
1125
1133
1141
1149
1157
1165
1173
1181
1189
1190#ifndef U_HIDE_DRAFT_API
1198#endif /* U_HIDE_DRAFT_API */
1199
1207
1215
1223
1224#ifndef U_HIDE_DRAFT_API
1232#endif /* U_HIDE_DRAFT_API */
1233
1241
1249
1257
1265
1273
1274#ifndef U_HIDE_DRAFT_API
1282#endif /* U_HIDE_DRAFT_API */
1283
1291
1299
1307
1308
1309// End generated createXXX methods
1310
1311 protected:
1312
1313#ifndef U_HIDE_INTERNAL_API
1318 void initTime(const char *timeId);
1319
1324 void initCurrency(const char *isoCurrency);
1325
1326#endif /* U_HIDE_INTERNAL_API */
1327
1328private:
1329 int32_t fTypeId;
1330 int32_t fSubTypeId;
1331 char fCurrency[4];
1332
1333 MeasureUnit(int32_t typeId, int32_t subTypeId) : fTypeId(typeId), fSubTypeId(subTypeId) {
1334 fCurrency[0] = 0;
1335 }
1336 void setTo(int32_t typeId, int32_t subTypeId);
1337 int32_t getOffset() const;
1338 static MeasureUnit *create(int typeId, int subTypeId, UErrorCode &status);
1339};
1340
1342
1343#endif // !UNCONFIG_NO_FORMATTING
1344#endif // __MEASUREUNIT_H__
A unit such as length, mass, volume, currency, etc.
Definition: measunit.h:36
static MeasureUnit * createCubicFoot(UErrorCode &status)
Returns unit of volume: cubic-foot.
static MeasureUnit * createOunceTroy(UErrorCode &status)
Returns unit of mass: ounce-troy.
static MeasureUnit * createKilohertz(UErrorCode &status)
Returns unit of frequency: kilohertz.
static MeasureUnit * createCubicCentimeter(UErrorCode &status)
Returns unit of volume: cubic-centimeter.
static MeasureUnit * createGForce(UErrorCode &status)
Returns unit of acceleration: g-force.
static MeasureUnit * createMinute(UErrorCode &status)
Returns unit of duration: minute.
static MeasureUnit * createArcSecond(UErrorCode &status)
Returns unit of angle: arc-second.
static MeasureUnit * createCarat(UErrorCode &status)
Returns unit of mass: carat.
virtual UObject * clone() const
Returns a polymorphic clone of this object.
static MeasureUnit * createKilowatt(UErrorCode &status)
Returns unit of power: kilowatt.
static MeasureUnit * createKnot(UErrorCode &status)
Returns unit of speed: knot.
static MeasureUnit * createJoule(UErrorCode &status)
Returns unit of energy: joule.
static MeasureUnit * createPoundPerSquareInch(UErrorCode &status)
Returns unit of pressure: pound-per-square-inch.
static MeasureUnit * createMillimolePerLiter(UErrorCode &status)
Returns unit of concentr: millimole-per-liter.
static MeasureUnit * createWatt(UErrorCode &status)
Returns unit of power: watt.
static MeasureUnit * createSquareMile(UErrorCode &status)
Returns unit of area: square-mile.
static MeasureUnit * createLightYear(UErrorCode &status)
Returns unit of length: light-year.
static MeasureUnit * createLux(UErrorCode &status)
Returns unit of light: lux.
static MeasureUnit * createMegawatt(UErrorCode &status)
Returns unit of power: megawatt.
static MeasureUnit * createCalorie(UErrorCode &status)
Returns unit of energy: calorie.
static MeasureUnit * createMeterPerSecond(UErrorCode &status)
Returns unit of speed: meter-per-second.
static MeasureUnit * createMicrogram(UErrorCode &status)
Returns unit of mass: microgram.
static MeasureUnit * createGigahertz(UErrorCode &status)
Returns unit of frequency: gigahertz.
static MeasureUnit * createFluidOunce(UErrorCode &status)
Returns unit of volume: fluid-ounce.
static MeasureUnit * createFahrenheit(UErrorCode &status)
Returns unit of temperature: fahrenheit.
static int32_t getAvailable(MeasureUnit *destArray, int32_t destCapacity, UErrorCode &errorCode)
getAvailable gets all of the available units.
static MeasureUnit * createSecond(UErrorCode &status)
Returns unit of duration: second.
static MeasureUnit * createNauticalMile(UErrorCode &status)
Returns unit of length: nautical-mile.
static MeasureUnit * createMillimeter(UErrorCode &status)
Returns unit of length: millimeter.
static MeasureUnit * createBushel(UErrorCode &status)
Returns unit of volume: bushel.
static MeasureUnit * createFoot(UErrorCode &status)
Returns unit of length: foot.
static MeasureUnit * createHertz(UErrorCode &status)
Returns unit of frequency: hertz.
MeasureUnit(const MeasureUnit &other)
Copy constructor.
static MeasureUnit * createGigabit(UErrorCode &status)
Returns unit of digital: gigabit.
static MeasureUnit * createHectoliter(UErrorCode &status)
Returns unit of volume: hectoliter.
static MeasureUnit * createWeek(UErrorCode &status)
Returns unit of duration: week.
static MeasureUnit * createGigabyte(UErrorCode &status)
Returns unit of digital: gigabyte.
static MeasureUnit * createMilePerGallon(UErrorCode &status)
Returns unit of consumption: mile-per-gallon.
static MeasureUnit * createAstronomicalUnit(UErrorCode &status)
Returns unit of length: astronomical-unit.
static MeasureUnit * createLiter(UErrorCode &status)
Returns unit of volume: liter.
const char * getType() const
Get the type.
static MeasureUnit * createCupMetric(UErrorCode &status)
Returns unit of volume: cup-metric.
void initCurrency(const char *isoCurrency)
For ICU use only.
static MeasureUnit * createInch(UErrorCode &status)
Returns unit of length: inch.
static MeasureUnit * createCubicYard(UErrorCode &status)
Returns unit of volume: cubic-yard.
static MeasureUnit * createKilobit(UErrorCode &status)
Returns unit of digital: kilobit.
static MeasureUnit * createSquareInch(UErrorCode &status)
Returns unit of area: square-inch.
static MeasureUnit * createMegaliter(UErrorCode &status)
Returns unit of volume: megaliter.
static MeasureUnit * createOhm(UErrorCode &status)
Returns unit of electric: ohm.
static MeasureUnit * createGigawatt(UErrorCode &status)
Returns unit of power: gigawatt.
static MeasureUnit * createKilowattHour(UErrorCode &status)
Returns unit of energy: kilowatt-hour.
static MeasureUnit * createKelvin(UErrorCode &status)
Returns unit of temperature: kelvin.
static MeasureUnit * createGallon(UErrorCode &status)
Returns unit of volume: gallon.
static MeasureUnit * createMicrosecond(UErrorCode &status)
Returns unit of duration: microsecond.
static MeasureUnit * createArcMinute(UErrorCode &status)
Returns unit of angle: arc-minute.
void initTime(const char *timeId)
For ICU use only.
static MeasureUnit * createLiterPer100Kilometers(UErrorCode &status)
Returns unit of consumption: liter-per-100kilometers.
static MeasureUnit * createKilojoule(UErrorCode &status)
Returns unit of energy: kilojoule.
static MeasureUnit * createMegahertz(UErrorCode &status)
Returns unit of frequency: megahertz.
static MeasureUnit * createCelsius(UErrorCode &status)
Returns unit of temperature: celsius.
static MeasureUnit * createKilocalorie(UErrorCode &status)
Returns unit of energy: kilocalorie.
static MeasureUnit * createMilliampere(UErrorCode &status)
Returns unit of electric: milliampere.
static MeasureUnit * createPound(UErrorCode &status)
Returns unit of mass: pound.
static MeasureUnit * createMillibar(UErrorCode &status)
Returns unit of pressure: millibar.
static MeasureUnit * createSquareMeter(UErrorCode &status)
Returns unit of area: square-meter.
static MeasureUnit * createKilometerPerHour(UErrorCode &status)
Returns unit of speed: kilometer-per-hour.
static MeasureUnit * createDeciliter(UErrorCode &status)
Returns unit of volume: deciliter.
static MeasureUnit * createMegabit(UErrorCode &status)
Returns unit of digital: megabit.
virtual ~MeasureUnit()
Destructor.
static MeasureUnit * createMilliwatt(UErrorCode &status)
Returns unit of power: milliwatt.
static MeasureUnit * createCup(UErrorCode &status)
Returns unit of volume: cup.
static MeasureUnit * createCubicMile(UErrorCode &status)
Returns unit of volume: cubic-mile.
static MeasureUnit * createMilliliter(UErrorCode &status)
Returns unit of volume: milliliter.
UBool operator!=(const UObject &other) const
Inequality operator.
Definition: measunit.h:84
int32_t getIndex() const
ICU use only.
static MeasureUnit * createByte(UErrorCode &status)
Returns unit of digital: byte.
static MeasureUnit * createStone(UErrorCode &status)
Returns unit of mass: stone.
static MeasureUnit * createSquareYard(UErrorCode &status)
Returns unit of area: square-yard.
static MeasureUnit * createMegabyte(UErrorCode &status)
Returns unit of digital: megabyte.
static MeasureUnit * createGallonImperial(UErrorCode &status)
Returns unit of volume: gallon-imperial.
static MeasureUnit * createMillisecond(UErrorCode &status)
Returns unit of duration: millisecond.
static MeasureUnit * createTeaspoon(UErrorCode &status)
Returns unit of volume: teaspoon.
static MeasureUnit * createQuart(UErrorCode &status)
Returns unit of volume: quart.
static MeasureUnit * createMilligram(UErrorCode &status)
Returns unit of mass: milligram.
static MeasureUnit * createCubicMeter(UErrorCode &status)
Returns unit of volume: cubic-meter.
virtual UBool operator==(const UObject &other) const
Equality operator.
static MeasureUnit * createKilobyte(UErrorCode &status)
Returns unit of digital: kilobyte.
static StringEnumeration * getAvailableTypes(UErrorCode &errorCode)
getAvailableTypes gets all of the available types.
static MeasureUnit * createLiterPerKilometer(UErrorCode &status)
Returns unit of consumption: liter-per-kilometer.
static MeasureUnit * createPint(UErrorCode &status)
Returns unit of volume: pint.
MeasureUnit()
Default constructor.
Definition: measunit.h:43
static MeasureUnit * createMonth(UErrorCode &status)
Returns unit of duration: month.
static MeasureUnit * createSquareFoot(UErrorCode &status)
Returns unit of area: square-foot.
static MeasureUnit * createMilePerHour(UErrorCode &status)
Returns unit of speed: mile-per-hour.
const char * getSubtype() const
Get the sub type.
static MeasureUnit * createPicometer(UErrorCode &status)
Returns unit of length: picometer.
static MeasureUnit * createMeter(UErrorCode &status)
Returns unit of length: meter.
static MeasureUnit * createMileScandinavian(UErrorCode &status)
Returns unit of length: mile-scandinavian.
static MeasureUnit * createAmpere(UErrorCode &status)
Returns unit of electric: ampere.
static MeasureUnit * createTablespoon(UErrorCode &status)
Returns unit of volume: tablespoon.
static MeasureUnit * createFathom(UErrorCode &status)
Returns unit of length: fathom.
static MeasureUnit * createMillimeterOfMercury(UErrorCode &status)
Returns unit of pressure: millimeter-of-mercury.
static MeasureUnit * createNanometer(UErrorCode &status)
Returns unit of length: nanometer.
virtual UClassID getDynamicClassID(void) const
Returns a unique class ID POLYMORPHICALLY.
static MeasureUnit * createRadian(UErrorCode &status)
Returns unit of angle: radian.
static MeasureUnit * createMetricTon(UErrorCode &status)
Returns unit of mass: metric-ton.
static MeasureUnit * createAcreFoot(UErrorCode &status)
Returns unit of volume: acre-foot.
static MeasureUnit * createBit(UErrorCode &status)
Returns unit of digital: bit.
static MeasureUnit * createFurlong(UErrorCode &status)
Returns unit of length: furlong.
static MeasureUnit * createRevolutionAngle(UErrorCode &status)
Returns unit of angle: revolution.
static MeasureUnit * createVolt(UErrorCode &status)
Returns unit of electric: volt.
static MeasureUnit * createGenericTemperature(UErrorCode &status)
Returns unit of temperature: generic.
static MeasureUnit * createYard(UErrorCode &status)
Returns unit of length: yard.
static MeasureUnit * createMilePerGallonImperial(UErrorCode &status)
Returns unit of consumption: mile-per-gallon-imperial.
static MeasureUnit * createAcre(UErrorCode &status)
Returns unit of area: acre.
static MeasureUnit * createCubicInch(UErrorCode &status)
Returns unit of volume: cubic-inch.
static MeasureUnit * createDecimeter(UErrorCode &status)
Returns unit of length: decimeter.
static MeasureUnit * createHectopascal(UErrorCode &status)
Returns unit of pressure: hectopascal.
static MeasureUnit * createTerabyte(UErrorCode &status)
Returns unit of digital: terabyte.
static int32_t getAvailable(const char *type, MeasureUnit *destArray, int32_t destCapacity, UErrorCode &errorCode)
getAvailable gets all of the available units for a specific type.
static MeasureUnit * createMeterPerSecondSquared(UErrorCode &status)
Returns unit of acceleration: meter-per-second-squared.
static MeasureUnit * createNanosecond(UErrorCode &status)
Returns unit of duration: nanosecond.
static UClassID getStaticClassID(void)
Return the class ID for this class.
static MeasureUnit * createDay(UErrorCode &status)
Returns unit of duration: day.
static int32_t internalGetIndexForTypeAndSubtype(const char *type, const char *subtype)
ICU use only.
static MeasureUnit * createOunce(UErrorCode &status)
Returns unit of mass: ounce.
static MeasureUnit * createSquareCentimeter(UErrorCode &status)
Returns unit of area: square-centimeter.
static MeasureUnit * createCentury(UErrorCode &status)
Returns unit of duration: century.
static MeasureUnit * createMicrometer(UErrorCode &status)
Returns unit of length: micrometer.
static MeasureUnit * createKilometer(UErrorCode &status)
Returns unit of length: kilometer.
static MeasureUnit * createCentiliter(UErrorCode &status)
Returns unit of volume: centiliter.
static MeasureUnit * createKarat(UErrorCode &status)
Returns unit of concentr: karat.
static MeasureUnit * createMilligramPerDeciliter(UErrorCode &status)
Returns unit of concentr: milligram-per-deciliter.
static MeasureUnit * createParsec(UErrorCode &status)
Returns unit of length: parsec.
static MeasureUnit * createYear(UErrorCode &status)
Returns unit of duration: year.
static int32_t getIndexCount()
ICU use only.
static MeasureUnit * createMile(UErrorCode &status)
Returns unit of length: mile.
static MeasureUnit * createInchHg(UErrorCode &status)
Returns unit of pressure: inch-hg.
static MeasureUnit * createSquareKilometer(UErrorCode &status)
Returns unit of area: square-kilometer.
static MeasureUnit * createPintMetric(UErrorCode &status)
Returns unit of volume: pint-metric.
MeasureUnit & operator=(const MeasureUnit &other)
Assignment operator.
static MeasureUnit * createGram(UErrorCode &status)
Returns unit of mass: gram.
static MeasureUnit * createCubicKilometer(UErrorCode &status)
Returns unit of volume: cubic-kilometer.
static MeasureUnit * createTerabit(UErrorCode &status)
Returns unit of digital: terabit.
static MeasureUnit * createFoodcalorie(UErrorCode &status)
Returns unit of energy: foodcalorie.
static MeasureUnit * createCentimeter(UErrorCode &status)
Returns unit of length: centimeter.
static MeasureUnit * createHectare(UErrorCode &status)
Returns unit of area: hectare.
static MeasureUnit * resolveUnitPerUnit(const MeasureUnit &unit, const MeasureUnit &perUnit)
ICU use only.
static MeasureUnit * createHorsepower(UErrorCode &status)
Returns unit of power: horsepower.
static MeasureUnit * createHour(UErrorCode &status)
Returns unit of duration: hour.
static MeasureUnit * createTon(UErrorCode &status)
Returns unit of mass: ton.
static MeasureUnit * createKilogram(UErrorCode &status)
Returns unit of mass: kilogram.
static MeasureUnit * createPartPerMillion(UErrorCode &status)
Returns unit of concentr: part-per-million.
static MeasureUnit * createDegree(UErrorCode &status)
Returns unit of angle: degree.
Base class for 'pure' C++ implementations of uenum api.
Definition: strenum.h:55
UObject is the common ICU "boilerplate" class.
Definition: uobject.h:221
int8_t UBool
The ICU boolean type.
Definition: umachine.h:234
C++ API: Unicode String.
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
Definition: uobject.h:91
Basic definitions for ICU, for both C and C++ APIs.
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers,...
Definition: utypes.h:476
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside.
Definition: utypes.h:358
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition: uversion.h:130
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition: uversion.h:129