00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef REGION_H
00011 #define REGION_H
00012
00018 #include "unicode/utypes.h"
00019
00020 #if U_SHOW_CPLUSPLUS_API
00021
00022 #if !UCONFIG_NO_FORMATTING
00023
00024 #include "unicode/uregion.h"
00025 #include "unicode/uobject.h"
00026 #include "unicode/uniset.h"
00027 #include "unicode/unistr.h"
00028 #include "unicode/strenum.h"
00029
00030 U_NAMESPACE_BEGIN
00031
00072 class U_I18N_API Region : public UObject {
00073 public:
00078 virtual ~Region();
00079
00084 UBool operator==(const Region &that) const;
00085
00090 UBool operator!=(const Region &that) const;
00091
00099 static const Region* U_EXPORT2 getInstance(const char *region_code, UErrorCode &status);
00100
00106 static const Region* U_EXPORT2 getInstance (int32_t code, UErrorCode &status);
00107
00112 static StringEnumeration* U_EXPORT2 getAvailable(URegionType type, UErrorCode &status);
00113
00120 const Region* getContainingRegion() const;
00121
00130 const Region* getContainingRegion(URegionType type) const;
00131
00141 StringEnumeration* getContainedRegions(UErrorCode &status) const;
00142
00150 StringEnumeration* getContainedRegions( URegionType type, UErrorCode &status ) const;
00151
00156 UBool contains(const Region &other) const;
00157
00164 StringEnumeration* getPreferredValues(UErrorCode &status) const;
00165
00170 const char* getRegionCode() const;
00171
00177 int32_t getNumericCode() const;
00178
00183 URegionType getType() const;
00184
00185 #ifndef U_HIDE_INTERNAL_API
00186
00190 static void cleanupRegionData();
00191 #endif
00192
00193 private:
00194 char id[4];
00195 UnicodeString idStr;
00196 int32_t code;
00197 URegionType fType;
00198 Region *containingRegion;
00199 UVector *containedRegions;
00200 UVector *preferredValues;
00201
00205 Region();
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215
00216
00217 static void U_CALLCONV loadRegionData(UErrorCode &status);
00218
00219 };
00220
00221 U_NAMESPACE_END
00222
00223 #endif
00224
00225 #endif
00226
00227 #endif // REGION_H
00228
00229