123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- // © 2016 and later: Unicode, Inc. and others.
- // License & terms of use: http://www.unicode.org/copyright.html
- /*
- **********************************************************************
- * Copyright (c) 2004-2006, International Business Machines
- * Corporation and others. All Rights Reserved.
- **********************************************************************
- * Author: Alan Liu
- * Created: April 26, 2004
- * Since: ICU 3.0
- **********************************************************************
- */
- #ifndef __CURRENCYAMOUNT_H__
- #define __CURRENCYAMOUNT_H__
- #include "unicode/utypes.h"
- #if U_SHOW_CPLUSPLUS_API
- #if !UCONFIG_NO_FORMATTING
- #include "unicode/measure.h"
- #include "unicode/currunit.h"
- /**
- * \file
- * \brief C++ API: Currency Amount Object.
- */
-
- U_NAMESPACE_BEGIN
- /**
- *
- * A currency together with a numeric amount, such as 200 USD.
- *
- * @author Alan Liu
- * @stable ICU 3.0
- */
- class U_I18N_API CurrencyAmount: public Measure {
- public:
- /**
- * Construct an object with the given numeric amount and the given
- * ISO currency code.
- * @param amount a numeric object; amount.isNumeric() must be true
- * @param isoCode the 3-letter ISO 4217 currency code; must not be
- * nullptr and must have length 3
- * @param ec input-output error code. If the amount or the isoCode
- * is invalid, then this will be set to a failing value.
- * @stable ICU 3.0
- */
- CurrencyAmount(const Formattable& amount, ConstChar16Ptr isoCode,
- UErrorCode &ec);
- /**
- * Construct an object with the given numeric amount and the given
- * ISO currency code.
- * @param amount the amount of the given currency
- * @param isoCode the 3-letter ISO 4217 currency code; must not be
- * nullptr and must have length 3
- * @param ec input-output error code. If the isoCode is invalid,
- * then this will be set to a failing value.
- * @stable ICU 3.0
- */
- CurrencyAmount(double amount, ConstChar16Ptr isoCode,
- UErrorCode &ec);
- /**
- * Copy constructor
- * @stable ICU 3.0
- */
- CurrencyAmount(const CurrencyAmount& other);
-
- /**
- * Assignment operator
- * @stable ICU 3.0
- */
- CurrencyAmount& operator=(const CurrencyAmount& other);
- /**
- * Return a polymorphic clone of this object. The result will
- * have the same class as returned by getDynamicClassID().
- * @stable ICU 3.0
- */
- virtual CurrencyAmount* clone() const override;
- /**
- * Destructor
- * @stable ICU 3.0
- */
- virtual ~CurrencyAmount();
-
- /**
- * Returns a unique class ID for this object POLYMORPHICALLY.
- * This method implements a simple form of RTTI used by ICU.
- * @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 3.0
- */
- virtual UClassID getDynamicClassID() const override;
- /**
- * Returns the class ID for this class. This is used to compare to
- * the return value of getDynamicClassID().
- * @return The class ID for all objects of this class.
- * @stable ICU 3.0
- */
- static UClassID U_EXPORT2 getStaticClassID();
- /**
- * Return the currency unit object of this object.
- * @stable ICU 3.0
- */
- const CurrencyUnit& getCurrency() const;
- /**
- * Return the ISO currency code of this object.
- * @stable ICU 3.0
- */
- inline const char16_t* getISOCurrency() const;
- };
- inline const char16_t* CurrencyAmount::getISOCurrency() const {
- return getCurrency().getISOCurrency();
- }
- U_NAMESPACE_END
- #endif // !UCONFIG_NO_FORMATTING
- #endif /* U_SHOW_CPLUSPLUS_API */
- #endif // __CURRENCYAMOUNT_H__
|