ICU 57.1 57.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
59public:
60
67
73
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
156
157
158
167
174 static UClassID U_EXPORT2 getStaticClassID(void);
175
182
183
184private:
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
A Locale object represents a specific geographical, political, or cultural region.
Definition: locid.h:185
Defines numbering systems.
Definition: numsys.h:58
virtual UnicodeString getDescription() const
Returns the description string of this numbering system.
NumberingSystem()
Default Constructor.
virtual UClassID getDynamicClassID() const
ICU "poor man's RTTI", returns a UClassID for the actual class.
static NumberingSystem * createInstance(UErrorCode &status)
Create the default numbering system associated with the default locale.
NumberingSystem(const NumberingSystem &other)
Copy constructor.
int32_t getRadix() const
Returns the radix of this numbering system.
const char * getName() const
Returns the name of this numbering system if it was created using one of the predefined names known t...
static NumberingSystem * createInstance(int32_t radix, UBool isAlgorithmic, const UnicodeString &description, UErrorCode &status)
Create a numbering system using the specified radix, type, and description.
virtual ~NumberingSystem()
Destructor.
static NumberingSystem * createInstance(const Locale &inLocale, UErrorCode &status)
Create the default numbering system associated with the specified locale.
static UClassID getStaticClassID(void)
ICU "poor man's RTTI", returns a UClassID for this class.
static StringEnumeration * getAvailableNames(UErrorCode &status)
Return a StringEnumeration over all the names of numbering systems known to ICU.
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...
UBool isAlgorithmic() const
Returns TRUE if the given numbering system is algorithmic.
Base class for 'pure' C++ implementations of uenum api.
Definition: strenum.h:55
UObject is the common ICU "boilerplate" class.
Definition: uobject.h:221
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition: unistr.h:294
C++ API: Base class for all formats.
#define NUMSYS_NAME_CAPACITY
Size of a numbering system name.
Definition: numsys.h:26
int8_t UBool
The ICU boolean type.
Definition: umachine.h:234
C++ API: Common ICU base class UObject.
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
Definition: uobject.h:91
Basic definitions for ICU, for both C and C++ APIs.
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers,...
Definition: utypes.h:476
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside.
Definition: utypes.h:358
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition: uversion.h:130
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition: uversion.h:129