ICU 55.1  55.1
numsys.h
Go to the documentation of this file.
1 /*
2 *******************************************************************************
3 * Copyright (C) 2010-2014, International Business Machines Corporation and
4 * others. All Rights Reserved.
5 *******************************************************************************
6 *
7 *
8 * File NUMSYS.H
9 *
10 * Modification History:*
11 * Date Name Description
12 *
13 ********************************************************************************
14 */
15 
16 #ifndef NUMSYS
17 #define NUMSYS
18 
19 #include "unicode/utypes.h"
20 
26 #define NUMSYS_NAME_CAPACITY 8
27 
28 
34 #if !UCONFIG_NO_FORMATTING
35 
36 
37 #include "unicode/format.h"
38 #include "unicode/uobject.h"
39 
41 
59 public:
60 
67 
73 
78  virtual ~NumberingSystem();
79 
86  static NumberingSystem* U_EXPORT2 createInstance(const Locale & inLocale, UErrorCode& status);
87 
92  static NumberingSystem* U_EXPORT2 createInstance(UErrorCode& status);
93 
103  static NumberingSystem* U_EXPORT2 createInstance(int32_t radix, UBool isAlgorithmic, const UnicodeString& description, UErrorCode& status );
104 
110  static StringEnumeration * U_EXPORT2 getAvailableNames(UErrorCode& status);
111 
124  static NumberingSystem* U_EXPORT2 createInstanceByName(const char* name, UErrorCode& status);
125 
126 
133  int32_t getRadix() const;
134 
143  const char * getName() const;
144 
155  virtual UnicodeString getDescription() const;
156 
157 
158 
167 
174  static UClassID U_EXPORT2 getStaticClassID(void);
175 
181  virtual UClassID getDynamicClassID() const;
182 
183 
184 private:
185  UnicodeString desc;
186  int32_t radix;
187  UBool algorithmic;
188  char name[NUMSYS_NAME_CAPACITY+1];
189 
190  void setRadix(int32_t radix);
191 
192  void setAlgorithmic(UBool algorithmic);
193 
194  void setDesc(UnicodeString desc);
195 
196  void setName(const char* name);
197 
198  static UBool isValidDigitString(const UnicodeString &str);
199 
200  UBool hasContiguousDecimalDigits() const;
201 };
202 
204 
205 #endif /* #if !UCONFIG_NO_FORMATTING */
206 
207 #endif // _NUMSYS
208 //eof
utypes.h
Basic definitions for ICU, for both C and C++ APIs.
NUMSYS_NAME_CAPACITY
#define NUMSYS_NAME_CAPACITY
Size of a numbering system name.
Definition: numsys.h:26
U_I18N_API
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside.
Definition: utypes.h:358
UBool
int8_t UBool
The ICU boolean type.
Definition: umachine.h:234
icu::NumberingSystem::createInstance
static NumberingSystem * createInstance(UErrorCode &status)
Create the default numbering system associated with the default locale.
icu::NumberingSystem::getDescription
virtual UnicodeString getDescription() const
Returns the description string of this numbering system.
format.h
C++ API: Base class for all formats.
icu::NumberingSystem::isAlgorithmic
UBool isAlgorithmic() const
Returns TRUE if the given numbering system is algorithmic.
icu::NumberingSystem::getAvailableNames
static StringEnumeration * getAvailableNames(UErrorCode &status)
Return a StringEnumeration over all the names of numbering systems known to ICU.
icu::NumberingSystem::NumberingSystem
NumberingSystem()
Default Constructor.
icu::UnicodeString
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition: unistr.h:246
icu::UObject
UObject is the common ICU "boilerplate" class.
Definition: uobject.h:221
UClassID
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
Definition: uobject.h:91
UErrorCode
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers,...
Definition: utypes.h:476
icu::StringEnumeration
Base class for 'pure' C++ implementations of uenum api.
Definition: strenum.h:55
icu::NumberingSystem::NumberingSystem
NumberingSystem(const NumberingSystem &other)
Copy constructor.
icu::NumberingSystem::createInstance
static NumberingSystem * createInstance(const Locale &inLocale, UErrorCode &status)
Create the default numbering system associated with the specified locale.
icu::NumberingSystem::getDynamicClassID
virtual UClassID getDynamicClassID() const
ICU "poor man's RTTI", returns a UClassID for the actual class.
icu::NumberingSystem::createInstance
static NumberingSystem * createInstance(int32_t radix, UBool isAlgorithmic, const UnicodeString &description, UErrorCode &status)
Create a numbering system using the specified radix, type, and description.
icu::NumberingSystem::getRadix
int32_t getRadix() const
Returns the radix of this numbering system.
icu::NumberingSystem
Defines numbering systems.
Definition: numsys.h:58
icu::NumberingSystem::getName
const char * getName() const
Returns the name of this numbering system if it was created using one of the predefined names known t...
icu::NumberingSystem::createInstanceByName
static NumberingSystem * createInstanceByName(const char *name, UErrorCode &status)
Create a numbering system from one of the predefined numbering systems specified by CLDR and known to...
uobject.h
C++ API: Common ICU base class UObject.
U_NAMESPACE_END
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition: uversion.h:130
U_NAMESPACE_BEGIN
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition: uversion.h:129
icu::Locale
A Locale object represents a specific geographical, political, or cultural region.
Definition: locid.h:185
icu::NumberingSystem::~NumberingSystem
virtual ~NumberingSystem()
Destructor.
icu::NumberingSystem::getStaticClassID
static UClassID getStaticClassID(void)
ICU "poor man's RTTI", returns a UClassID for this class.