tor-browser

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

curramt.h (3756B)


      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-2006, 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 __CURRENCYAMOUNT_H__
     14 #define __CURRENCYAMOUNT_H__
     15 
     16 #include "unicode/utypes.h"
     17 
     18 #if U_SHOW_CPLUSPLUS_API
     19 
     20 #if !UCONFIG_NO_FORMATTING
     21 
     22 #include "unicode/measure.h"
     23 #include "unicode/currunit.h"
     24 
     25 /**
     26 * \file 
     27 * \brief C++ API: Currency Amount Object.
     28 */
     29 
     30 U_NAMESPACE_BEGIN
     31 
     32 /**
     33 *
     34 * A currency together with a numeric amount, such as 200 USD.
     35 *
     36 * @author Alan Liu
     37 * @stable ICU 3.0
     38 */
     39 class U_I18N_API CurrencyAmount: public Measure {
     40 public:
     41    /**
     42     * Construct an object with the given numeric amount and the given
     43     * ISO currency code.
     44     * @param amount a numeric object; amount.isNumeric() must be true
     45     * @param isoCode the 3-letter ISO 4217 currency code; must not be
     46     * nullptr and must have length 3
     47     * @param ec input-output error code. If the amount or the isoCode
     48     * is invalid, then this will be set to a failing value.
     49     * @stable ICU 3.0
     50     */
     51    CurrencyAmount(const Formattable& amount, ConstChar16Ptr isoCode,
     52                   UErrorCode &ec);
     53 
     54    /**
     55     * Construct an object with the given numeric amount and the given
     56     * ISO currency code.
     57     * @param amount the amount of the given currency
     58     * @param isoCode the 3-letter ISO 4217 currency code; must not be
     59     * nullptr and must have length 3
     60     * @param ec input-output error code. If the isoCode is invalid,
     61     * then this will be set to a failing value.
     62     * @stable ICU 3.0
     63     */
     64    CurrencyAmount(double amount, ConstChar16Ptr isoCode,
     65                   UErrorCode &ec);
     66 
     67    /**
     68     * Copy constructor
     69     * @stable ICU 3.0
     70     */
     71    CurrencyAmount(const CurrencyAmount& other);
     72 
     73    /**
     74     * Assignment operator
     75     * @stable ICU 3.0
     76     */
     77    CurrencyAmount& operator=(const CurrencyAmount& other);
     78 
     79    /**
     80     * Return a polymorphic clone of this object.  The result will
     81     * have the same class as returned by getDynamicClassID().
     82     * @stable ICU 3.0
     83     */
     84    virtual CurrencyAmount* clone() const override;
     85 
     86    /**
     87     * Destructor
     88     * @stable ICU 3.0
     89     */
     90    virtual ~CurrencyAmount();
     91    
     92    /**
     93     * Returns a unique class ID for this object POLYMORPHICALLY.
     94     * This method implements a simple form of RTTI used by ICU.
     95     * @return The class ID for this object. All objects of a given
     96     * class have the same class ID.  Objects of other classes have
     97     * different class IDs.
     98     * @stable ICU 3.0
     99     */
    100    virtual UClassID getDynamicClassID() const override;
    101 
    102    /**
    103     * Returns the class ID for this class. This is used to compare to
    104     * the return value of getDynamicClassID().
    105     * @return The class ID for all objects of this class.
    106     * @stable ICU 3.0
    107     */
    108    static UClassID U_EXPORT2 getStaticClassID();
    109 
    110    /**
    111     * Return the currency unit object of this object.
    112     * @stable ICU 3.0
    113     */
    114    const CurrencyUnit& getCurrency() const;
    115 
    116    /**
    117     * Return the ISO currency code of this object.
    118     * @stable ICU 3.0
    119     */
    120    inline const char16_t* getISOCurrency() const;
    121 };
    122 
    123 inline const char16_t* CurrencyAmount::getISOCurrency() const {
    124    return getCurrency().getISOCurrency();
    125 }
    126 
    127 U_NAMESPACE_END
    128 
    129 #endif // !UCONFIG_NO_FORMATTING
    130 
    131 #endif /* U_SHOW_CPLUSPLUS_API */
    132 
    133 #endif // __CURRENCYAMOUNT_H__