ICU 62.1 62.1
numsys.h
Go to the documentation of this file.
1// © 2016 and later: Unicode, Inc. and others.
2// License & terms of use: http://www.unicode.org/copyright.html
3/*
4*******************************************************************************
5* Copyright (C) 2010-2014, International Business Machines Corporation and
6* others. All Rights Reserved.
7*******************************************************************************
8*
9*
10* File NUMSYS.H
11*
12* Modification History:*
13* Date Name Description
14*
15********************************************************************************
16*/
17
18#ifndef NUMSYS
19#define NUMSYS
20
21#include "unicode/utypes.h"
22
28#define NUMSYS_NAME_CAPACITY 8
29
30
36#if !UCONFIG_NO_FORMATTING
37
38
39#include "unicode/format.h"
40#include "unicode/uobject.h"
41
43
61public:
62
69
75
81
89
95
105 static NumberingSystem* U_EXPORT2 createInstance(int32_t radix, UBool isAlgorithmic, const UnicodeString& description, UErrorCode& status );
106
113
127
128
135 int32_t getRadix() const;
136
145 const char * getName() const;
146
158
159
160
169
177
184
185
186private:
187 UnicodeString desc;
188 int32_t radix;
189 UBool algorithmic;
190 char name[NUMSYS_NAME_CAPACITY+1];
191
192 void setRadix(int32_t radix);
193
194 void setAlgorithmic(UBool algorithmic);
195
196 void setDesc(const UnicodeString &desc);
197
198 void setName(const char* name);
199
200 static UBool isValidDigitString(const UnicodeString &str);
201
202 UBool hasContiguousDecimalDigits() const;
203};
204
206
207#endif /* #if !UCONFIG_NO_FORMATTING */
208
209#endif // _NUMSYS
210//eof
"Smart pointer" base class; do not use directly: use LocalPointer etc.
A Locale object represents a specific geographical, political, or cultural region.
Definition locid.h:188
Defines numbering systems.
Definition numsys.h:60
static NumberingSystem * createInstance(int32_t radix, UBool isAlgorithmic, const UnicodeString &description, UErrorCode &status)
Create a numbering system using the specified radix, type, and description.
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 * createInstanceByName(const char *name, UErrorCode &status)
Create a numbering system from one of the predefined numbering systems specified by CLDR and known to...
static UClassID getStaticClassID(void)
ICU "poor man's RTTI", returns a UClassID for this class.
virtual ~NumberingSystem()
Destructor.
NumberingSystem()
Default Constructor.
UBool isAlgorithmic() const
Returns TRUE if the given numbering system is algorithmic.
virtual UClassID getDynamicClassID() const
ICU "poor man's RTTI", returns a UClassID for the actual class.
virtual UnicodeString getDescription() const
Returns the description string of this numbering system.
NumberingSystem(const NumberingSystem &other)
Copy constructor.
static NumberingSystem * createInstance(const Locale &inLocale, UErrorCode &status)
Create the default numbering system associated with the specified locale.
static NumberingSystem * createInstance(UErrorCode &status)
Create the default numbering system associated with the default locale.
static StringEnumeration * getAvailableNames(UErrorCode &status)
Return a StringEnumeration over all the names of numbering systems known to ICU.
int32_t getRadix() const
Returns the radix of this numbering system.
Base class for 'pure' C++ implementations of uenum api.
Definition strenum.h:57
UObject is the common ICU "boilerplate" class.
Definition uobject.h:223
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition unistr.h:287
C++ API: Base class for all formats.
#define NUMSYS_NAME_CAPACITY
Size of a numbering system name.
Definition numsys.h:28
int8_t UBool
The ICU boolean type.
Definition umachine.h:236
C++ API: Common ICU base class UObject.
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
Definition uobject.h:93
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:396
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside.
Definition utypes.h:360
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition uversion.h:138
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition uversion.h:137