"Fossies" - the Fresh Open Source Software Archive

Member "vtzone_8h_source.html" (3 Oct 2019, 49179 Bytes) of package /linux/misc/icu4c-65_1-docs.zip:


Caution: In this restricted "Fossies" environment the current HTML page may not be correctly presentated and may have some non-functional links. You can here alternatively try to browse the pure source code or just view or download the uninterpreted raw source code. If the rendering is insufficient you may try to find and view the page on the project site itself.

ICU 65.1  65.1
vtzone.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) 2007-2013, International Business Machines Corporation and
6 * others. All Rights Reserved.
7 *******************************************************************************
8 */
9 #ifndef VTZONE_H
10 #define VTZONE_H
11 
12 #include "unicode/utypes.h"
13 
14 #if U_SHOW_CPLUSPLUS_API
15 
21 #if !UCONFIG_NO_FORMATTING
22 
23 #include "unicode/basictz.h"
24 
25 U_NAMESPACE_BEGIN
26 
27 class VTZWriter;
28 class VTZReader;
29 class UVector;
30 
46 public:
52  VTimeZone(const VTimeZone& source);
53 
58  virtual ~VTimeZone();
59 
65  VTimeZone& operator=(const VTimeZone& right);
66 
75  virtual UBool operator==(const TimeZone& that) const;
76 
85  virtual UBool operator!=(const TimeZone& that) const;
86 
94  static VTimeZone* createVTimeZoneByID(const UnicodeString& ID);
95 
103  static VTimeZone* createVTimeZoneFromBasicTimeZone(const BasicTimeZone& basicTZ,
104  UErrorCode &status);
105 
115  static VTimeZone* createVTimeZone(const UnicodeString& vtzdata, UErrorCode& status);
116 
125  UBool getTZURL(UnicodeString& url) const;
126 
132  void setTZURL(const UnicodeString& url);
133 
142  UBool getLastModified(UDate& lastModified) const;
143 
149  void setLastModified(UDate lastModified);
150 
157  void write(UnicodeString& result, UErrorCode& status) const;
158 
167  void write(UDate start, UnicodeString& result, UErrorCode& status) const;
168 
182  void writeSimple(UDate time, UnicodeString& result, UErrorCode& status) const;
183 
190  virtual VTimeZone* clone() const;
191 
216  virtual int32_t getOffset(uint8_t era, int32_t year, int32_t month, int32_t day,
217  uint8_t dayOfWeek, int32_t millis, UErrorCode& status) const;
218 
238  virtual int32_t getOffset(uint8_t era, int32_t year, int32_t month, int32_t day,
239  uint8_t dayOfWeek, int32_t millis,
240  int32_t monthLength, UErrorCode& status) const;
241 
264  virtual void getOffset(UDate date, UBool local, int32_t& rawOffset,
265  int32_t& dstOffset, UErrorCode& ec) const;
266 
274  virtual void setRawOffset(int32_t offsetMillis);
275 
283  virtual int32_t getRawOffset(void) const;
284 
291  virtual UBool useDaylightTime(void) const;
292 
293 #ifndef U_FORCE_HIDE_DEPRECATED_API
294 
307  virtual UBool inDaylightTime(UDate date, UErrorCode& status) const;
308 #endif // U_FORCE_HIDE_DEPRECATED_API
309 
318  virtual UBool hasSameRules(const TimeZone& other) const;
319 
328  virtual UBool getNextTransition(UDate base, UBool inclusive, TimeZoneTransition& result) const;
329 
338  virtual UBool getPreviousTransition(UDate base, UBool inclusive, TimeZoneTransition& result) const;
339 
348  virtual int32_t countTransitionRules(UErrorCode& status) const;
349 
366  virtual void getTimeZoneRules(const InitialTimeZoneRule*& initial,
367  const TimeZoneRule* trsrules[], int32_t& trscount, UErrorCode& status) const;
368 
369 private:
370  enum { DEFAULT_VTIMEZONE_LINES = 100 };
371 
375  VTimeZone();
376  static VTimeZone* createVTimeZone(VTZReader* reader);
377  void write(VTZWriter& writer, UErrorCode& status) const;
378  void write(UDate start, VTZWriter& writer, UErrorCode& status) const;
379  void writeSimple(UDate time, VTZWriter& writer, UErrorCode& status) const;
380  void load(VTZReader& reader, UErrorCode& status);
381  void parse(UErrorCode& status);
382 
383  void writeZone(VTZWriter& w, BasicTimeZone& basictz, UVector* customProps,
384  UErrorCode& status) const;
385 
386  void writeHeaders(VTZWriter& w, UErrorCode& status) const;
387  void writeFooter(VTZWriter& writer, UErrorCode& status) const;
388 
389  void writeZonePropsByTime(VTZWriter& writer, UBool isDst, const UnicodeString& zonename,
390  int32_t fromOffset, int32_t toOffset, UDate time, UBool withRDATE,
391  UErrorCode& status) const;
392  void writeZonePropsByDOM(VTZWriter& writer, UBool isDst, const UnicodeString& zonename,
393  int32_t fromOffset, int32_t toOffset,
394  int32_t month, int32_t dayOfMonth, UDate startTime, UDate untilTime,
395  UErrorCode& status) const;
396  void writeZonePropsByDOW(VTZWriter& writer, UBool isDst, const UnicodeString& zonename,
397  int32_t fromOffset, int32_t toOffset,
398  int32_t month, int32_t weekInMonth, int32_t dayOfWeek,
399  UDate startTime, UDate untilTime, UErrorCode& status) const;
400  void writeZonePropsByDOW_GEQ_DOM(VTZWriter& writer, UBool isDst, const UnicodeString& zonename,
401  int32_t fromOffset, int32_t toOffset,
402  int32_t month, int32_t dayOfMonth, int32_t dayOfWeek,
403  UDate startTime, UDate untilTime, UErrorCode& status) const;
404  void writeZonePropsByDOW_GEQ_DOM_sub(VTZWriter& writer, int32_t month, int32_t dayOfMonth,
405  int32_t dayOfWeek, int32_t numDays,
406  UDate untilTime, int32_t fromOffset, UErrorCode& status) const;
407  void writeZonePropsByDOW_LEQ_DOM(VTZWriter& writer, UBool isDst, const UnicodeString& zonename,
408  int32_t fromOffset, int32_t toOffset,
409  int32_t month, int32_t dayOfMonth, int32_t dayOfWeek,
410  UDate startTime, UDate untilTime, UErrorCode& status) const;
411  void writeFinalRule(VTZWriter& writer, UBool isDst, const AnnualTimeZoneRule* rule,
412  int32_t fromRawOffset, int32_t fromDSTSavings,
413  UDate startTime, UErrorCode& status) const;
414 
415  void beginZoneProps(VTZWriter& writer, UBool isDst, const UnicodeString& zonename,
416  int32_t fromOffset, int32_t toOffset, UDate startTime, UErrorCode& status) const;
417  void endZoneProps(VTZWriter& writer, UBool isDst, UErrorCode& status) const;
418  void beginRRULE(VTZWriter& writer, int32_t month, UErrorCode& status) const;
419  void appendUNTIL(VTZWriter& writer, const UnicodeString& until, UErrorCode& status) const;
420 
421  BasicTimeZone *tz;
422  UVector *vtzlines;
423  UnicodeString tzurl;
424  UDate lastmod;
425  UnicodeString olsonzid;
426  UnicodeString icutzver;
427 
428 public:
440  static UClassID U_EXPORT2 getStaticClassID(void);
441 
453  virtual UClassID getDynamicClassID(void) const;
454 };
455 
456 U_NAMESPACE_END
457 
458 #endif /* #if !UCONFIG_NO_FORMATTING */
459 
460 #endif /* U_SHOW_CPLUSPLUS_API */
461 
462 #endif // VTZONE_H
463 //eof
virtual UBool useDaylightTime(void) const =0
Queries if this time zone uses daylight savings time.
virtual UBool getPreviousTransition(UDate base, UBool inclusive, TimeZoneTransition &result) const =0
Gets the most recent time zone transition before the base time.
virtual int32_t getOffset(uint8_t era, int32_t year, int32_t month, int32_t day, uint8_t dayOfWeek, int32_t millis, UErrorCode &status) const =0
Returns the TimeZone's adjusted GMT offset (i.e., the number of milliseconds to add to GMT to get loc...
TimeZone & operator=(const TimeZone &right)
Default assignment operator.
double UDate
Date and Time data type.
Definition: utypes.h:203
virtual UBool operator==(const TimeZone &that) const
Returns true if the two TimeZones are equal.
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
Definition: uobject.h:96
static UClassID getStaticClassID(void)
Return the class ID for this class.
VTimeZone is a class implementing RFC2445 VTIMEZONE.
Definition: vtzone.h:45
TimeZone represents a time zone offset, and also figures out daylight savings.
Definition: timezone.h:133
C++ API: ICU TimeZone base class.
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside...
Definition: utypes.h:301
TimeZoneRule is a class representing a rule for time zone.
Definition: tzrule.h:36
InitialTimeZoneRule represents a time zone rule representing a time zone effective from the beginning...
Definition: tzrule.h:202
TimeZoneTransition is a class representing a time zone transition.
Definition: tztrans.h:35
virtual UClassID getDynamicClassID(void) const =0
Returns a unique class ID POLYMORPHICALLY.
BasicTimeZone is an abstract class extending TimeZone.
Definition: basictz.h:38
AnnualTimeZoneRule is a class used for representing a time zone rule which takes effect annually...
Definition: tzrule.h:380
virtual void setRawOffset(int32_t offsetMillis)=0
Sets the TimeZone's raw GMT offset (i.e., the number of milliseconds to add to GMT to get local time...
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
Definition: utypes.h:415
virtual void getTimeZoneRules(const InitialTimeZoneRule *&initial, const TimeZoneRule *trsrules[], int32_t &trscount, UErrorCode &status) const =0
Gets the InitialTimeZoneRule and the set of TimeZoneRule which represent time transitions for this ti...
virtual UBool hasSameRules(const TimeZone &other) const
Returns true if this zone has the same rule and offset as another zone.
Basic definitions for ICU, for both C and C++ APIs.
virtual BasicTimeZone * clone() const =0
Clones this object polymorphically.
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition: unistr.h:294
virtual UBool getNextTransition(UDate base, UBool inclusive, TimeZoneTransition &result) const =0
Gets the first time zone transition after the base time.
virtual int32_t countTransitionRules(UErrorCode &status) const =0
Returns the number of TimeZoneRules which represents time transitions, for this time zone...
virtual int32_t getRawOffset(void) const =0
Returns the TimeZone's raw GMT offset (i.e., the number of milliseconds to add to GMT to get local ti...
virtual UBool inDaylightTime(UDate date, UErrorCode &status) const =0
Queries if the given date is in daylight savings time in this time zone.
UBool operator!=(const TimeZone &that) const
Returns true if the two TimeZones are NOT equal; that is, if operator==() returns false...
Definition: timezone.h:459
int8_t UBool
The ICU boolean type.
Definition: umachine.h:261