ICU 56.1  56.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
tznames.h
Go to the documentation of this file.
1 /*
2 *******************************************************************************
3 * Copyright (C) 2011-2015, International Business Machines Corporation and
4 * others. All Rights Reserved.
5 *******************************************************************************
6 */
7 #ifndef __TZNAMES_H
8 #define __TZNAMES_H
9 
14 #include "unicode/utypes.h"
15 
16 #if !UCONFIG_NO_FORMATTING
17 
18 #include "unicode/uloc.h"
19 #include "unicode/unistr.h"
20 
22 
27 typedef enum UTimeZoneNameType {
32  UTZNM_UNKNOWN = 0x00,
69 
71 
73 
74 class UVector;
75 struct MatchInfo;
76 
128 public:
133  virtual ~TimeZoneNames();
134 
141  virtual UBool operator==(const TimeZoneNames& other) const = 0;
142 
150  UBool operator!=(const TimeZoneNames& other) const { return !operator==(other); }
151 
158  virtual TimeZoneNames* clone() const = 0;
159 
168  static TimeZoneNames* U_EXPORT2 createInstance(const Locale& locale, UErrorCode& status);
169 
180  static TimeZoneNames* U_EXPORT2 createTZDBInstance(const Locale& locale, UErrorCode& status);
181 
188  virtual StringEnumeration* getAvailableMetaZoneIDs(UErrorCode& status) const = 0;
189 
197  virtual StringEnumeration* getAvailableMetaZoneIDs(const UnicodeString& tzID, UErrorCode& status) const = 0;
198 
209  virtual UnicodeString& getMetaZoneID(const UnicodeString& tzID, UDate date, UnicodeString& mzID) const = 0;
210 
227  virtual UnicodeString& getReferenceZoneID(const UnicodeString& mzID, const char* region, UnicodeString& tzID) const = 0;
228 
239  virtual UnicodeString& getMetaZoneDisplayName(const UnicodeString& mzID, UTimeZoneNameType type, UnicodeString& name) const = 0;
240 
251  virtual UnicodeString& getTimeZoneDisplayName(const UnicodeString& tzID, UTimeZoneNameType type, UnicodeString& name) const = 0;
252 
272  virtual UnicodeString& getExemplarLocationName(const UnicodeString& tzID, UnicodeString& name) const;
273 
289  virtual UnicodeString& getDisplayName(const UnicodeString& tzID, UTimeZoneNameType type, UDate date, UnicodeString& name) const;
290 
297  public:
307  virtual ~MatchInfoCollection();
308 
309 #ifndef U_HIDE_INTERNAL_API
310 
318  void addZone(UTimeZoneNameType nameType, int32_t matchLength,
319  const UnicodeString& tzID, UErrorCode& status);
320 
329  void addMetaZone(UTimeZoneNameType nameType, int32_t matchLength,
330  const UnicodeString& mzID, UErrorCode& status);
331 
337  int32_t size() const;
338 
347  UTimeZoneNameType getNameTypeAt(int32_t idx) const;
348 
356  int32_t getMatchLengthAt(int32_t idx) const;
357 
365  UBool getTimeZoneIDAt(int32_t idx, UnicodeString& tzID) const;
366 
374  UBool getMetaZoneIDAt(int32_t idx, UnicodeString& mzID) const;
375 #endif /* U_HIDE_INTERNAL_API */
376 
377  private:
378  UVector* fMatches; // vector of MatchEntry
379 
380  UVector* matches(UErrorCode& status);
381  };
382 
396  virtual MatchInfoCollection* find(const UnicodeString& text, int32_t start, uint32_t types, UErrorCode& status) const = 0;
397 };
398 
400 
401 #endif
402 #endif