LCOV - code coverage report
Current view: top level - intl/icu/source/i18n - nfrs.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 7 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 7 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : // © 2016 and later: Unicode, Inc. and others.
       2             : // License & terms of use: http://www.unicode.org/copyright.html
       3             : /*
       4             : ******************************************************************************
       5             : *   Copyright (C) 1997-2015, International Business Machines
       6             : *   Corporation and others.  All Rights Reserved.
       7             : ******************************************************************************
       8             : *   file name:  nfrs.h
       9             : *   encoding:   UTF-8
      10             : *   tab size:   8 (not used)
      11             : *   indentation:4
      12             : *
      13             : * Modification history
      14             : * Date        Name      Comments
      15             : * 10/11/2001  Doug      Ported from ICU4J
      16             : */
      17             : 
      18             : #ifndef NFRS_H
      19             : #define NFRS_H
      20             : 
      21             : #include "unicode/uobject.h"
      22             : #include "unicode/rbnf.h"
      23             : 
      24             : #if U_HAVE_RBNF
      25             : 
      26             : #include "unicode/utypes.h"
      27             : #include "unicode/umisc.h"
      28             : 
      29             : #include "nfrlist.h"
      30             : 
      31             : U_NAMESPACE_BEGIN
      32             : 
      33             : class NFRuleSet : public UMemory {
      34             : public:
      35             :     NFRuleSet(RuleBasedNumberFormat *owner, UnicodeString* descriptions, int32_t index, UErrorCode& status);
      36             :     void parseRules(UnicodeString& rules, UErrorCode& status);
      37             :     void setNonNumericalRule(NFRule *rule);
      38             :     void setBestFractionRule(int32_t originalIndex, NFRule *newRule, UBool rememberRule);
      39           0 :     void makeIntoFractionRuleSet() { fIsFractionRuleSet = TRUE; }
      40             : 
      41             :     ~NFRuleSet();
      42             : 
      43             :     UBool operator==(const NFRuleSet& rhs) const;
      44             :     UBool operator!=(const NFRuleSet& rhs) const { return !operator==(rhs); }
      45             : 
      46           0 :     UBool isPublic() const { return fIsPublic; }
      47             : 
      48           0 :     UBool isParseable() const { return fIsParseable; }
      49             : 
      50           0 :     UBool isFractionRuleSet() const { return fIsFractionRuleSet; }
      51             : 
      52           0 :     void  getName(UnicodeString& result) const { result.setTo(name); }
      53           0 :     UBool isNamed(const UnicodeString& _name) const { return this->name == _name; }
      54             : 
      55             :     void  format(int64_t number, UnicodeString& toAppendTo, int32_t pos, int32_t recursionCount, UErrorCode& status) const;
      56             :     void  format(double number, UnicodeString& toAppendTo, int32_t pos, int32_t recursionCount, UErrorCode& status) const;
      57             : 
      58             :     UBool parse(const UnicodeString& text, ParsePosition& pos, double upperBound, Formattable& result) const;
      59             : 
      60             :     void appendRules(UnicodeString& result) const; // toString
      61             : 
      62             :     void setDecimalFormatSymbols(const DecimalFormatSymbols &newSymbols, UErrorCode& status);
      63             : 
      64           0 :     const RuleBasedNumberFormat *getOwner() const { return owner; }
      65             : private:
      66             :     const NFRule * findNormalRule(int64_t number) const;
      67             :     const NFRule * findDoubleRule(double number) const;
      68             :     const NFRule * findFractionRuleSetRule(double number) const;
      69             :     
      70             :     friend class NFSubstitution;
      71             : 
      72             : private:
      73             :     UnicodeString name;
      74             :     NFRuleList rules;
      75             :     NFRule *nonNumericalRules[6];
      76             :     RuleBasedNumberFormat *owner;
      77             :     NFRuleList fractionRules;
      78             :     UBool fIsFractionRuleSet;
      79             :     UBool fIsPublic;
      80             :     UBool fIsParseable;
      81             : 
      82             :     NFRuleSet(const NFRuleSet &other); // forbid copying of this class
      83             :     NFRuleSet &operator=(const NFRuleSet &other); // forbid copying of this class
      84             : };
      85             : 
      86             : // utilities from old llong.h
      87             : // convert mantissa portion of double to int64
      88             : int64_t util64_fromDouble(double d);
      89             : 
      90             : // raise radix to the power exponent, only non-negative exponents
      91             : int64_t util64_pow(int32_t radix, uint16_t exponent);
      92             : 
      93             : // convert n to digit string in buffer, return length of string
      94             : uint32_t util64_tou(int64_t n, UChar* buffer, uint32_t buflen, uint32_t radix = 10, UBool raw = FALSE);
      95             : 
      96             : #ifdef RBNF_DEBUG
      97             : int64_t util64_utoi(const UChar* str, uint32_t radix = 10);
      98             : uint32_t util64_toa(int64_t n, char* buffer, uint32_t buflen, uint32_t radix = 10, UBool raw = FALSE);
      99             : int64_t util64_atoi(const char* str, uint32_t radix);
     100             : #endif
     101             : 
     102             : 
     103             : U_NAMESPACE_END
     104             : 
     105             : /* U_HAVE_RBNF */
     106             : #endif
     107             : 
     108             : // NFRS_H
     109             : #endif
     110             : 

Generated by: LCOV version 1.13