ICU 64.2  64.2
tznames.h
Go to the documentation of this file.
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4 *******************************************************************************
5 * Copyright (C) 2011-2016, International Business Machines Corporation and
6 * others. All Rights Reserved.
7 *******************************************************************************
8 */
9 #ifndef __TZNAMES_H
10 #define __TZNAMES_H
11 
16 #include "unicode/utypes.h"
17 
18 #if !UCONFIG_NO_FORMATTING
19 
20 #include "unicode/uloc.h"
21 #include "unicode/unistr.h"
22 
24 
29 typedef enum UTimeZoneNameType {
34  UTZNM_UNKNOWN = 0x00,
71 
73 
75 
76 class UVector;
77 struct MatchInfo;
78 
130 public:
135  virtual ~TimeZoneNames();
136 
143  virtual UBool operator==(const TimeZoneNames& other) const = 0;
144 
152  UBool operator!=(const TimeZoneNames& other) const { return !operator==(other); }
153 
160  virtual TimeZoneNames* clone() const = 0;
161 
170  static TimeZoneNames* U_EXPORT2 createInstance(const Locale& locale, UErrorCode& status);
171 
182  static TimeZoneNames* U_EXPORT2 createTZDBInstance(const Locale& locale, UErrorCode& status);
183 
190  virtual StringEnumeration* getAvailableMetaZoneIDs(UErrorCode& status) const = 0;
191 
199  virtual StringEnumeration* getAvailableMetaZoneIDs(const UnicodeString& tzID, UErrorCode& status) const = 0;
200 
211  virtual UnicodeString& getMetaZoneID(const UnicodeString& tzID, UDate date, UnicodeString& mzID) const = 0;
212 
229  virtual UnicodeString& getReferenceZoneID(const UnicodeString& mzID, const char* region, UnicodeString& tzID) const = 0;
230 
241  virtual UnicodeString& getMetaZoneDisplayName(const UnicodeString& mzID, UTimeZoneNameType type, UnicodeString& name) const = 0;
242 
253  virtual UnicodeString& getTimeZoneDisplayName(const UnicodeString& tzID, UTimeZoneNameType type, UnicodeString& name) const = 0;
254 
274  virtual UnicodeString& getExemplarLocationName(const UnicodeString& tzID, UnicodeString& name) const;
275 
291  virtual UnicodeString& getDisplayName(const UnicodeString& tzID, UTimeZoneNameType type, UDate date, UnicodeString& name) const;
292 
296  virtual void loadAllDisplayNames(UErrorCode& status);
297 
301  virtual void getDisplayNames(const UnicodeString& tzID, const UTimeZoneNameType types[], int32_t numTypes, UDate date, UnicodeString dest[], UErrorCode& status) const;
302 
309  public:
319  virtual ~MatchInfoCollection();
320 
321 #ifndef U_HIDE_INTERNAL_API
322 
330  void addZone(UTimeZoneNameType nameType, int32_t matchLength,
331  const UnicodeString& tzID, UErrorCode& status);
332 
341  void addMetaZone(UTimeZoneNameType nameType, int32_t matchLength,
342  const UnicodeString& mzID, UErrorCode& status);
343 
349  int32_t size() const;
350 
359  UTimeZoneNameType getNameTypeAt(int32_t idx) const;
360 
368  int32_t getMatchLengthAt(int32_t idx) const;
369 
377  UBool getTimeZoneIDAt(int32_t idx, UnicodeString& tzID) const;
378 
386  UBool getMetaZoneIDAt(int32_t idx, UnicodeString& mzID) const;
387 #endif /* U_HIDE_INTERNAL_API */
388 
389  private:
390  UVector* fMatches; // vector of MatchEntry
391 
392  UVector* matches(UErrorCode& status);
393  };
394 
408  virtual MatchInfoCollection* find(const UnicodeString& text, int32_t start, uint32_t types, UErrorCode& status) const = 0;
409 };
410 
412 
413 #endif
414 #endif
double UDate
Date and Time data type.
Definition: utypes.h:203
C++ API: Unicode String.
U_EXPORT UBool operator==(const StringPiece &x, const StringPiece &y)
Global operator == for StringPiece.
Base class for 'pure' C++ implementations of uenum api.
Definition: strenum.h:57
Long display name, such as "Eastern Time".
Definition: tznames.h:39
UBool operator!=(const TimeZoneNames &other) const
Return true if the given TimeZoneNames objects are not semantically equal.
Definition: tznames.h:152
#define U_CDECL_BEGIN
This is used to begin a declaration of a library private ICU C API.
Definition: umachine.h:84
Short display name, such as "ET".
Definition: tznames.h:54
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside...
Definition: utypes.h:301
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition: uversion.h:137
MatchInfoCollection represents a collection of time zone name matches used by TimeZoneNames#find.
Definition: tznames.h:308
Long display name for standard time, such as "Eastern Standard Time".
Definition: tznames.h:44
Short display name for standard time, such as "EST".
Definition: tznames.h:59
TimeZoneNames is an abstract class representing the time zone display name data model defined by UTS#...
Definition: tznames.h:129
#define U_CDECL_END
This is used to end a declaration of a library private ICU C API.
Definition: umachine.h:85
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition: uversion.h:138
Unknown display name type.
Definition: tznames.h:34
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers...
Definition: utypes.h:401
Exemplar location name, such as "Los Angeles".
Definition: tznames.h:69
Basic definitions for ICU, for both C and C++ APIs.
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition: unistr.h:289
Long display name for daylight saving time, such as "Eastern Daylight Time".
Definition: tznames.h:49
UTimeZoneNameType
Constants for time zone display name types.
Definition: tznames.h:29
UObject is the common ICU "boilerplate" class.
Definition: uobject.h:223
UMemory is the common ICU base class.
Definition: uobject.h:112
int8_t UBool
The ICU boolean type.
Definition: umachine.h:225
C API: Locale.
Short display name for daylight saving time, such as "EDT".
Definition: tznames.h:64
A Locale object represents a specific geographical, political, or cultural region.
Definition: locid.h:192