| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2 ******************************************************************************* | 2 ******************************************************************************* | 
| 3 * Copyright (C) 2011-2014, International Business Machines Corporation and    * | 3 * Copyright (C) 2011-2015, International Business Machines Corporation and    * | 
| 4 * others. All Rights Reserved.                                                * | 4 * others. All Rights Reserved.                                                * | 
| 5 ******************************************************************************* | 5 ******************************************************************************* | 
| 6 */ | 6 */ | 
| 7 | 7 | 
| 8 #include "unicode/utypes.h" | 8 #include "unicode/utypes.h" | 
| 9 | 9 | 
| 10 #if !UCONFIG_NO_FORMATTING | 10 #if !UCONFIG_NO_FORMATTING | 
| 11 | 11 | 
| 12 #include "unicode/locid.h" | 12 #include "unicode/locid.h" | 
| 13 #include "unicode/tznames.h" | 13 #include "unicode/tznames.h" | 
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 74     uprv_free(entry); | 74     uprv_free(entry); | 
| 75 } | 75 } | 
| 76 U_CDECL_END | 76 U_CDECL_END | 
| 77 | 77 | 
| 78 /** | 78 /** | 
| 79  * Function used for removing unreferrenced cache entries exceeding | 79  * Function used for removing unreferrenced cache entries exceeding | 
| 80  * the expiration time. This function must be called with in the mutex | 80  * the expiration time. This function must be called with in the mutex | 
| 81  * block. | 81  * block. | 
| 82  */ | 82  */ | 
| 83 static void sweepCache() { | 83 static void sweepCache() { | 
| 84     int32_t pos = -1; | 84     int32_t pos = UHASH_FIRST; | 
| 85     const UHashElement* elem; | 85     const UHashElement* elem; | 
| 86     double now = (double)uprv_getUTCtime(); | 86     double now = (double)uprv_getUTCtime(); | 
| 87 | 87 | 
| 88     while ((elem = uhash_nextElement(gTimeZoneNamesCache, &pos))) { | 88     while ((elem = uhash_nextElement(gTimeZoneNamesCache, &pos))) { | 
| 89         TimeZoneNamesCacheEntry *entry = (TimeZoneNamesCacheEntry *)elem->value.
     pointer; | 89         TimeZoneNamesCacheEntry *entry = (TimeZoneNamesCacheEntry *)elem->value.
     pointer; | 
| 90         if (entry->refCount <= 0 && (now - entry->lastAccess) > CACHE_EXPIRATION
     ) { | 90         if (entry->refCount <= 0 && (now - entry->lastAccess) > CACHE_EXPIRATION
     ) { | 
| 91             // delete this entry | 91             // delete this entry | 
| 92             uhash_removeElement(gTimeZoneNamesCache, elem); | 92             uhash_removeElement(gTimeZoneNamesCache, elem); | 
| 93         } | 93         } | 
| 94     } | 94     } | 
| (...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 294     TimeZoneNames *instance = NULL; | 294     TimeZoneNames *instance = NULL; | 
| 295     if (U_SUCCESS(status)) { | 295     if (U_SUCCESS(status)) { | 
| 296         instance = new TimeZoneNamesDelegate(locale, status); | 296         instance = new TimeZoneNamesDelegate(locale, status); | 
| 297         if (instance == NULL && U_SUCCESS(status)) { | 297         if (instance == NULL && U_SUCCESS(status)) { | 
| 298             status = U_MEMORY_ALLOCATION_ERROR; | 298             status = U_MEMORY_ALLOCATION_ERROR; | 
| 299         } | 299         } | 
| 300     } | 300     } | 
| 301     return instance; | 301     return instance; | 
| 302 } | 302 } | 
| 303 | 303 | 
| 304 #ifndef U_HIDE_DRAFT_API |  | 
| 305 TimeZoneNames* | 304 TimeZoneNames* | 
| 306 TimeZoneNames::createTZDBInstance(const Locale& locale, UErrorCode& status) { | 305 TimeZoneNames::createTZDBInstance(const Locale& locale, UErrorCode& status) { | 
| 307     TimeZoneNames *instance = NULL; | 306     TimeZoneNames *instance = NULL; | 
| 308     if (U_SUCCESS(status)) { | 307     if (U_SUCCESS(status)) { | 
| 309         instance = new TZDBTimeZoneNames(locale); | 308         instance = new TZDBTimeZoneNames(locale); | 
| 310         if (instance == NULL && U_SUCCESS(status)) { | 309         if (instance == NULL && U_SUCCESS(status)) { | 
| 311             status = U_MEMORY_ALLOCATION_ERROR; | 310             status = U_MEMORY_ALLOCATION_ERROR; | 
| 312         } | 311         } | 
| 313     } | 312     } | 
| 314     return instance; | 313     return instance; | 
| 315 } | 314 } | 
| 316 #endif /* U_HIDE_DRAFT_API */ |  | 
| 317 | 315 | 
| 318 UnicodeString& | 316 UnicodeString& | 
| 319 TimeZoneNames::getExemplarLocationName(const UnicodeString& tzID, UnicodeString&
      name) const { | 317 TimeZoneNames::getExemplarLocationName(const UnicodeString& tzID, UnicodeString&
      name) const { | 
| 320     return TimeZoneNamesImpl::getDefaultExemplarLocationName(tzID, name); | 318     return TimeZoneNamesImpl::getDefaultExemplarLocationName(tzID, name); | 
| 321 } | 319 } | 
| 322 | 320 | 
| 323 UnicodeString& | 321 UnicodeString& | 
| 324 TimeZoneNames::getDisplayName(const UnicodeString& tzID, UTimeZoneNameType type,
      UDate date, UnicodeString& name) const { | 322 TimeZoneNames::getDisplayName(const UnicodeString& tzID, UTimeZoneNameType type,
      UDate date, UnicodeString& name) const { | 
| 325     getTimeZoneDisplayName(tzID, type, name); | 323     getTimeZoneDisplayName(tzID, type, name); | 
| 326     if (name.isEmpty()) { | 324     if (name.isEmpty()) { | 
| 327         UnicodeString mzID; | 325         UChar mzIDBuf[32]; | 
|  | 326         UnicodeString mzID(mzIDBuf, 0, UPRV_LENGTHOF(mzIDBuf)); | 
| 328         getMetaZoneID(tzID, date, mzID); | 327         getMetaZoneID(tzID, date, mzID); | 
| 329         getMetaZoneDisplayName(mzID, type, name); | 328         getMetaZoneDisplayName(mzID, type, name); | 
| 330     } | 329     } | 
| 331     return name; | 330     return name; | 
| 332 } | 331 } | 
| 333 | 332 | 
| 334 | 333 | 
| 335 struct MatchInfo : UMemory { | 334 struct MatchInfo : UMemory { | 
| 336     UTimeZoneNameType nameType; | 335     UTimeZoneNameType nameType; | 
| 337     UnicodeString id; | 336     UnicodeString id; | 
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 467     } else if (U_FAILURE(status)) { | 466     } else if (U_FAILURE(status)) { | 
| 468         delete fMatches; | 467         delete fMatches; | 
| 469         fMatches = NULL; | 468         fMatches = NULL; | 
| 470     } | 469     } | 
| 471     return fMatches; | 470     return fMatches; | 
| 472 } | 471 } | 
| 473 | 472 | 
| 474 | 473 | 
| 475 U_NAMESPACE_END | 474 U_NAMESPACE_END | 
| 476 #endif | 475 #endif | 
| OLD | NEW | 
|---|