#include "unicode/utypes.h"
#if !UCONFIG_NO_FORMATTING
#include "unicode/locid.h"
#include "unicode/tznames.h"
#include "unicode/uenum.h"
#include "cmemory.h"
#include "cstring.h"
#include "mutex.h"
#include "putilimp.h"
#include "tznames_impl.h"
#include "uassert.h"
#include "ucln_in.h"
#include "uhash.h"
#include "umutex.h"
#include "uvector.h"
U_NAMESPACE_BEGIN
static UMutex gTimeZoneNamesLock;
static UHashtable *gTimeZoneNamesCache = …;
static UBool gTimeZoneNamesCacheInitialized = …;
static int32_t gAccessCount = …;
#define SWEEP_INTERVAL …
#define CACHE_EXPIRATION …
TimeZoneNamesCacheEntry;
U_CDECL_BEGIN
static UBool U_CALLCONV timeZoneNames_cleanup()
{ … }
static void U_CALLCONV
deleteTimeZoneNamesCacheEntry(void *obj) { … }
U_CDECL_END
static void sweepCache() { … }
class TimeZoneNamesDelegate : public TimeZoneNames { … };
TimeZoneNamesDelegate::TimeZoneNamesDelegate()
: … { … }
TimeZoneNamesDelegate::TimeZoneNamesDelegate(const Locale& locale, UErrorCode& status) { … }
TimeZoneNamesDelegate::~TimeZoneNamesDelegate() { … }
bool
TimeZoneNamesDelegate::operator==(const TimeZoneNames& other) const { … }
TimeZoneNamesDelegate*
TimeZoneNamesDelegate::clone() const { … }
StringEnumeration*
TimeZoneNamesDelegate::getAvailableMetaZoneIDs(UErrorCode& status) const { … }
StringEnumeration*
TimeZoneNamesDelegate::getAvailableMetaZoneIDs(const UnicodeString& tzID, UErrorCode& status) const { … }
UnicodeString&
TimeZoneNamesDelegate::getMetaZoneID(const UnicodeString& tzID, UDate date, UnicodeString& mzID) const { … }
UnicodeString&
TimeZoneNamesDelegate::getReferenceZoneID(const UnicodeString& mzID, const char* region, UnicodeString& tzID) const { … }
UnicodeString&
TimeZoneNamesDelegate::getMetaZoneDisplayName(const UnicodeString& mzID, UTimeZoneNameType type, UnicodeString& name) const { … }
UnicodeString&
TimeZoneNamesDelegate::getTimeZoneDisplayName(const UnicodeString& tzID, UTimeZoneNameType type, UnicodeString& name) const { … }
UnicodeString&
TimeZoneNamesDelegate::getExemplarLocationName(const UnicodeString& tzID, UnicodeString& name) const { … }
void
TimeZoneNamesDelegate::loadAllDisplayNames(UErrorCode& status) { … }
void
TimeZoneNamesDelegate::getDisplayNames(const UnicodeString& tzID, const UTimeZoneNameType types[], int32_t numTypes, UDate date, UnicodeString dest[], UErrorCode& status) const { … }
TimeZoneNames::MatchInfoCollection*
TimeZoneNamesDelegate::find(const UnicodeString& text, int32_t start, uint32_t types, UErrorCode& status) const { … }
TimeZoneNames::~TimeZoneNames() { … }
TimeZoneNames*
TimeZoneNames::createInstance(const Locale& locale, UErrorCode& status) { … }
TimeZoneNames*
TimeZoneNames::createTZDBInstance(const Locale& locale, UErrorCode& status) { … }
UnicodeString&
TimeZoneNames::getExemplarLocationName(const UnicodeString& tzID, UnicodeString& name) const { … }
UnicodeString&
TimeZoneNames::getDisplayName(const UnicodeString& tzID, UTimeZoneNameType type, UDate date, UnicodeString& name) const { … }
void
TimeZoneNames::loadAllDisplayNames(UErrorCode& ) { … }
void
TimeZoneNames::getDisplayNames(const UnicodeString& tzID, const UTimeZoneNameType types[], int32_t numTypes, UDate date, UnicodeString dest[], UErrorCode& status) const { … }
struct MatchInfo : UMemory { … };
U_CDECL_BEGIN
static void U_CALLCONV
deleteMatchInfo(void *obj) { … }
U_CDECL_END
TimeZoneNames::MatchInfoCollection::MatchInfoCollection()
: … { … }
TimeZoneNames::MatchInfoCollection::~MatchInfoCollection() { … }
void
TimeZoneNames::MatchInfoCollection::addZone(UTimeZoneNameType nameType, int32_t matchLength,
const UnicodeString& tzID, UErrorCode& status) { … }
void
TimeZoneNames::MatchInfoCollection::addMetaZone(UTimeZoneNameType nameType, int32_t matchLength,
const UnicodeString& mzID, UErrorCode& status) { … }
int32_t
TimeZoneNames::MatchInfoCollection::size() const { … }
UTimeZoneNameType
TimeZoneNames::MatchInfoCollection::getNameTypeAt(int32_t idx) const { … }
int32_t
TimeZoneNames::MatchInfoCollection::getMatchLengthAt(int32_t idx) const { … }
UBool
TimeZoneNames::MatchInfoCollection::getTimeZoneIDAt(int32_t idx, UnicodeString& tzID) const { … }
UBool
TimeZoneNames::MatchInfoCollection::getMetaZoneIDAt(int32_t idx, UnicodeString& mzID) const { … }
UVector*
TimeZoneNames::MatchInfoCollection::matches(UErrorCode& status) { … }
U_NAMESPACE_END
#endif