tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

tmunit.h (3452B)


      1 // © 2016 and later: Unicode, Inc. and others.
      2 // License & terms of use: http://www.unicode.org/copyright.html
      3 /*
      4 *******************************************************************************
      5 * Copyright (C) 2009-2016, International Business Machines Corporation,       *
      6 * Google, and others. All Rights Reserved.                                    *
      7 *******************************************************************************
      8 */
      9 
     10 #ifndef __TMUNIT_H__
     11 #define __TMUNIT_H__
     12 
     13 
     14 /**
     15 * \file
     16 * \brief C++ API: time unit object
     17 */
     18 
     19 #include "unicode/utypes.h"
     20 
     21 #if U_SHOW_CPLUSPLUS_API
     22 
     23 #include "unicode/measunit.h"
     24 
     25 #if !UCONFIG_NO_FORMATTING
     26 
     27 U_NAMESPACE_BEGIN
     28 
     29 /**
     30 * Measurement unit for time units.
     31 * @see TimeUnitAmount
     32 * @see TimeUnit
     33 * @stable ICU 4.2
     34 */
     35 class U_I18N_API TimeUnit: public MeasureUnit {
     36 public:
     37    /**
     38     * Constants for all the time units we supported.
     39     * @stable ICU 4.2
     40     */
     41    enum UTimeUnitFields {
     42        UTIMEUNIT_YEAR,
     43        UTIMEUNIT_MONTH,
     44        UTIMEUNIT_DAY,
     45        UTIMEUNIT_WEEK,
     46        UTIMEUNIT_HOUR,
     47        UTIMEUNIT_MINUTE,
     48        UTIMEUNIT_SECOND,
     49 #ifndef U_HIDE_DEPRECATED_API
     50        /**
     51         * One more than the highest normal UTimeUnitFields value.
     52         * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
     53         */
     54        UTIMEUNIT_FIELD_COUNT
     55 #endif  // U_HIDE_DEPRECATED_API
     56    };
     57 
     58    /**
     59     * Create Instance.
     60     * @param timeUnitField  time unit field based on which the instance
     61     *                       is created.
     62     * @param status         input-output error code.
     63     *                       If the timeUnitField is invalid,
     64     *                       then this will be set to U_ILLEGAL_ARGUMENT_ERROR.
     65     * @return               a TimeUnit instance
     66     * @stable ICU 4.2
     67     */
     68    static TimeUnit* U_EXPORT2 createInstance(UTimeUnitFields timeUnitField,
     69                                              UErrorCode& status);
     70 
     71 
     72    /**
     73     * Override clone.
     74     * @stable ICU 4.2
     75     */
     76    virtual TimeUnit* clone() const override;
     77 
     78    /**
     79     * Copy operator.
     80     * @stable ICU 4.2
     81     */
     82    TimeUnit(const TimeUnit& other);
     83 
     84    /**
     85     * Assignment operator.
     86     * @stable ICU 4.2
     87     */
     88    TimeUnit& operator=(const TimeUnit& other);
     89 
     90    /**
     91     * Returns a unique class ID for this object POLYMORPHICALLY.
     92     * This method implements a simple form of RTTI used by ICU.
     93     * @return The class ID for this object. All objects of a given
     94     * class have the same class ID.  Objects of other classes have
     95     * different class IDs.
     96     * @stable ICU 4.2
     97     */
     98    virtual UClassID getDynamicClassID() const override;
     99 
    100    /**
    101     * Returns the class ID for this class. This is used to compare to
    102     * the return value of getDynamicClassID().
    103     * @return The class ID for all objects of this class.
    104     * @stable ICU 4.2
    105     */
    106    static UClassID U_EXPORT2 getStaticClassID();
    107 
    108 
    109    /**
    110     * Get time unit field.
    111     * @return time unit field.
    112     * @stable ICU 4.2
    113     */
    114    UTimeUnitFields getTimeUnitField() const;
    115 
    116    /**
    117     * Destructor.
    118     * @stable ICU 4.2
    119     */
    120    virtual ~TimeUnit();
    121 
    122 private:
    123    UTimeUnitFields fTimeUnitField;
    124 
    125    /**
    126     * Constructor
    127     */
    128    TimeUnit(UTimeUnitFields timeUnitField);
    129 
    130 };
    131 
    132 
    133 U_NAMESPACE_END
    134 
    135 #endif /* #if !UCONFIG_NO_FORMATTING */
    136 
    137 #endif /* U_SHOW_CPLUSPLUS_API */
    138 
    139 #endif // __TMUNIT_H__
    140 //eof
    141 //