Lines Matching refs:status

79 void U_CALLCONV Region::loadRegionData(UErrorCode &status) {
82 LocalUHashtablePointer newRegionIDMap(uhash_open(uhash_hashUnicodeString, uhash_compareUnicodeString, NULL, &status));
83 LocalUHashtablePointer newNumericCodeMap(uhash_open(uhash_hashLong,uhash_compareLong,NULL,&status));
84 LocalUHashtablePointer newRegionAliases(uhash_open(uhash_hashUnicodeString,uhash_compareUnicodeString,NULL,&status));
86 LocalPointer<UVector> continents(new UVector(uprv_deleteUObject, uhash_compareUnicodeString, status), status);
87 LocalPointer<UVector> groupings(new UVector(uprv_deleteUObject, uhash_compareUnicodeString, status), status);
88 LocalPointer<UVector> lpAllRegions(new UVector(uprv_deleteUObject, uhash_compareUnicodeString, status), status);
91 LocalUResourceBundlePointer metadata(ures_openDirect(NULL,"metadata",&status));
92 LocalUResourceBundlePointer metadataAlias(ures_getByKey(metadata.getAlias(),"alias",NULL,&status));
93 LocalUResourceBundlePointer territoryAlias(ures_getByKey(metadataAlias.getAlias(),"territory",NULL,&status));
95 LocalUResourceBundlePointer supplementalData(ures_openDirect(NULL,"supplementalData",&status));
96 LocalUResourceBundlePointer codeMappings(ures_getByKey(supplementalData.getAlias(),"codeMappings",NULL,&status));
98 LocalUResourceBundlePointer idValidity(ures_getByKey(supplementalData.getAlias(),"idValidity",NULL,&status));
99 LocalUResourceBundlePointer regionList(ures_getByKey(idValidity.getAlias(),"region",NULL,&status));
100 LocalUResourceBundlePointer regionRegular(ures_getByKey(regionList.getAlias(),"regular",NULL,&status));
101 LocalUResourceBundlePointer regionMacro(ures_getByKey(regionList.getAlias(),"macroregion",NULL,&status));
102 LocalUResourceBundlePointer regionUnknown(ures_getByKey(regionList.getAlias(),"unknown",NULL,&status));
104 LocalUResourceBundlePointer territoryContainment(ures_getByKey(supplementalData.getAlias(),"territoryContainment",NULL,&status));
105 LocalUResourceBundlePointer worldContainment(ures_getByKey(territoryContainment.getAlias(),"001",NULL,&status));
106 LocalUResourceBundlePointer groupingContainment(ures_getByKey(territoryContainment.getAlias(),"grouping",NULL,&status));
109 if (U_FAILURE(status)) {
118 while (U_SUCCESS(status) && ures_hasNext(regionRegular.getAlias())) {
119 UnicodeString regionName = ures_getNextUnicodeString(regionRegular.getAlias(),NULL,&status);
122 regionName.extract(buf,6,status);
126 while (U_SUCCESS(status) && buf[rangeMarkerLocation-1] <= endRange) {
127 LocalPointer<UnicodeString> newRegion(new UnicodeString(buf), status);
128 allRegions->adoptElement(newRegion.orphan(), status);
132 LocalPointer<UnicodeString> newRegion(new UnicodeString(regionName), status);
133 allRegions->adoptElement(newRegion.orphan(), status);
137 while (U_SUCCESS(status) && ures_hasNext(regionMacro.getAlias())) {
138 UnicodeString regionName = ures_getNextUnicodeString(regionMacro.getAlias(),NULL,&status);
141 regionName.extract(buf,6,status);
145 while ( buf[rangeMarkerLocation-1] <= endRange && U_SUCCESS(status)) {
146 LocalPointer<UnicodeString> newRegion(new UnicodeString(buf), status);
147 allRegions->adoptElement(newRegion.orphan(),status);
151 LocalPointer<UnicodeString> newRegion(new UnicodeString(regionName), status);
152 allRegions->adoptElement(newRegion.orphan(),status);
156 while (U_SUCCESS(status) && ures_hasNext(regionUnknown.getAlias())) {
158 new UnicodeString(ures_getNextUnicodeString(regionUnknown.getAlias(), nullptr, &status), status));
159 allRegions->adoptElement(regionName.orphan(),status);
162 while (U_SUCCESS(status) && ures_hasNext(worldContainment.getAlias())) {
163 UnicodeString *continentName = new UnicodeString(ures_getNextUnicodeString(worldContainment.getAlias(),NULL,&status));
164 continents->adoptElement(continentName,status);
166 if (U_FAILURE(status)) {
171 LocalPointer<Region> r(new Region(), status);
172 if ( U_FAILURE(status) ) {
185 uhash_iput(newNumericCodeMap.getAlias(),r->code,(void *)(r.getAlias()),&status);
191 uhash_put(newRegionIDMap.getAlias(),idStrAlias,(void *)(r.orphan()),&status); // regionIDMap takes ownership
195 while (U_SUCCESS(status) && ures_hasNext(groupingContainment.getAlias())) {
196 groupingBundle = ures_getNextResource(groupingContainment.getAlias(), groupingBundle, &status);
197 if (U_FAILURE(status)) {
201 LocalPointer<UnicodeString> lpGroupingName(groupingName, status);
202 groupings->adoptElement(lpGroupingName.orphan(), status);
203 if (U_FAILURE(status)) {
208 for (int32_t i = 0; i < ures_getSize(groupingBundle) && U_SUCCESS(status); i++) {
209 UnicodeString child = ures_getUnicodeStringByIndex(groupingBundle, i, &status);
210 if (U_SUCCESS(status)) {
213 new UVector(uprv_deleteUObject, uhash_compareUnicodeString, status), status);
215 if (U_FAILURE(status)) {
219 LocalPointer<UnicodeString> lpChildCopy(new UnicodeString(child), status);
220 grouping->containedRegions->adoptElement(lpChildCopy.orphan(), status);
228 while (U_SUCCESS(status) && ures_hasNext(territoryAlias.getAlias())) {
229 LocalUResourceBundlePointer res(ures_getNextResource(territoryAlias.getAlias(),NULL,&status));
231 LocalPointer<UnicodeString> aliasFromStr(new UnicodeString(aliasFrom, -1, US_INV), status);
232 UnicodeString aliasTo = ures_getUnicodeStringByKey(res.getAlias(),"replacement",&status);
239 uhash_put(newRegionAliases.getAlias(),(void *)aliasFromStr.orphan(), (void *)aliasToRegion,&status);
242 LocalPointer<Region> newRgn(new Region, status);
243 if ( U_SUCCESS(status) ) {
250 uhash_put(newRegionIDMap.getAlias(),(void *)&(aliasFromRegion->idStr),(void *)aliasFromRegion,&status);
255 uhash_iput(newNumericCodeMap.getAlias(),aliasFromRegion->code,(void *)aliasFromRegion,&status);
265 LocalPointer<UVector> newPreferredValues(new UVector(uprv_deleteUObject, uhash_compareUnicodeString, status), status);
268 if( U_FAILURE(status)) {
273 for (int32_t i = 0 ; i < aliasTo.length() && U_SUCCESS(status); i++ ) {
280 LocalPointer<UnicodeString> preferredValue(new UnicodeString(target->idStr), status);
281 aliasFromRegion->preferredValues->adoptElement(preferredValue.orphan(),status); // may add null if err
290 while (U_SUCCESS(status) && ures_hasNext(codeMappings.getAlias())) {
291 UResourceBundle *mapping = ures_getNextResource(codeMappings.getAlias(),NULL,&status);
292 if (U_SUCCESS(status) && ures_getType(mapping) == URES_ARRAY && ures_getSize(mapping) == 3) {
293 UnicodeString codeMappingID = ures_getUnicodeStringByIndex(mapping,0,&status);
294 UnicodeString codeMappingNumber = ures_getUnicodeStringByIndex(mapping,1,&status);
295 UnicodeString codeMapping3Letter = ures_getUnicodeStringByIndex(mapping,2,&status);
303 uhash_iput(newNumericCodeMap.getAlias(),r->code,(void *)r,&status);
305 LocalPointer<UnicodeString> code3(new UnicodeString(codeMapping3Letter), status);
306 uhash_put(newRegionAliases.getAlias(),(void *)code3.orphan(), (void *)r,&status);
351 LocalUResourceBundlePointer mapping(ures_getNextResource(territoryContainment.getAlias(),NULL,&status));
352 if( U_FAILURE(status) ) {
364 UnicodeString child = ures_getUnicodeStringByIndex(mapping.getAlias(),j,&status);
371 new UVector(uprv_deleteUObject, uhash_compareUnicodeString, status), status);
373 if (U_FAILURE(status)) {
378 LocalPointer<UnicodeString> childStr(new UnicodeString(), status);
379 if (U_FAILURE(status)) {
383 parentRegion->containedRegions->adoptElement(childStr.orphan(),status);
384 if (U_FAILURE(status)) {
403 LocalPointer<UVector> newAr(new UVector(uprv_deleteUObject, uhash_compareUnicodeString, status), status);
406 LocalPointer<UnicodeString> arString(new UnicodeString(ar->idStr), status);
407 if( U_FAILURE(status) ) {
410 availableRegions[ar->fType]->adoptElement(arString.orphan(), status);
491 Region::getInstance(const char *region_code, UErrorCode &status) {
493 umtx_initOnce(gRegionDataInitOnce, &loadRegionData, status);
494 if (U_FAILURE(status)) {
499 status = U_ILLEGAL_ARGUMENT_ERROR;
511 status = U_ILLEGAL_ARGUMENT_ERROR;
516 StringEnumeration *pv = r->getPreferredValues(status);
517 pv->reset(status);
518 const UnicodeString *ustr = pv->snext(status);
532 Region::getInstance (int32_t code, UErrorCode &status) {
534 umtx_initOnce(gRegionDataInitOnce, &loadRegionData, status);
535 if (U_FAILURE(status)) {
547 if( U_FAILURE(status) ) {
552 status = U_ILLEGAL_ARGUMENT_ERROR;
557 StringEnumeration *pv = r->getPreferredValues(status);
558 pv->reset(status);
559 const UnicodeString *ustr = pv->snext(status);
572 Region::getAvailable(URegionType type, UErrorCode &status) {
573 umtx_initOnce(gRegionDataInitOnce, &loadRegionData, status); // returns immediately if U_FAILURE(status)
574 if (U_FAILURE(status)) {
577 return new RegionNameEnumeration(availableRegions[type],status);
587 UErrorCode status = U_ZERO_ERROR;
588 umtx_initOnce(gRegionDataInitOnce, &loadRegionData, status);
601 UErrorCode status = U_ZERO_ERROR;
602 umtx_initOnce(gRegionDataInitOnce, &loadRegionData, status);
619 Region::getContainedRegions(UErrorCode &status) const {
620 umtx_initOnce(gRegionDataInitOnce, &loadRegionData, status); // returns immediately if U_FAILURE(status)
621 if (U_FAILURE(status)) {
624 return new RegionNameEnumeration(containedRegions,status);
634 Region::getContainedRegions( URegionType type, UErrorCode &status ) const {
635 umtx_initOnce(gRegionDataInitOnce, &loadRegionData, status); // returns immediately if U_FAILURE(status)
637 UVector result(nullptr, uhash_compareChars, status);
638 LocalPointer<StringEnumeration> cr(getContainedRegions(status), status);
639 if (U_FAILURE(status)) {
644 while((regionId = cr->next(nullptr, status)) != nullptr && U_SUCCESS(status)) {
645 const Region *r = Region::getInstance(regionId, status);
647 result.addElement(const_cast<UnicodeString *>(&r->idStr), status);
649 LocalPointer<StringEnumeration> children(r->getContainedRegions(type, status));
651 while(U_SUCCESS(status) && ((id2 = children->next(nullptr, status)) != nullptr)) {
652 const Region *r2 = Region::getInstance(id2,status);
653 result.addElement(const_cast<UnicodeString *>(&r2->idStr), status);
658 new RegionNameEnumeration(&result, status), status);
659 return U_SUCCESS(status) ? resultEnumeration.orphan() : nullptr;
667 UErrorCode status = U_ZERO_ERROR;
668 umtx_initOnce(gRegionDataInitOnce, &loadRegionData, status);
694 Region::getPreferredValues(UErrorCode &status) const {
695 umtx_initOnce(gRegionDataInitOnce, &loadRegionData, status); // returns immediately if U_FAILURE(status)
696 if (U_FAILURE(status) || fType != URGN_DEPRECATED) {
699 return new RegionNameEnumeration(preferredValues,status);
724 RegionNameEnumeration::RegionNameEnumeration(UVector *nameList, UErrorCode& status) :
728 if (nameList && U_SUCCESS(status)) {
730 new UVector(uprv_deleteUObject, uhash_compareUnicodeString, nameList->size(), status), status);
731 for ( int32_t i = 0 ; U_SUCCESS(status) && i < nameList->size() ; i++ ) {
733 LocalPointer<UnicodeString> new_region_name(new UnicodeString(*this_region_name), status);
734 regionNames->adoptElement(new_region_name.orphan(), status);
736 if (U_SUCCESS(status)) {
743 RegionNameEnumeration::snext(UErrorCode& status) {
744 if (U_FAILURE(status) || (fRegionNames==NULL)) {
755 RegionNameEnumeration::reset(UErrorCode& /*status*/) {
760 RegionNameEnumeration::count(UErrorCode& /*status*/) const {