ICU 63.1 63.1

region.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) 2014-2016, International Business Machines Corporation and others.
6 * All Rights Reserved.
7 *******************************************************************************
8 */
9
10 #ifndef REGION_H
11 #define REGION_H
12
18 #include "unicode/utypes.h"
19 #include "unicode/uregion.h"
20
21 #if !UCONFIG_NO_FORMATTING
22
23 #include "unicode/uobject.h"
24 #include "unicode/uniset.h"
25 #include "unicode/unistr.h"
26 #include "unicode/strenum.h"
27
28 U_NAMESPACE_BEGIN
29
70 class U_I18N_API Region : public UObject {
71 public:
76 virtual ~Region();
77
82 UBool operator==(const Region &that) const;
83
88 UBool operator!=(const Region &that) const;
89
97 static const Region* U_EXPORT2 getInstance(const char *region_code, UErrorCode &status);
98
104 static const Region* U_EXPORT2 getInstance (int32_t code, UErrorCode &status);
105
110 static StringEnumeration* U_EXPORT2 getAvailable(URegionType type, UErrorCode &status);
111
118 const Region* getContainingRegion() const;
119
128 const Region* getContainingRegion(URegionType type) const;
129
139 StringEnumeration* getContainedRegions(UErrorCode &status) const;
140
148 StringEnumeration* getContainedRegions( URegionType type, UErrorCode &status ) const;
149
154 UBool contains(const Region &other) const;
155
162 StringEnumeration* getPreferredValues(UErrorCode &status) const;
163
168 const char* getRegionCode() const;
169
175 int32_t getNumericCode() const;
176
181 URegionType getType() const;
182
183 #ifndef U_HIDE_INTERNAL_API
184
188 static void cleanupRegionData();
189 #endif /* U_HIDE_INTERNAL_API */
190
191 private:
192 char id[4];
193 UnicodeString idStr;
194 int32_t code;
195 URegionType fType;
196 Region *containingRegion;
197 UVector *containedRegions;
198 UVector *preferredValues;
199
203 Region();
204
205
206 /*
207 * Initializes the region data from the ICU resource bundles. The region data
208 * contains the basic relationships such as which regions are known, what the numeric
209 * codes are, any known aliases, and the territory containment data.
210 *
211 * If the region data has already loaded, then this method simply returns without doing
212 * anything meaningful.
213 */
214
215 static void U_CALLCONV loadRegionData(UErrorCode &status);
216
217 };
218
219 U_NAMESPACE_END
220
221 #endif /* #if !UCONFIG_NO_FORMATTING */
222 #endif // REGION_H
223
224 //eof
URegionType
URegionType
URegionType is an enumeration defining the different types of regions.
Definition: uregion.h:65
unistr.h
C++ API: Unicode String.
icu::operator==
U_EXPORT UBool operator==(const StringPiece &x, const StringPiece &y)
Global operator == for StringPiece.
U_CALLCONV
#define U_CALLCONV
Similar to U_CDECL_BEGIN/U_CDECL_END, this qualifier is necessary in callback function typedefs to ma...
Definition: platform.h:840
icu::Region
Region is the class representing a Unicode Region Code, also known as a Unicode Region Subtag...
Definition: region.h:70
icu::StringEnumeration
Base class for &#39;pure&#39; C++ implementations of uenum api.
Definition: strenum.h:57
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:301
uregion.h
C API: URegion (territory containment and mapping)
U_NAMESPACE_BEGIN
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition: uversion.h:137
icu::operator!=
UBool operator!=(const StringPiece &x, const StringPiece &y)
Global operator != for StringPiece.
Definition: stringpiece.h:218
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:138
UErrorCode
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers...
Definition: utypes.h:401
strenum.h
C++ API: String Enumeration.
utypes.h
Basic definitions for ICU, for both C and C++ APIs.
icu::UnicodeString
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition: unistr.h:289
icu::UObject
UObject is the common ICU "boilerplate" class.
Definition: uobject.h:220
UBool
int8_t UBool
The ICU boolean type.
Definition: umachine.h:225
uniset.h
C++ API: Unicode Set.