ICU 62.1 62.1
measunit.h
Go to the documentation of this file.
1// © 2016 and later: Unicode, Inc. and others.
2// License & terms of use: http://www.unicode.org/copyright.html
3/*
4**********************************************************************
5* Copyright (c) 2004-2016, International Business Machines
6* Corporation and others. All Rights Reserved.
7**********************************************************************
8* Author: Alan Liu
9* Created: April 26, 2004
10* Since: ICU 3.0
11**********************************************************************
12*/
13#ifndef __MEASUREUNIT_H__
14#define __MEASUREUNIT_H__
15
16#include "unicode/utypes.h"
17
18#if !UCONFIG_NO_FORMATTING
19
20#include "unicode/unistr.h"
21
28
29class StringEnumeration;
30
39 public:
40
47
53
59
65 virtual UObject* clone() const;
66
71 virtual ~MeasureUnit();
72
78 virtual UBool operator==(const UObject& other) const;
79
85 UBool operator!=(const UObject& other) const {
86 return !(*this == other);
87 }
88
93 const char *getType() const;
94
99 const char *getSubtype() const;
100
112 static int32_t getAvailable(
114 int32_t destCapacity,
115 UErrorCode &errorCode);
116
129 static int32_t getAvailable(
130 const char *type,
132 int32_t destCapacity,
133 UErrorCode &errorCode);
134
144
157
169 virtual UClassID getDynamicClassID(void) const;
170
171#ifndef U_HIDE_INTERNAL_API
178 int32_t getIndex() const;
179
185 static int32_t getIndexCount();
186
193 static int32_t internalGetIndexForTypeAndSubtype(const char *type, const char *subtype);
194
200 const MeasureUnit &unit, const MeasureUnit &perUnit, bool* isResolved);
201#endif /* U_HIDE_INTERNAL_API */
202
203// All code between the "Start generated createXXX methods" comment and
204// the "End generated createXXX methods" comment is auto generated code
205// and must not be edited manually. For instructions on how to correctly
206// update this code, refer to:
207// http://site.icu-project.org/design/formatting/measureformat/updating-measure-unit
208//
209// Start generated createXXX methods
210
218
226
234
242
250
258
266
274
282
290
298
306
314
322
330
338
346
354
362
370
378
386
394
402
410
418
426
434
442
450
458
466
474
482
490
498
506
514
522
530
538
546
554
562
570
578
586
594
602
610
618
626
634
642
650
658
666
674
682
690
698
706
714
722
730
738
746
754
762
770
778
786
794
802
810
818
826
834
842
850
858
866
874
882
890
898
906
914
922
930
938
946
954
962
970
978
986
994
1002
1010
1018
1026
1034
1042
1050
1058
1066
1074
1082
1090
1098
1106
1114
1122
1130
1138
1146
1154
1162
1170
1178
1186
1194
1202
1210
1218
1226
1234
1242
1250
1258
1266
1274
1282
1290
1291
1292// End generated createXXX methods
1293
1294 protected:
1295
1296#ifndef U_HIDE_INTERNAL_API
1301 void initTime(const char *timeId);
1302
1307 void initCurrency(const char *isoCurrency);
1308
1313 void initNoUnit(const char *subtype);
1314
1315#endif /* U_HIDE_INTERNAL_API */
1316
1317private:
1318 int32_t fTypeId;
1319 int32_t fSubTypeId;
1320 char fCurrency[4];
1321
1322 MeasureUnit(int32_t typeId, int32_t subTypeId) : fTypeId(typeId), fSubTypeId(subTypeId) {
1323 fCurrency[0] = 0;
1324 }
1325 void setTo(int32_t typeId, int32_t subTypeId);
1326 int32_t getOffset() const;
1327 static MeasureUnit *create(int typeId, int subTypeId, UErrorCode &status);
1328};
1329
1331
1332#endif // !UNCONFIG_NO_FORMATTING
1333#endif // __MEASUREUNIT_H__
"Smart pointer" base class; do not use directly: use LocalPointer etc.
A unit such as length, mass, volume, currency, etc.
Definition measunit.h:38
static MeasureUnit * createMeterPerSecondSquared(UErrorCode &status)
Returns unit of acceleration: meter-per-second-squared.
static MeasureUnit * createMillibar(UErrorCode &status)
Returns unit of pressure: millibar.
static MeasureUnit * createArcMinute(UErrorCode &status)
Returns unit of angle: arc-minute.
static MeasureUnit * createKilowattHour(UErrorCode &status)
Returns unit of energy: kilowatt-hour.
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 * createKilobyte(UErrorCode &status)
Returns unit of digital: kilobyte.
static MeasureUnit * createCubicFoot(UErrorCode &status)
Returns unit of volume: cubic-foot.
static MeasureUnit * createQuart(UErrorCode &status)
Returns unit of volume: quart.
static MeasureUnit * createLightYear(UErrorCode &status)
Returns unit of length: light-year.
static MeasureUnit * createNanometer(UErrorCode &status)
Returns unit of length: nanometer.
static int32_t internalGetIndexForTypeAndSubtype(const char *type, const char *subtype)
ICU use only.
static MeasureUnit * createKarat(UErrorCode &status)
Returns unit of concentr: karat.
static MeasureUnit * createOhm(UErrorCode &status)
Returns unit of electric: ohm.
static MeasureUnit * createStone(UErrorCode &status)
Returns unit of mass: stone.
static MeasureUnit * createAcreFoot(UErrorCode &status)
Returns unit of volume: acre-foot.
static MeasureUnit * createHertz(UErrorCode &status)
Returns unit of frequency: hertz.
static MeasureUnit * createVolt(UErrorCode &status)
Returns unit of electric: volt.
static MeasureUnit * createSquareKilometer(UErrorCode &status)
Returns unit of area: square-kilometer.
static MeasureUnit * createGenericTemperature(UErrorCode &status)
Returns unit of temperature: generic.
static MeasureUnit * createCup(UErrorCode &status)
Returns unit of volume: cup.
static UClassID getStaticClassID(void)
Return the class ID for this class.
virtual UObject * clone() const
Returns a polymorphic clone of this object.
static MeasureUnit * createMileScandinavian(UErrorCode &status)
Returns unit of length: mile-scandinavian.
static MeasureUnit * createInchHg(UErrorCode &status)
Returns unit of pressure: inch-hg.
static MeasureUnit * createMilePerGallonImperial(UErrorCode &status)
Returns unit of consumption: mile-per-gallon-imperial.
static MeasureUnit * createTerabit(UErrorCode &status)
Returns unit of digital: terabit.
static MeasureUnit * createYear(UErrorCode &status)
Returns unit of duration: year.
static MeasureUnit * createMile(UErrorCode &status)
Returns unit of length: mile.
static MeasureUnit * createMonth(UErrorCode &status)
Returns unit of duration: month.
static MeasureUnit * createMilliampere(UErrorCode &status)
Returns unit of electric: milliampere.
static MeasureUnit * createMegabit(UErrorCode &status)
Returns unit of digital: megabit.
static MeasureUnit * createPintMetric(UErrorCode &status)
Returns unit of volume: pint-metric.
static MeasureUnit * createOunce(UErrorCode &status)
Returns unit of mass: ounce.
static int32_t getAvailable(MeasureUnit *destArray, int32_t destCapacity, UErrorCode &errorCode)
getAvailable gets all of the available units.
static MeasureUnit * createKilohertz(UErrorCode &status)
Returns unit of frequency: kilohertz.
static MeasureUnit * createMilliwatt(UErrorCode &status)
Returns unit of power: milliwatt.
static MeasureUnit * createMicrosecond(UErrorCode &status)
Returns unit of duration: microsecond.
MeasureUnit(const MeasureUnit &other)
Copy constructor.
static MeasureUnit * createCarat(UErrorCode &status)
Returns unit of mass: carat.
static MeasureUnit * createGigabyte(UErrorCode &status)
Returns unit of digital: gigabyte.
static MeasureUnit * createGigabit(UErrorCode &status)
Returns unit of digital: gigabit.
static MeasureUnit * createParsec(UErrorCode &status)
Returns unit of length: parsec.
static MeasureUnit * createLux(UErrorCode &status)
Returns unit of light: lux.
static MeasureUnit * createWeek(UErrorCode &status)
Returns unit of duration: week.
static MeasureUnit * createJoule(UErrorCode &status)
Returns unit of energy: joule.
virtual UBool operator==(const UObject &other) const
Equality operator.
void initCurrency(const char *isoCurrency)
For ICU use only.
static MeasureUnit * createMilliliter(UErrorCode &status)
Returns unit of volume: milliliter.
static MeasureUnit * createHour(UErrorCode &status)
Returns unit of duration: hour.
void initNoUnit(const char *subtype)
For ICU use only.
static MeasureUnit * createBit(UErrorCode &status)
Returns unit of digital: bit.
static MeasureUnit * createCubicYard(UErrorCode &status)
Returns unit of volume: cubic-yard.
static MeasureUnit * createCalorie(UErrorCode &status)
Returns unit of energy: calorie.
static MeasureUnit * createFahrenheit(UErrorCode &status)
Returns unit of temperature: fahrenheit.
static MeasureUnit resolveUnitPerUnit(const MeasureUnit &unit, const MeasureUnit &perUnit, bool *isResolved)
ICU use only.
static MeasureUnit * createDay(UErrorCode &status)
Returns unit of duration: day.
static MeasureUnit * createDeciliter(UErrorCode &status)
Returns unit of volume: deciliter.
static MeasureUnit * createHectare(UErrorCode &status)
Returns unit of area: hectare.
static MeasureUnit * createMinute(UErrorCode &status)
Returns unit of duration: minute.
static MeasureUnit * createKilometerPerHour(UErrorCode &status)
Returns unit of speed: kilometer-per-hour.
static MeasureUnit * createYard(UErrorCode &status)
Returns unit of length: yard.
static MeasureUnit * createMilligram(UErrorCode &status)
Returns unit of mass: milligram.
static MeasureUnit * createOunceTroy(UErrorCode &status)
Returns unit of mass: ounce-troy.
static MeasureUnit * createHorsepower(UErrorCode &status)
Returns unit of power: horsepower.
static StringEnumeration * getAvailableTypes(UErrorCode &errorCode)
getAvailableTypes gets all of the available types.
static MeasureUnit * createMegabyte(UErrorCode &status)
Returns unit of digital: megabyte.
static MeasureUnit * createSquareCentimeter(UErrorCode &status)
Returns unit of area: square-centimeter.
int32_t getIndex() const
ICU use only.
static MeasureUnit * createGallon(UErrorCode &status)
Returns unit of volume: gallon.
static MeasureUnit * createHectopascal(UErrorCode &status)
Returns unit of pressure: hectopascal.
static MeasureUnit * createSquareFoot(UErrorCode &status)
Returns unit of area: square-foot.
static MeasureUnit * createKilojoule(UErrorCode &status)
Returns unit of energy: kilojoule.
static MeasureUnit * createGigahertz(UErrorCode &status)
Returns unit of frequency: gigahertz.
static MeasureUnit * createGallonImperial(UErrorCode &status)
Returns unit of volume: gallon-imperial.
static MeasureUnit * createSquareYard(UErrorCode &status)
Returns unit of area: square-yard.
static MeasureUnit * createGigawatt(UErrorCode &status)
Returns unit of power: gigawatt.
static MeasureUnit * createBushel(UErrorCode &status)
Returns unit of volume: bushel.
static MeasureUnit * createCentimeter(UErrorCode &status)
Returns unit of length: centimeter.
const char * getSubtype() const
Get the sub type.
static MeasureUnit * createRadian(UErrorCode &status)
Returns unit of angle: radian.
static MeasureUnit * createCubicMeter(UErrorCode &status)
Returns unit of volume: cubic-meter.
static MeasureUnit * createWatt(UErrorCode &status)
Returns unit of power: watt.
static MeasureUnit * createMetricTon(UErrorCode &status)
Returns unit of mass: metric-ton.
static MeasureUnit * createMeter(UErrorCode &status)
Returns unit of length: meter.
static MeasureUnit * createLiter(UErrorCode &status)
Returns unit of volume: liter.
static MeasureUnit * createPint(UErrorCode &status)
Returns unit of volume: pint.
MeasureUnit()
Default constructor.
static MeasureUnit * createTablespoon(UErrorCode &status)
Returns unit of volume: tablespoon.
static MeasureUnit * createMeterPerSecond(UErrorCode &status)
Returns unit of speed: meter-per-second.
static MeasureUnit * createFoot(UErrorCode &status)
Returns unit of length: foot.
static MeasureUnit * createLiterPer100Kilometers(UErrorCode &status)
Returns unit of consumption: liter-per-100kilometers.
static MeasureUnit * createSquareMeter(UErrorCode &status)
Returns unit of area: square-meter.
static MeasureUnit * createRevolutionAngle(UErrorCode &status)
Returns unit of angle: revolution.
MeasureUnit & operator=(const MeasureUnit &other)
Assignment operator.
static MeasureUnit * createCelsius(UErrorCode &status)
Returns unit of temperature: celsius.
static MeasureUnit * createDegree(UErrorCode &status)
Returns unit of angle: degree.
static MeasureUnit * createKilobit(UErrorCode &status)
Returns unit of digital: kilobit.
static MeasureUnit * createKelvin(UErrorCode &status)
Returns unit of temperature: kelvin.
static MeasureUnit * createCubicMile(UErrorCode &status)
Returns unit of volume: cubic-mile.
static MeasureUnit * createSquareInch(UErrorCode &status)
Returns unit of area: square-inch.
virtual ~MeasureUnit()
Destructor.
static MeasureUnit * createGram(UErrorCode &status)
Returns unit of mass: gram.
static MeasureUnit * createMillimeterOfMercury(UErrorCode &status)
Returns unit of pressure: millimeter-of-mercury.
static MeasureUnit * createPoundPerSquareInch(UErrorCode &status)
Returns unit of pressure: pound-per-square-inch.
static MeasureUnit * createMicrometer(UErrorCode &status)
Returns unit of length: micrometer.
static MeasureUnit * createDecimeter(UErrorCode &status)
Returns unit of length: decimeter.
static MeasureUnit * createPound(UErrorCode &status)
Returns unit of mass: pound.
static MeasureUnit * createAcre(UErrorCode &status)
Returns unit of area: acre.
virtual UClassID getDynamicClassID(void) const
Returns a unique class ID POLYMORPHICALLY.
static MeasureUnit * createMillimeter(UErrorCode &status)
Returns unit of length: millimeter.
const char * getType() const
Get the type.
static MeasureUnit * createGForce(UErrorCode &status)
Returns unit of acceleration: g-force.
static MeasureUnit * createSecond(UErrorCode &status)
Returns unit of duration: second.
static MeasureUnit * createAstronomicalUnit(UErrorCode &status)
Returns unit of length: astronomical-unit.
static MeasureUnit * createCentiliter(UErrorCode &status)
Returns unit of volume: centiliter.
static MeasureUnit * createPartPerMillion(UErrorCode &status)
Returns unit of concentr: part-per-million.
static MeasureUnit * createKilowatt(UErrorCode &status)
Returns unit of power: kilowatt.
static int32_t getIndexCount()
ICU use only.
static MeasureUnit * createMillisecond(UErrorCode &status)
Returns unit of duration: millisecond.
static MeasureUnit * createFoodcalorie(UErrorCode &status)
Returns unit of energy: foodcalorie.
static MeasureUnit * createNanosecond(UErrorCode &status)
Returns unit of duration: nanosecond.
static MeasureUnit * createByte(UErrorCode &status)
Returns unit of digital: byte.
static MeasureUnit * createKilocalorie(UErrorCode &status)
Returns unit of energy: kilocalorie.
static MeasureUnit * createTerabyte(UErrorCode &status)
Returns unit of digital: terabyte.
static MeasureUnit * createTeaspoon(UErrorCode &status)
Returns unit of volume: teaspoon.
static MeasureUnit * createFathom(UErrorCode &status)
Returns unit of length: fathom.
static MeasureUnit * createMilligramPerDeciliter(UErrorCode &status)
Returns unit of concentr: milligram-per-deciliter.
static MeasureUnit * createCubicKilometer(UErrorCode &status)
Returns unit of volume: cubic-kilometer.
static MeasureUnit * createAmpere(UErrorCode &status)
Returns unit of electric: ampere.
static MeasureUnit * createCubicInch(UErrorCode &status)
Returns unit of volume: cubic-inch.
static MeasureUnit * createCubicCentimeter(UErrorCode &status)
Returns unit of volume: cubic-centimeter.
static MeasureUnit * createKnot(UErrorCode &status)
Returns unit of speed: knot.
static MeasureUnit * createInch(UErrorCode &status)
Returns unit of length: inch.
static MeasureUnit * createLiterPerKilometer(UErrorCode &status)
Returns unit of consumption: liter-per-kilometer.
static MeasureUnit * createKilogram(UErrorCode &status)
Returns unit of mass: kilogram.
static MeasureUnit * createNauticalMile(UErrorCode &status)
Returns unit of length: nautical-mile.
static MeasureUnit * createMillimolePerLiter(UErrorCode &status)
Returns unit of concentr: millimole-per-liter.
static MeasureUnit * createSquareMile(UErrorCode &status)
Returns unit of area: square-mile.
void initTime(const char *timeId)
For ICU use only.
static MeasureUnit * createMicrogram(UErrorCode &status)
Returns unit of mass: microgram.
static MeasureUnit * createTon(UErrorCode &status)
Returns unit of mass: ton.
UBool operator!=(const UObject &other) const
Inequality operator.
Definition measunit.h:85
static MeasureUnit * createMilePerGallon(UErrorCode &status)
Returns unit of consumption: mile-per-gallon.
static MeasureUnit * createPoint(UErrorCode &status)
Returns unit of length: point.
static MeasureUnit * createMegahertz(UErrorCode &status)
Returns unit of frequency: megahertz.
static MeasureUnit * createPicometer(UErrorCode &status)
Returns unit of length: picometer.
static MeasureUnit * createFurlong(UErrorCode &status)
Returns unit of length: furlong.
static MeasureUnit * createCupMetric(UErrorCode &status)
Returns unit of volume: cup-metric.
static MeasureUnit * createCentury(UErrorCode &status)
Returns unit of duration: century.
static MeasureUnit * createArcSecond(UErrorCode &status)
Returns unit of angle: arc-second.
static MeasureUnit * createHectoliter(UErrorCode &status)
Returns unit of volume: hectoliter.
static MeasureUnit * createMilePerHour(UErrorCode &status)
Returns unit of speed: mile-per-hour.
static MeasureUnit * createFluidOunce(UErrorCode &status)
Returns unit of volume: fluid-ounce.
static MeasureUnit * createMegaliter(UErrorCode &status)
Returns unit of volume: megaliter.
static MeasureUnit * createKilometer(UErrorCode &status)
Returns unit of length: kilometer.
static MeasureUnit * createMegawatt(UErrorCode &status)
Returns unit of power: megawatt.
Base class for 'pure' C++ implementations of uenum api.
Definition strenum.h:57
UObject is the common ICU "boilerplate" class.
Definition uobject.h:223
int8_t UBool
The ICU boolean type.
Definition umachine.h:236
C++ API: Unicode String.
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
Definition uobject.h:93
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:396
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside.
Definition utypes.h:360
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition uversion.h:138
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition uversion.h:137