mirror of
https://gitlab.com/drummyfish/anarch.git
synced 2024-11-25 18:32:18 -05:00
1344 lines
38 KiB
C++
1344 lines
38 KiB
C++
// © 2016 and later: Unicode, Inc. and others.
|
|
// License & terms of use: http://www.unicode.org/copyright.html
|
|
/*
|
|
**********************************************************************
|
|
* Copyright (c) 2004-2016, International Business Machines
|
|
* Corporation and others. All Rights Reserved.
|
|
**********************************************************************
|
|
* Author: Alan Liu
|
|
* Created: April 26, 2004
|
|
* Since: ICU 3.0
|
|
**********************************************************************
|
|
*/
|
|
#ifndef __MEASUREUNIT_H__
|
|
#define __MEASUREUNIT_H__
|
|
|
|
#include "unicode/utypes.h"
|
|
|
|
#if !UCONFIG_NO_FORMATTING
|
|
|
|
#include "unicode/unistr.h"
|
|
|
|
/**
|
|
* \file
|
|
* \brief C++ API: A unit for measuring a quantity.
|
|
*/
|
|
|
|
U_NAMESPACE_BEGIN
|
|
|
|
class StringEnumeration;
|
|
|
|
/**
|
|
* A unit such as length, mass, volume, currency, etc. A unit is
|
|
* coupled with a numeric amount to produce a Measure.
|
|
*
|
|
* @author Alan Liu
|
|
* @stable ICU 3.0
|
|
*/
|
|
class U_I18N_API MeasureUnit: public UObject {
|
|
public:
|
|
|
|
/**
|
|
* Default constructor.
|
|
* Populates the instance with the base dimensionless unit.
|
|
* @stable ICU 3.0
|
|
*/
|
|
MeasureUnit();
|
|
|
|
/**
|
|
* Copy constructor.
|
|
* @stable ICU 3.0
|
|
*/
|
|
MeasureUnit(const MeasureUnit &other);
|
|
|
|
/**
|
|
* Assignment operator.
|
|
* @stable ICU 3.0
|
|
*/
|
|
MeasureUnit &operator=(const MeasureUnit &other);
|
|
|
|
/**
|
|
* Returns a polymorphic clone of this object. The result will
|
|
* have the same class as returned by getDynamicClassID().
|
|
* @stable ICU 3.0
|
|
*/
|
|
virtual UObject* clone() const;
|
|
|
|
/**
|
|
* Destructor
|
|
* @stable ICU 3.0
|
|
*/
|
|
virtual ~MeasureUnit();
|
|
|
|
/**
|
|
* Equality operator. Return true if this object is equal
|
|
* to the given object.
|
|
* @stable ICU 3.0
|
|
*/
|
|
virtual UBool operator==(const UObject& other) const;
|
|
|
|
/**
|
|
* Inequality operator. Return true if this object is not equal
|
|
* to the given object.
|
|
* @stable ICU 53
|
|
*/
|
|
UBool operator!=(const UObject& other) const {
|
|
return !(*this == other);
|
|
}
|
|
|
|
/**
|
|
* Get the type.
|
|
* @stable ICU 53
|
|
*/
|
|
const char *getType() const;
|
|
|
|
/**
|
|
* Get the sub type.
|
|
* @stable ICU 53
|
|
*/
|
|
const char *getSubtype() const;
|
|
|
|
/**
|
|
* getAvailable gets all of the available units.
|
|
* If there are too many units to fit into destCapacity then the
|
|
* error code is set to U_BUFFER_OVERFLOW_ERROR.
|
|
*
|
|
* @param destArray destination buffer.
|
|
* @param destCapacity number of MeasureUnit instances available at dest.
|
|
* @param errorCode ICU error code.
|
|
* @return number of available units.
|
|
* @stable ICU 53
|
|
*/
|
|
static int32_t getAvailable(
|
|
MeasureUnit *destArray,
|
|
int32_t destCapacity,
|
|
UErrorCode &errorCode);
|
|
|
|
/**
|
|
* getAvailable gets all of the available units for a specific type.
|
|
* If there are too many units to fit into destCapacity then the
|
|
* error code is set to U_BUFFER_OVERFLOW_ERROR.
|
|
*
|
|
* @param type the type
|
|
* @param destArray destination buffer.
|
|
* @param destCapacity number of MeasureUnit instances available at dest.
|
|
* @param errorCode ICU error code.
|
|
* @return number of available units for type.
|
|
* @stable ICU 53
|
|
*/
|
|
static int32_t getAvailable(
|
|
const char *type,
|
|
MeasureUnit *destArray,
|
|
int32_t destCapacity,
|
|
UErrorCode &errorCode);
|
|
|
|
/**
|
|
* getAvailableTypes gets all of the available types. Caller owns the
|
|
* returned StringEnumeration and must delete it when finished using it.
|
|
*
|
|
* @param errorCode ICU error code.
|
|
* @return the types.
|
|
* @stable ICU 53
|
|
*/
|
|
static StringEnumeration* getAvailableTypes(UErrorCode &errorCode);
|
|
|
|
/**
|
|
* Return the class ID for this class. This is useful only for comparing to
|
|
* a return value from getDynamicClassID(). For example:
|
|
* <pre>
|
|
* . Base* polymorphic_pointer = createPolymorphicObject();
|
|
* . if (polymorphic_pointer->getDynamicClassID() ==
|
|
* . Derived::getStaticClassID()) ...
|
|
* </pre>
|
|
* @return The class ID for all objects of this class.
|
|
* @stable ICU 53
|
|
*/
|
|
static UClassID U_EXPORT2 getStaticClassID(void);
|
|
|
|
/**
|
|
* Returns a unique class ID POLYMORPHICALLY. Pure virtual override. This
|
|
* method is to implement a simple version of RTTI, since not all C++
|
|
* compilers support genuine RTTI. Polymorphic operator==() and clone()
|
|
* methods call this method.
|
|
*
|
|
* @return The class ID for this object. All objects of a
|
|
* given class have the same class ID. Objects of
|
|
* other classes have different class IDs.
|
|
* @stable ICU 53
|
|
*/
|
|
virtual UClassID getDynamicClassID(void) const;
|
|
|
|
#ifndef U_HIDE_INTERNAL_API
|
|
/**
|
|
* ICU use only.
|
|
* Returns associated array index for this measure unit. Only valid for
|
|
* non-currency measure units.
|
|
* @internal
|
|
*/
|
|
int32_t getIndex() const;
|
|
|
|
/**
|
|
* ICU use only.
|
|
* Returns maximum value from getIndex plus 1.
|
|
* @internal
|
|
*/
|
|
static int32_t getIndexCount();
|
|
|
|
/**
|
|
* ICU use only.
|
|
* @return the unit.getIndex() of the unit which has this unit.getType() and unit.getSubtype(),
|
|
* or a negative value if there is no such unit
|
|
* @internal
|
|
*/
|
|
static int32_t internalGetIndexForTypeAndSubtype(const char *type, const char *subtype);
|
|
|
|
/**
|
|
* ICU use only.
|
|
* @internal
|
|
*/
|
|
static MeasureUnit *resolveUnitPerUnit(
|
|
const MeasureUnit &unit, const MeasureUnit &perUnit);
|
|
#endif /* U_HIDE_INTERNAL_API */
|
|
|
|
// All code between the "Start generated createXXX methods" comment and
|
|
// the "End generated createXXX methods" comment is auto generated code
|
|
// and must not be edited manually. For instructions on how to correctly
|
|
// update this code, refer to:
|
|
// http://site.icu-project.org/design/formatting/measureformat/updating-measure-unit
|
|
//
|
|
// Start generated createXXX methods
|
|
|
|
/**
|
|
* Returns unit of acceleration: g-force.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createGForce(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of acceleration: meter-per-second-squared.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createMeterPerSecondSquared(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of angle: arc-minute.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createArcMinute(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of angle: arc-second.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createArcSecond(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of angle: degree.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createDegree(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of angle: radian.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createRadian(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of angle: revolution.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 56
|
|
*/
|
|
static MeasureUnit *createRevolutionAngle(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of area: acre.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createAcre(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of area: hectare.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createHectare(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of area: square-centimeter.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createSquareCentimeter(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of area: square-foot.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createSquareFoot(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of area: square-inch.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createSquareInch(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of area: square-kilometer.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createSquareKilometer(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of area: square-meter.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createSquareMeter(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of area: square-mile.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createSquareMile(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of area: square-yard.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createSquareYard(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of concentr: karat.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createKarat(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of concentr: milligram-per-deciliter.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 57
|
|
*/
|
|
static MeasureUnit *createMilligramPerDeciliter(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of concentr: millimole-per-liter.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 57
|
|
*/
|
|
static MeasureUnit *createMillimolePerLiter(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of concentr: part-per-million.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 57
|
|
*/
|
|
static MeasureUnit *createPartPerMillion(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of consumption: liter-per-100kilometers.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 56
|
|
*/
|
|
static MeasureUnit *createLiterPer100Kilometers(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of consumption: liter-per-kilometer.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createLiterPerKilometer(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of consumption: mile-per-gallon.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createMilePerGallon(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of consumption: mile-per-gallon-imperial.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 57
|
|
*/
|
|
static MeasureUnit *createMilePerGallonImperial(UErrorCode &status);
|
|
|
|
/*
|
|
* The following were draft ICU 58, but have been withdrawn:
|
|
* static MeasureUnit *createEast(UErrorCode &status);
|
|
* static MeasureUnit *createNorth(UErrorCode &status);
|
|
* static MeasureUnit *createSouth(UErrorCode &status);
|
|
* static MeasureUnit *createWest(UErrorCode &status);
|
|
*/
|
|
|
|
/**
|
|
* Returns unit of digital: bit.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createBit(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of digital: byte.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createByte(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of digital: gigabit.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createGigabit(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of digital: gigabyte.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createGigabyte(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of digital: kilobit.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createKilobit(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of digital: kilobyte.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createKilobyte(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of digital: megabit.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createMegabit(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of digital: megabyte.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createMegabyte(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of digital: terabit.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createTerabit(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of digital: terabyte.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createTerabyte(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of duration: century.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 56
|
|
*/
|
|
static MeasureUnit *createCentury(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of duration: day.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createDay(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of duration: hour.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createHour(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of duration: microsecond.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createMicrosecond(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of duration: millisecond.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createMillisecond(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of duration: minute.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createMinute(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of duration: month.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createMonth(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of duration: nanosecond.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createNanosecond(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of duration: second.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createSecond(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of duration: week.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createWeek(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of duration: year.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createYear(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of electric: ampere.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createAmpere(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of electric: milliampere.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createMilliampere(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of electric: ohm.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createOhm(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of electric: volt.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createVolt(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of energy: calorie.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createCalorie(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of energy: foodcalorie.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createFoodcalorie(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of energy: joule.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createJoule(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of energy: kilocalorie.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createKilocalorie(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of energy: kilojoule.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createKilojoule(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of energy: kilowatt-hour.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createKilowattHour(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of frequency: gigahertz.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createGigahertz(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of frequency: hertz.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createHertz(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of frequency: kilohertz.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createKilohertz(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of frequency: megahertz.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createMegahertz(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of length: astronomical-unit.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createAstronomicalUnit(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of length: centimeter.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createCentimeter(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of length: decimeter.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createDecimeter(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of length: fathom.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createFathom(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of length: foot.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createFoot(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of length: furlong.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createFurlong(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of length: inch.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createInch(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of length: kilometer.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createKilometer(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of length: light-year.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createLightYear(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of length: meter.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createMeter(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of length: micrometer.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createMicrometer(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of length: mile.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createMile(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of length: mile-scandinavian.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 56
|
|
*/
|
|
static MeasureUnit *createMileScandinavian(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of length: millimeter.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createMillimeter(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of length: nanometer.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createNanometer(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of length: nautical-mile.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createNauticalMile(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of length: parsec.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createParsec(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of length: picometer.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createPicometer(UErrorCode &status);
|
|
|
|
#ifndef U_HIDE_DRAFT_API
|
|
/**
|
|
* Returns unit of length: point.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @draft ICU 59
|
|
*/
|
|
static MeasureUnit *createPoint(UErrorCode &status);
|
|
#endif /* U_HIDE_DRAFT_API */
|
|
|
|
/**
|
|
* Returns unit of length: yard.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createYard(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of light: lux.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createLux(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of mass: carat.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createCarat(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of mass: gram.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createGram(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of mass: kilogram.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createKilogram(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of mass: metric-ton.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createMetricTon(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of mass: microgram.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createMicrogram(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of mass: milligram.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createMilligram(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of mass: ounce.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createOunce(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of mass: ounce-troy.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createOunceTroy(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of mass: pound.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createPound(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of mass: stone.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createStone(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of mass: ton.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createTon(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of power: gigawatt.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createGigawatt(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of power: horsepower.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createHorsepower(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of power: kilowatt.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createKilowatt(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of power: megawatt.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createMegawatt(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of power: milliwatt.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createMilliwatt(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of power: watt.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createWatt(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of pressure: hectopascal.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createHectopascal(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of pressure: inch-hg.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createInchHg(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of pressure: millibar.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createMillibar(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of pressure: millimeter-of-mercury.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createMillimeterOfMercury(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of pressure: pound-per-square-inch.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createPoundPerSquareInch(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of speed: kilometer-per-hour.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createKilometerPerHour(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of speed: knot.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 56
|
|
*/
|
|
static MeasureUnit *createKnot(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of speed: meter-per-second.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createMeterPerSecond(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of speed: mile-per-hour.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createMilePerHour(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of temperature: celsius.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createCelsius(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of temperature: fahrenheit.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createFahrenheit(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of temperature: generic.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 56
|
|
*/
|
|
static MeasureUnit *createGenericTemperature(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of temperature: kelvin.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createKelvin(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of volume: acre-foot.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createAcreFoot(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of volume: bushel.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createBushel(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of volume: centiliter.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createCentiliter(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of volume: cubic-centimeter.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createCubicCentimeter(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of volume: cubic-foot.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createCubicFoot(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of volume: cubic-inch.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createCubicInch(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of volume: cubic-kilometer.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createCubicKilometer(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of volume: cubic-meter.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createCubicMeter(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of volume: cubic-mile.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createCubicMile(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of volume: cubic-yard.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createCubicYard(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of volume: cup.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createCup(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of volume: cup-metric.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 56
|
|
*/
|
|
static MeasureUnit *createCupMetric(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of volume: deciliter.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createDeciliter(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of volume: fluid-ounce.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createFluidOunce(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of volume: gallon.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createGallon(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of volume: gallon-imperial.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 57
|
|
*/
|
|
static MeasureUnit *createGallonImperial(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of volume: hectoliter.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createHectoliter(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of volume: liter.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 53
|
|
*/
|
|
static MeasureUnit *createLiter(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of volume: megaliter.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createMegaliter(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of volume: milliliter.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createMilliliter(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of volume: pint.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createPint(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of volume: pint-metric.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 56
|
|
*/
|
|
static MeasureUnit *createPintMetric(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of volume: quart.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createQuart(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of volume: tablespoon.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createTablespoon(UErrorCode &status);
|
|
|
|
/**
|
|
* Returns unit of volume: teaspoon.
|
|
* Caller owns returned value and must free it.
|
|
* @param status ICU error code.
|
|
* @stable ICU 54
|
|
*/
|
|
static MeasureUnit *createTeaspoon(UErrorCode &status);
|
|
|
|
|
|
// End generated createXXX methods
|
|
|
|
protected:
|
|
|
|
#ifndef U_HIDE_INTERNAL_API
|
|
/**
|
|
* For ICU use only.
|
|
* @internal
|
|
*/
|
|
void initTime(const char *timeId);
|
|
|
|
/**
|
|
* For ICU use only.
|
|
* @internal
|
|
*/
|
|
void initCurrency(const char *isoCurrency);
|
|
|
|
/**
|
|
* For ICU use only.
|
|
* @internal
|
|
*/
|
|
void initNoUnit(const char *subtype);
|
|
|
|
#endif /* U_HIDE_INTERNAL_API */
|
|
|
|
private:
|
|
int32_t fTypeId;
|
|
int32_t fSubTypeId;
|
|
char fCurrency[4];
|
|
|
|
MeasureUnit(int32_t typeId, int32_t subTypeId) : fTypeId(typeId), fSubTypeId(subTypeId) {
|
|
fCurrency[0] = 0;
|
|
}
|
|
void setTo(int32_t typeId, int32_t subTypeId);
|
|
int32_t getOffset() const;
|
|
static MeasureUnit *create(int typeId, int subTypeId, UErrorCode &status);
|
|
};
|
|
|
|
U_NAMESPACE_END
|
|
|
|
#endif // !UNCONFIG_NO_FORMATTING
|
|
#endif // __MEASUREUNIT_H__
|