Home | History | Annotate | Download | only in unicode
      1 /*
      2 **********************************************************************
      3 * Copyright (c) 2004-2006, 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/fmtable.h"
     19 
     20 /**
     21  * \file
     22  * \brief C++ API: A unit for measuring a quantity.
     23  */
     24 
     25 U_NAMESPACE_BEGIN
     26 
     27 /**
     28  * A unit such as length, mass, volume, currency, etc.  A unit is
     29  * coupled with a numeric amount to produce a Measure.
     30  *
     31  * <p>This is an abstract class.
     32  *
     33  * @author Alan Liu
     34  * @stable ICU 3.0
     35  */
     36 class U_I18N_API MeasureUnit: public UObject {
     37  public:
     38     /**
     39      * Return a polymorphic clone of this object.  The result will
     40      * have the same class as returned by getDynamicClassID().
     41      * @stable ICU 3.0
     42      */
     43     virtual UObject* clone() const = 0;
     44 
     45     /**
     46      * Destructor
     47      * @stable ICU 3.0
     48      */
     49     virtual ~MeasureUnit();
     50 
     51     /**
     52      * Equality operator.  Return true if this object is equal
     53      * to the given object.
     54      * @stable ICU 3.0
     55      */
     56     virtual UBool operator==(const UObject& other) const = 0;
     57 
     58  protected:
     59     /**
     60      * Default constructor.
     61      * @stable ICU 3.0
     62      */
     63     MeasureUnit();
     64 };
     65 
     66 U_NAMESPACE_END
     67 
     68 // NOTE: There is no measunit.cpp. For implementation, see measure.cpp. [alan]
     69 
     70 #endif // !UCONFIG_NO_FORMATTING
     71 #endif // __MEASUREUNIT_H__
     72