Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(36)

Side by Side Diff: source/i18n/unicode/region.h

Issue 845603002: Update ICU to 54.1 step 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/icu.git@master
Patch Set: remove unusued directories Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « source/i18n/unicode/regex.h ('k') | source/i18n/unicode/reldatefmt.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 ******************************************************************************* 2 *******************************************************************************
3 * Copyright (C) 2013, International Business Machines Corporation and others. 3 * Copyright (C) 2014, International Business Machines Corporation and others.
4 * All Rights Reserved. 4 * All Rights Reserved.
5 ******************************************************************************* 5 *******************************************************************************
6 */ 6 */
7 7
8 #ifndef REGION_H 8 #ifndef REGION_H
9 #define REGION_H 9 #define REGION_H
10 10
11 /** 11 /**
12 * \file 12 * \file
13 * \brief C++ API: Region classes (territory containment) 13 * \brief C++ API: Region classes (territory containment)
14 */ 14 */
15 15
16 #include "unicode/utypes.h" 16 #include "unicode/utypes.h"
17 #include "unicode/uregion.h" 17 #include "unicode/uregion.h"
18 18
19 #if !UCONFIG_NO_FORMATTING 19 #if !UCONFIG_NO_FORMATTING
20 #ifndef U_HIDE_DRAFT_API
21 20
22 #include "unicode/uobject.h" 21 #include "unicode/uobject.h"
23 #include "unicode/uniset.h" 22 #include "unicode/uniset.h"
24 #include "unicode/unistr.h" 23 #include "unicode/unistr.h"
25 #include "unicode/strenum.h" 24 #include "unicode/strenum.h"
26 25
27 U_NAMESPACE_BEGIN 26 U_NAMESPACE_BEGIN
28 27
29 /** 28 /**
30 * <code>Region</code> is the class representing a Unicode Region Code, also kno wn as a 29 * <code>Region</code> is the class representing a Unicode Region Code, also kno wn as a
(...skipping 25 matching lines...) Expand all
56 * GROUPING - A widely understood grouping of territories that has a well defin ed membership such 55 * GROUPING - A widely understood grouping of territories that has a well defin ed membership such
57 * that a region code has been assigned for it. Some of these are UNM.49 codes that do't fall into 56 * that a region code has been assigned for it. Some of these are UNM.49 codes that do't fall into
58 * the world/continent/sub-continent hierarchy, while others are just well know n groupings that have 57 * the world/continent/sub-continent hierarchy, while others are just well know n groupings that have
59 * their own region code. Region "EU" (European Union) is one such region code that is a grouping. 58 * their own region code. Region "EU" (European Union) is one such region code that is a grouping.
60 * Groupings will never be returned by the getContainingRegion() API, since a d ifferent type of region 59 * Groupings will never be returned by the getContainingRegion() API, since a d ifferent type of region
61 * ( WORLD, CONTINENT, or SUBCONTINENT ) will always be the containing region i nstead. 60 * ( WORLD, CONTINENT, or SUBCONTINENT ) will always be the containing region i nstead.
62 * 61 *
63 * The Region class is not intended for public subclassing. 62 * The Region class is not intended for public subclassing.
64 * 63 *
65 * @author John Emmons 64 * @author John Emmons
66 * @draft ICU 51 65 * @stable ICU 51
67 */ 66 */
68 67
69 class U_I18N_API Region : public UObject { 68 class U_I18N_API Region : public UObject {
70 public: 69 public:
71 /** 70 /**
72 * Destructor. 71 * Destructor.
73 * @draft ICU 51 72 * @stable ICU 51
74 */ 73 */
75 virtual ~Region(); 74 virtual ~Region();
76 75
77 /** 76 /**
78 * Returns true if the two regions are equal. 77 * Returns true if the two regions are equal.
79 * @draft ICU 51 78 * @stable ICU 51
80 */ 79 */
81 UBool operator==(const Region &that) const; 80 UBool operator==(const Region &that) const;
82 81
83 /** 82 /**
84 * Returns true if the two regions are NOT equal; that is, if operator ==() returns false. 83 * Returns true if the two regions are NOT equal; that is, if operator ==() returns false.
85 * @draft ICU 51 84 * @stable ICU 51
86 */ 85 */
87 UBool operator!=(const Region &that) const; 86 UBool operator!=(const Region &that) const;
88 87
89 /** 88 /**
90 * Returns a pointer to a Region using the given region code. The region co de can be either 2-letter ISO code, 89 * Returns a pointer to a Region using the given region code. The region co de can be either 2-letter ISO code,
91 * 3-letter ISO code, UNM.49 numeric code, or other valid Unicode Region Co de as defined by the LDML specification. 90 * 3-letter ISO code, UNM.49 numeric code, or other valid Unicode Region Co de as defined by the LDML specification.
92 * The identifier will be canonicalized internally using the supplemental me tadata as defined in the CLDR. 91 * The identifier will be canonicalized internally using the supplemental me tadata as defined in the CLDR.
93 * If the region code is NULL or not recognized, the appropriate error code will be set ( U_ILLEGAL_ARGUMENT_ERROR ) 92 * If the region code is NULL or not recognized, the appropriate error code will be set ( U_ILLEGAL_ARGUMENT_ERROR )
94 * @draft ICU 51 93 * @stable ICU 51
95 */ 94 */
96 static const Region* U_EXPORT2 getInstance(const char *region_code, UErrorCo de &status); 95 static const Region* U_EXPORT2 getInstance(const char *region_code, UErrorCo de &status);
97 96
98 /** 97 /**
99 * Returns a pointer to a Region using the given numeric region code. If the numeric region code is not recognized, 98 * Returns a pointer to a Region using the given numeric region code. If the numeric region code is not recognized,
100 * the appropriate error code will be set ( U_ILLEGAL_ARGUMENT_ERROR ). 99 * the appropriate error code will be set ( U_ILLEGAL_ARGUMENT_ERROR ).
101 * @draft ICU 51 100 * @stable ICU 51
102 */ 101 */
103 static const Region* U_EXPORT2 getInstance (int32_t code, UErrorCode &status ); 102 static const Region* U_EXPORT2 getInstance (int32_t code, UErrorCode &status );
104 103
104 #ifndef U_HIDE_DRAFT_API
105 /** 105 /**
106 * Returns an enumeration over the IDs of all known regions that match the g iven type. 106 * Returns an enumeration over the IDs of all known regions that match the g iven type.
107 * @draft ICU 51 107 * @draft ICU 51
108 */ 108 */
109 static StringEnumeration* U_EXPORT2 getAvailable(URegionType type); 109 static StringEnumeration* U_EXPORT2 getAvailable(URegionType type);
110 #endif /* U_HIDE_DRAFT_API */
110 111
111 /** 112 /**
112 * Returns a pointer to the region that contains this region. Returns NULL if this region is code "001" (World) 113 * Returns a pointer to the region that contains this region. Returns NULL if this region is code "001" (World)
113 * or "ZZ" (Unknown region). For example, calling this method with region "I T" (Italy) returns the 114 * or "ZZ" (Unknown region). For example, calling this method with region "I T" (Italy) returns the
114 * region "039" (Southern Europe). 115 * region "039" (Southern Europe).
115 * @draft ICU 51 116 * @stable ICU 51
116 */ 117 */
117 const Region* getContainingRegion() const; 118 const Region* getContainingRegion() const;
118 119
119 /** 120 /**
120 * Return a pointer to the region that geographically contains this region a nd matches the given type, 121 * Return a pointer to the region that geographically contains this region a nd matches the given type,
121 * moving multiple steps up the containment chain if necessary. Returns NUL L if no containing region can be found 122 * moving multiple steps up the containment chain if necessary. Returns NUL L if no containing region can be found
122 * that matches the given type. Note: The URegionTypes = "URGN_GROUPING", "U RGN_DEPRECATED", or "URGN_UNKNOWN" 123 * that matches the given type. Note: The URegionTypes = "URGN_GROUPING", "U RGN_DEPRECATED", or "URGN_UNKNOWN"
123 * are not appropriate for use in this API. NULL will be returned in this ca se. For example, calling this method 124 * are not appropriate for use in this API. NULL will be returned in this ca se. For example, calling this method
124 * with region "IT" (Italy) for type "URGN_CONTINENT" returns the region "15 0" ( Europe ). 125 * with region "IT" (Italy) for type "URGN_CONTINENT" returns the region "15 0" ( Europe ).
125 * @draft ICU 51 126 * @stable ICU 51
126 */ 127 */
127 const Region* getContainingRegion(URegionType type) const; 128 const Region* getContainingRegion(URegionType type) const;
128 129
130 #ifndef U_HIDE_DRAFT_API
129 /** 131 /**
130 * Return an enumeration over the IDs of all the regions that are immediate children of this region in the 132 * Return an enumeration over the IDs of all the regions that are immediate children of this region in the
131 * region hierarchy. These returned regions could be either macro regions, t erritories, or a mixture of the two, 133 * region hierarchy. These returned regions could be either macro regions, t erritories, or a mixture of the two,
132 * depending on the containment data as defined in CLDR. This API may retur n NULL if this region doesn't have 134 * depending on the containment data as defined in CLDR. This API may retur n NULL if this region doesn't have
133 * any sub-regions. For example, calling this method with region "150" (Euro pe) returns an enumeration containing 135 * any sub-regions. For example, calling this method with region "150" (Euro pe) returns an enumeration containing
134 * the various sub regions of Europe - "039" (Southern Europe) - "151" (East ern Europe) - "154" (Northern Europe) 136 * the various sub regions of Europe - "039" (Southern Europe) - "151" (East ern Europe) - "154" (Northern Europe)
135 * and "155" (Western Europe). 137 * and "155" (Western Europe).
136 * @draft ICU 51 138 * @draft ICU 51
137 */ 139 */
138 StringEnumeration* getContainedRegions() const; 140 StringEnumeration* getContainedRegions() const;
139 141
140 /** 142 /**
141 * Returns an enumeration over the IDs of all the regions that are children of this region anywhere in the region 143 * Returns an enumeration over the IDs of all the regions that are children of this region anywhere in the region
142 * hierarchy and match the given type. This API may return an empty enumera tion if this region doesn't have any 144 * hierarchy and match the given type. This API may return an empty enumera tion if this region doesn't have any
143 * sub-regions that match the given type. For example, calling this method w ith region "150" (Europe) and type 145 * sub-regions that match the given type. For example, calling this method w ith region "150" (Europe) and type
144 * "URGN_TERRITORY" returns a set containing all the territories in Europe ( "FR" (France) - "IT" (Italy) - "DE" (Germany) etc. ) 146 * "URGN_TERRITORY" returns a set containing all the territories in Europe ( "FR" (France) - "IT" (Italy) - "DE" (Germany) etc. )
145 * @draft ICU 51 147 * @draft ICU 51
146 */ 148 */
147 StringEnumeration* getContainedRegions( URegionType type ) const; 149 StringEnumeration* getContainedRegions( URegionType type ) const;
150 #endif /* U_HIDE_DRAFT_API */
148 151
149 /** 152 /**
150 * Returns true if this region contains the supplied other region anywhere i n the region hierarchy. 153 * Returns true if this region contains the supplied other region anywhere i n the region hierarchy.
151 * @draft ICU 51 154 * @stable ICU 51
152 */ 155 */
153 UBool contains(const Region &other) const; 156 UBool contains(const Region &other) const;
154 157
158 #ifndef U_HIDE_DRAFT_API
155 /** 159 /**
156 * For deprecated regions, return an enumeration over the IDs of the regions that are the preferred replacement 160 * For deprecated regions, return an enumeration over the IDs of the regions that are the preferred replacement
157 * regions for this region. Returns null for a non-deprecated region. For example, calling this method with region 161 * regions for this region. Returns null for a non-deprecated region. For example, calling this method with region
158 * "SU" (Soviet Union) would return a list of the regions containing "RU" (R ussia), "AM" (Armenia), "AZ" (Azerbaijan), etc... 162 * "SU" (Soviet Union) would return a list of the regions containing "RU" (R ussia), "AM" (Armenia), "AZ" (Azerbaijan), etc...
159 * @draft ICU 51 163 * @draft ICU 51
160 */ 164 */
161 StringEnumeration* getPreferredValues() const; 165 StringEnumeration* getPreferredValues() const;
162 166 #endif /* U_HIDE_DRAFT_API */
163 167
164 /** 168 /**
165 * Return this region's canonical region code. 169 * Return this region's canonical region code.
166 * @draft ICU 51 170 * @stable ICU 51
167 */ 171 */
168 const char* getRegionCode() const; 172 const char* getRegionCode() const;
169 173
170 /** 174 /**
171 * Return this region's numeric code. 175 * Return this region's numeric code.
172 * Returns a negative value if the given region does not have a numeric code assigned to it. 176 * Returns a negative value if the given region does not have a numeric code assigned to it.
173 * @draft ICU 51 177 * @stable ICU 51
174 */ 178 */
175 int32_t getNumericCode() const; 179 int32_t getNumericCode() const;
176 180
177 /** 181 /**
178 * Returns the region type of this region. 182 * Returns the region type of this region.
179 * @draft ICU 51 183 * @stable ICU 51
180 */ 184 */
181 URegionType getType() const; 185 URegionType getType() const;
182 186
183 #ifndef U_HIDE_INTERNAL_API 187 #ifndef U_HIDE_INTERNAL_API
184 /** 188 /**
185 * Cleans up statically allocated memory. 189 * Cleans up statically allocated memory.
186 * @internal 190 * @internal
187 */ 191 */
188 static void cleanupRegionData(); 192 static void cleanupRegionData();
189 #endif /* U_HIDE_INTERNAL_API */ 193 #endif /* U_HIDE_INTERNAL_API */
(...skipping 15 matching lines...) Expand all
205 209
206 /* 210 /*
207 * Initializes the region data from the ICU resource bundles. The region da ta 211 * Initializes the region data from the ICU resource bundles. The region da ta
208 * contains the basic relationships such as which regions are known, what th e numeric 212 * contains the basic relationships such as which regions are known, what th e numeric
209 * codes are, any known aliases, and the territory containment data. 213 * codes are, any known aliases, and the territory containment data.
210 * 214 *
211 * If the region data has already loaded, then this method simply returns wi thout doing 215 * If the region data has already loaded, then this method simply returns wi thout doing
212 * anything meaningful. 216 * anything meaningful.
213 */ 217 */
214 218
215 static void loadRegionData(); 219 static void loadRegionData(UErrorCode &status);
216 220
217 }; 221 };
218 222
219 U_NAMESPACE_END 223 U_NAMESPACE_END
220 224
221 #endif /* U_HIDE_DRAFT_API */
222 #endif /* #if !UCONFIG_NO_FORMATTING */ 225 #endif /* #if !UCONFIG_NO_FORMATTING */
223 #endif // REGION_H 226 #endif // REGION_H
224 227
225 //eof 228 //eof
OLDNEW
« no previous file with comments | « source/i18n/unicode/regex.h ('k') | source/i18n/unicode/reldatefmt.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698