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 
27 class StringEnumeration;
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 
420  static MeasureUnit *createBit(UErrorCode &status);
421 
429 
437 
445 
453 
461 
469 
477 
485 
493 
494 #ifndef U_HIDE_DRAFT_API
502 #endif /* U_HIDE_DRAFT_API */
503 
510  static MeasureUnit *createDay(UErrorCode &status);
511 
519 
527 
535 
543 
551 
559 
567 
575 
583 
591 
599 
606  static MeasureUnit *createOhm(UErrorCode &status);
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 
856  static MeasureUnit *createLux(UErrorCode &status);
857 
865 
873 
881 
889 
897 
905 
913 
921 
929 
937 
944  static MeasureUnit *createTon(UErrorCode &status);
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 
1328 private:
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 * createKilogram(UErrorCode &status)
Returns unit of mass: kilogram.
static MeasureUnit * createLiterPerKilometer(UErrorCode &status)
Returns unit of consumption: liter-per-kilometer.
static MeasureUnit * createKilobit(UErrorCode &status)
Returns unit of digital: kilobit.
static MeasureUnit * createHorsepower(UErrorCode &status)
Returns unit of power: horsepower.
static MeasureUnit * createCubicMile(UErrorCode &status)
Returns unit of volume: cubic-mile.
static MeasureUnit * createMilligramPerDeciliter(UErrorCode &status)
Returns unit of concentr: milligram-per-deciliter.
static MeasureUnit * createMillimeterOfMercury(UErrorCode &status)
Returns unit of pressure: millimeter-of-mercury.
static MeasureUnit * createCelsius(UErrorCode &status)
Returns unit of temperature: celsius.
static MeasureUnit * createMegahertz(UErrorCode &status)
Returns unit of frequency: megahertz.
static MeasureUnit * createCubicInch(UErrorCode &status)
Returns unit of volume: cubic-inch.
static MeasureUnit * createHour(UErrorCode &status)
Returns unit of duration: hour.
static MeasureUnit * createMinute(UErrorCode &status)
Returns unit of duration: minute.
static MeasureUnit * createOunce(UErrorCode &status)
Returns unit of mass: ounce.
static MeasureUnit * createInch(UErrorCode &status)
Returns unit of length: inch.
static MeasureUnit * createSquareCentimeter(UErrorCode &status)
Returns unit of area: square-centimeter.
static MeasureUnit * createSecond(UErrorCode &status)
Returns unit of duration: second.
static MeasureUnit * createMeterPerSecondSquared(UErrorCode &status)
Returns unit of acceleration: meter-per-second-squared.
static MeasureUnit * createLux(UErrorCode &status)
Returns unit of light: lux.
static MeasureUnit * createGallonImperial(UErrorCode &status)
Returns unit of volume: gallon-imperial.
static MeasureUnit * createMicrometer(UErrorCode &status)
Returns unit of length: micrometer.
static MeasureUnit * createMillibar(UErrorCode &status)
Returns unit of pressure: millibar.
static MeasureUnit * createMetricTon(UErrorCode &status)
Returns unit of mass: metric-ton.
static MeasureUnit * createParsec(UErrorCode &status)
Returns unit of length: parsec.
static MeasureUnit * createCarat(UErrorCode &status)
Returns unit of mass: carat.
static MeasureUnit * createBushel(UErrorCode &status)
Returns unit of volume: bushel.
static MeasureUnit * createKilometerPerHour(UErrorCode &status)
Returns unit of speed: kilometer-per-hour.
static MeasureUnit * createCentury(UErrorCode &status)
Returns unit of duration: century.
static MeasureUnit * createOunceTroy(UErrorCode &status)
Returns unit of mass: ounce-troy.
static int32_t getAvailable(MeasureUnit *destArray, int32_t destCapacity, UErrorCode &errorCode)
getAvailable gets all of the available units.
static MeasureUnit * createCentimeter(UErrorCode &status)
Returns unit of length: centimeter.
MeasureUnit & operator=(const MeasureUnit &other)
Assignment operator.
static MeasureUnit * createWeek(UErrorCode &status)
Returns unit of duration: week.
static MeasureUnit * createMegabyte(UErrorCode &status)
Returns unit of digital: megabyte.
static MeasureUnit * createHectare(UErrorCode &status)
Returns unit of area: hectare.
static MeasureUnit * createNanosecond(UErrorCode &status)
Returns unit of duration: nanosecond.
MeasureUnit(const MeasureUnit &other)
Copy constructor.
static MeasureUnit * createCubicCentimeter(UErrorCode &status)
Returns unit of volume: cubic-centimeter.
static MeasureUnit * createDay(UErrorCode &status)
Returns unit of duration: day.
static MeasureUnit * createRevolutionAngle(UErrorCode &status)
Returns unit of angle: revolution.
static MeasureUnit * createCubicFoot(UErrorCode &status)
Returns unit of volume: cubic-foot.
static MeasureUnit * createNanometer(UErrorCode &status)
Returns unit of length: nanometer.
static MeasureUnit * createMonth(UErrorCode &status)
Returns unit of duration: month.
static MeasureUnit * createSquareMeter(UErrorCode &status)
Returns unit of area: square-meter.
static MeasureUnit * createGigabit(UErrorCode &status)
Returns unit of digital: gigabit.
void initCurrency(const char *isoCurrency)
For ICU use only.
static MeasureUnit * createPicometer(UErrorCode &status)
Returns unit of length: picometer.
static MeasureUnit * createLightYear(UErrorCode &status)
Returns unit of length: light-year.
static MeasureUnit * createTerabyte(UErrorCode &status)
Returns unit of digital: terabyte.
const char * getType() const
Get the type.
static MeasureUnit * createDegree(UErrorCode &status)
Returns unit of angle: degree.
static MeasureUnit * createVolt(UErrorCode &status)
Returns unit of electric: volt.
static MeasureUnit * createStone(UErrorCode &status)
Returns unit of mass: stone.
static MeasureUnit * createFoodcalorie(UErrorCode &status)
Returns unit of energy: foodcalorie.
static MeasureUnit * createMeterPerSecond(UErrorCode &status)
Returns unit of speed: meter-per-second.
static MeasureUnit * createMile(UErrorCode &status)
Returns unit of length: mile.
static MeasureUnit * createSquareInch(UErrorCode &status)
Returns unit of area: square-inch.
static MeasureUnit * createMicrosecond(UErrorCode &status)
Returns unit of duration: microsecond.
void initTime(const char *timeId)
For ICU use only.
static MeasureUnit * createSquareFoot(UErrorCode &status)
Returns unit of area: square-foot.
static MeasureUnit * createCubicMeter(UErrorCode &status)
Returns unit of volume: cubic-meter.
static MeasureUnit * createGram(UErrorCode &status)
Returns unit of mass: gram.
static MeasureUnit * createMillimeter(UErrorCode &status)
Returns unit of length: millimeter.
static MeasureUnit * createTon(UErrorCode &status)
Returns unit of mass: ton.
virtual ~MeasureUnit()
Destructor.
static MeasureUnit * createMegawatt(UErrorCode &status)
Returns unit of power: megawatt.
static MeasureUnit * createAmpere(UErrorCode &status)
Returns unit of electric: ampere.
static MeasureUnit * createBit(UErrorCode &status)
Returns unit of digital: bit.
UBool operator!=(const UObject &other) const
Inequality operator.
Definition: measunit.h:84
static MeasureUnit * createMillisecond(UErrorCode &status)
Returns unit of duration: millisecond.
int32_t getIndex() const
ICU use only.
static MeasureUnit * createSquareMile(UErrorCode &status)
Returns unit of area: square-mile.
virtual UObject * clone() const
Returns a polymorphic clone of this object.
static MeasureUnit * createKilobyte(UErrorCode &status)
Returns unit of digital: kilobyte.
static MeasureUnit * createCubicKilometer(UErrorCode &status)
Returns unit of volume: cubic-kilometer.
static MeasureUnit * createYear(UErrorCode &status)
Returns unit of duration: year.
static MeasureUnit * createGigahertz(UErrorCode &status)
Returns unit of frequency: gigahertz.
static MeasureUnit * createGigabyte(UErrorCode &status)
Returns unit of digital: gigabyte.
static MeasureUnit * createFluidOunce(UErrorCode &status)
Returns unit of volume: fluid-ounce.
static MeasureUnit * createGigawatt(UErrorCode &status)
Returns unit of power: gigawatt.
static MeasureUnit * createMilePerGallon(UErrorCode &status)
Returns unit of consumption: mile-per-gallon.
static MeasureUnit * createKilowattHour(UErrorCode &status)
Returns unit of energy: kilowatt-hour.
static MeasureUnit * createHertz(UErrorCode &status)
Returns unit of frequency: hertz.
virtual UBool operator==(const UObject &other) const
Equality operator.
static MeasureUnit * createLiter(UErrorCode &status)
Returns unit of volume: liter.
static MeasureUnit * createCupMetric(UErrorCode &status)
Returns unit of volume: cup-metric.
static MeasureUnit * createFathom(UErrorCode &status)
Returns unit of length: fathom.
static MeasureUnit * createQuart(UErrorCode &status)
Returns unit of volume: quart.
MeasureUnit()
Default constructor.
Definition: measunit.h:43
static MeasureUnit * createTeaspoon(UErrorCode &status)
Returns unit of volume: teaspoon.
static MeasureUnit * createPoundPerSquareInch(UErrorCode &status)
Returns unit of pressure: pound-per-square-inch.
static MeasureUnit * createKelvin(UErrorCode &status)
Returns unit of temperature: kelvin.
static MeasureUnit * createMilliliter(UErrorCode &status)
Returns unit of volume: milliliter.
static MeasureUnit * createFurlong(UErrorCode &status)
Returns unit of length: furlong.
static MeasureUnit * createRadian(UErrorCode &status)
Returns unit of angle: radian.
static MeasureUnit * createPound(UErrorCode &status)
Returns unit of mass: pound.
static MeasureUnit * createGForce(UErrorCode &status)
Returns unit of acceleration: g-force.
static MeasureUnit * createMilePerHour(UErrorCode &status)
Returns unit of speed: mile-per-hour.
static MeasureUnit * createKilojoule(UErrorCode &status)
Returns unit of energy: kilojoule.
static MeasureUnit * createKilometer(UErrorCode &status)
Returns unit of length: kilometer.
static MeasureUnit * createPint(UErrorCode &status)
Returns unit of volume: pint.
static MeasureUnit * createSquareYard(UErrorCode &status)
Returns unit of area: square-yard.
static MeasureUnit * createCubicYard(UErrorCode &status)
Returns unit of volume: cubic-yard.
static MeasureUnit * createByte(UErrorCode &status)
Returns unit of digital: byte.
virtual UClassID getDynamicClassID(void) const
Returns a unique class ID POLYMORPHICALLY.
static MeasureUnit * createCentiliter(UErrorCode &status)
Returns unit of volume: centiliter.
static MeasureUnit * createCalorie(UErrorCode &status)
Returns unit of energy: calorie.
static MeasureUnit * createMileScandinavian(UErrorCode &status)
Returns unit of length: mile-scandinavian.
static MeasureUnit * createPartPerMillion(UErrorCode &status)
Returns unit of concentr: part-per-million.
static MeasureUnit * createKarat(UErrorCode &status)
Returns unit of concentr: karat.
static MeasureUnit * createOhm(UErrorCode &status)
Returns unit of electric: ohm.
static MeasureUnit * createKilohertz(UErrorCode &status)
Returns unit of frequency: kilohertz.
static MeasureUnit * createFoot(UErrorCode &status)
Returns unit of length: foot.
static MeasureUnit * createArcMinute(UErrorCode &status)
Returns unit of angle: arc-minute.
static MeasureUnit * createKilowatt(UErrorCode &status)
Returns unit of power: kilowatt.
static StringEnumeration * getAvailableTypes(UErrorCode &errorCode)
getAvailableTypes gets all of the available types.
static MeasureUnit * createTablespoon(UErrorCode &status)
Returns unit of volume: tablespoon.
static MeasureUnit * createMicrogram(UErrorCode &status)
Returns unit of mass: microgram.
static MeasureUnit * createInchHg(UErrorCode &status)
Returns unit of pressure: inch-hg.
static MeasureUnit * createMillimolePerLiter(UErrorCode &status)
Returns unit of concentr: millimole-per-liter.
static MeasureUnit * createFahrenheit(UErrorCode &status)
Returns unit of temperature: fahrenheit.
static MeasureUnit * createPintMetric(UErrorCode &status)
Returns unit of volume: pint-metric.
static MeasureUnit * createMilliampere(UErrorCode &status)
Returns unit of electric: milliampere.
static MeasureUnit * createWatt(UErrorCode &status)
Returns unit of power: watt.
static MeasureUnit * createMegaliter(UErrorCode &status)
Returns unit of volume: megaliter.
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 UClassID getStaticClassID(void)
Return the class ID for this class.
static MeasureUnit * createMilligram(UErrorCode &status)
Returns unit of mass: milligram.
static MeasureUnit * createYard(UErrorCode &status)
Returns unit of length: yard.
static MeasureUnit * createMegabit(UErrorCode &status)
Returns unit of digital: megabit.
static int32_t internalGetIndexForTypeAndSubtype(const char *type, const char *subtype)
ICU use only.
static MeasureUnit * createHectopascal(UErrorCode &status)
Returns unit of pressure: hectopascal.
static MeasureUnit * resolveUnitPerUnit(const MeasureUnit &unit, const MeasureUnit &perUnit)
ICU use only.
static MeasureUnit * createLiterPer100Kilometers(UErrorCode &status)
Returns unit of consumption: liter-per-100kilometers.
static MeasureUnit * createGallon(UErrorCode &status)
Returns unit of volume: gallon.
const char * getSubtype() const
Get the sub type.
static MeasureUnit * createCup(UErrorCode &status)
Returns unit of volume: cup.
static MeasureUnit * createMilliwatt(UErrorCode &status)
Returns unit of power: milliwatt.
static MeasureUnit * createKnot(UErrorCode &status)
Returns unit of speed: knot.
static int32_t getIndexCount()
ICU use only.
static MeasureUnit * createDecimeter(UErrorCode &status)
Returns unit of length: decimeter.
static MeasureUnit * createJoule(UErrorCode &status)
Returns unit of energy: joule.
static MeasureUnit * createNauticalMile(UErrorCode &status)
Returns unit of length: nautical-mile.
static MeasureUnit * createAcre(UErrorCode &status)
Returns unit of area: acre.
static MeasureUnit * createAstronomicalUnit(UErrorCode &status)
Returns unit of length: astronomical-unit.
static MeasureUnit * createSquareKilometer(UErrorCode &status)
Returns unit of area: square-kilometer.
static MeasureUnit * createHectoliter(UErrorCode &status)
Returns unit of volume: hectoliter.
static MeasureUnit * createGenericTemperature(UErrorCode &status)
Returns unit of temperature: generic.
static MeasureUnit * createMilePerGallonImperial(UErrorCode &status)
Returns unit of consumption: mile-per-gallon-imperial.
static MeasureUnit * createAcreFoot(UErrorCode &status)
Returns unit of volume: acre-foot.
static MeasureUnit * createArcSecond(UErrorCode &status)
Returns unit of angle: arc-second.
static MeasureUnit * createDeciliter(UErrorCode &status)
Returns unit of volume: deciliter.
static MeasureUnit * createKilocalorie(UErrorCode &status)
Returns unit of energy: kilocalorie.
static MeasureUnit * createTerabit(UErrorCode &status)
Returns unit of digital: terabit.
static MeasureUnit * createMeter(UErrorCode &status)
Returns unit of length: meter.
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