ICU 56.1: vtzone.h Source File

ICU 56.1 56.1

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- File List
- Globals

vtzone.h
Go to the documentation of this file.
1 /*
2 *******************************************************************************
3 * Copyright (C) 2007-2013, International Business Machines Corporation and
4 * others. All Rights Reserved.
5 *******************************************************************************
6 */
7 #ifndef VTZONE_H
8 #define VTZONE_H
9
10 #include "unicode/utypes.h"
11
17 #if !UCONFIG_NO_FORMATTING
18
19 #include "unicode/basictz.h"
20
21 U_NAMESPACE_BEGIN
22
23 class VTZWriter;
24 class VTZReader;
25 class UVector;
26
41 class U_I18N_API VTimeZone : public BasicTimeZone {
42 public:
48 VTimeZone(const VTimeZone& source);
49
54 virtual ~VTimeZone();
55
61 VTimeZone& operator=(const VTimeZone& right);
62
71 virtual UBool operator==(const TimeZone& that) const;
72
81 virtual UBool operator!=(const TimeZone& that) const;
82
90 static VTimeZone* createVTimeZoneByID(const UnicodeString& ID);
91
99 static VTimeZone* createVTimeZoneFromBasicTimeZone(const BasicTimeZone& basicTZ,
100 UErrorCode &status);
101
111 static VTimeZone* createVTimeZone(const UnicodeString& vtzdata, UErrorCode& status);
112
121 UBool getTZURL(UnicodeString& url) const;
122
128 void setTZURL(const UnicodeString& url);
129
138 UBool getLastModified(UDate& lastModified) const;
139
145 void setLastModified(UDate lastModified);
146
153 void write(UnicodeString& result, UErrorCode& status) const;
154
163 void write(UDate start, UnicodeString& result, UErrorCode& status) const;
164
178 void writeSimple(UDate time, UnicodeString& result, UErrorCode& status) const;
179
186 virtual TimeZone* clone(void) const;
187
212 virtual int32_t getOffset(uint8_t era, int32_t year, int32_t month, int32_t day,
213 uint8_t dayOfWeek, int32_t millis, UErrorCode& status) const;
214
234 virtual int32_t getOffset(uint8_t era, int32_t year, int32_t month, int32_t day,
235 uint8_t dayOfWeek, int32_t millis,
236 int32_t monthLength, UErrorCode& status) const;
237
260 virtual void getOffset(UDate date, UBool local, int32_t& rawOffset,
261 int32_t& dstOffset, UErrorCode& ec) const;
262
270 virtual void setRawOffset(int32_t offsetMillis);
271
279 virtual int32_t getRawOffset(void) const;
280
287 virtual UBool useDaylightTime(void) const;
288
302 virtual UBool inDaylightTime(UDate date, UErrorCode& status) const;
303
312 virtual UBool hasSameRules(const TimeZone& other) const;
313
322 virtual UBool getNextTransition(UDate base, UBool inclusive, TimeZoneTransition& result) const;
323
332 virtual UBool getPreviousTransition(UDate base, UBool inclusive, TimeZoneTransition& result) const;
333
342 virtual int32_t countTransitionRules(UErrorCode& status) const;
343
360 virtual void getTimeZoneRules(const InitialTimeZoneRule*& initial,
361 const TimeZoneRule* trsrules[], int32_t& trscount, UErrorCode& status) const;
362
363 private:
364 enum { DEFAULT_VTIMEZONE_LINES = 100 };
365
369 VTimeZone();
370 static VTimeZone* createVTimeZone(VTZReader* reader);
371 void write(VTZWriter& writer, UErrorCode& status) const;
372 void write(UDate start, VTZWriter& writer, UErrorCode& status) const;
373 void writeSimple(UDate time, VTZWriter& writer, UErrorCode& status) const;
374 void load(VTZReader& reader, UErrorCode& status);
375 void parse(UErrorCode& status);
376
377 void writeZone(VTZWriter& w, BasicTimeZone& basictz, UVector* customProps,
378 UErrorCode& status) const;
379
380 void writeHeaders(VTZWriter& w, UErrorCode& status) const;
381 void writeFooter(VTZWriter& writer, UErrorCode& status) const;
382
383 void writeZonePropsByTime(VTZWriter& writer, UBool isDst, const UnicodeString& zonename,
384 int32_t fromOffset, int32_t toOffset, UDate time, UBool withRDATE,
385 UErrorCode& status) const;
386 void writeZonePropsByDOM(VTZWriter& writer, UBool isDst, const UnicodeString& zonename,
387 int32_t fromOffset, int32_t toOffset,
388 int32_t month, int32_t dayOfMonth, UDate startTime, UDate untilTime,
389 UErrorCode& status) const;
390 void writeZonePropsByDOW(VTZWriter& writer, UBool isDst, const UnicodeString& zonename,
391 int32_t fromOffset, int32_t toOffset,
392 int32_t month, int32_t weekInMonth, int32_t dayOfWeek,
393 UDate startTime, UDate untilTime, UErrorCode& status) const;
394 void writeZonePropsByDOW_GEQ_DOM(VTZWriter& writer, UBool isDst, const UnicodeString& zonename,
395 int32_t fromOffset, int32_t toOffset,
396 int32_t month, int32_t dayOfMonth, int32_t dayOfWeek,
397 UDate startTime, UDate untilTime, UErrorCode& status) const;
398 void writeZonePropsByDOW_GEQ_DOM_sub(VTZWriter& writer, int32_t month, int32_t dayOfMonth,
399 int32_t dayOfWeek, int32_t numDays,
400 UDate untilTime, int32_t fromOffset, UErrorCode& status) const;
401 void writeZonePropsByDOW_LEQ_DOM(VTZWriter& writer, UBool isDst, const UnicodeString& zonename,
402 int32_t fromOffset, int32_t toOffset,
403 int32_t month, int32_t dayOfMonth, int32_t dayOfWeek,
404 UDate startTime, UDate untilTime, UErrorCode& status) const;
405 void writeFinalRule(VTZWriter& writer, UBool isDst, const AnnualTimeZoneRule* rule,
406 int32_t fromRawOffset, int32_t fromDSTSavings,
407 UDate startTime, UErrorCode& status) const;
408
409 void beginZoneProps(VTZWriter& writer, UBool isDst, const UnicodeString& zonename,
410 int32_t fromOffset, int32_t toOffset, UDate startTime, UErrorCode& status) const;
411 void endZoneProps(VTZWriter& writer, UBool isDst, UErrorCode& status) const;
412 void beginRRULE(VTZWriter& writer, int32_t month, UErrorCode& status) const;
413 void appendUNTIL(VTZWriter& writer, const UnicodeString& until, UErrorCode& status) const;
414
415 BasicTimeZone *tz;
416 UVector *vtzlines;
417 UnicodeString tzurl;
418 UDate lastmod;
419 UnicodeString olsonzid;
420 UnicodeString icutzver;
421
422 public:
434 static UClassID U_EXPORT2 getStaticClassID(void);
435
447 virtual UClassID getDynamicClassID(void) const;
448 };
449
450 U_NAMESPACE_END
451
452 #endif /* #if !UCONFIG_NO_FORMATTING */
453
454 #endif // VTZONE_H
455 //eof
icu::TimeZone::useDaylightTime
virtual UBool useDaylightTime(void) const =0
Queries if this time zone uses daylight savings time.
icu::TimeZone::getDynamicClassID
virtual UClassID getDynamicClassID(void) const =0
Returns a unique class ID POLYMORPHICALLY.
icu::TimeZone::operator==
virtual UBool operator==(const TimeZone &that) const
Returns true if the two TimeZones are equal.
icu::TimeZone::inDaylightTime
virtual UBool inDaylightTime(UDate date, UErrorCode &status) const =0
Queries if the given date is in daylight savings time in this time zone.
icu::TimeZone::operator=
TimeZone & operator=(const TimeZone &right)
Default assignment operator.
icu::TimeZone::getOffset
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...
UDate
double UDate
Date and Time data type.
Definition: utypes.h:201
UClassID
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
Definition: uobject.h:91
icu::TimeZone::getStaticClassID
static UClassID getStaticClassID(void)
Return the class ID for this class.
icu::VTimeZone
VTimeZone is a class implementing RFC2445 VTIMEZONE.
Definition: vtzone.h:41
icu::TimeZone
TimeZone represents a time zone offset, and also figures out daylight savings.
Definition: timezone.h:129
icu::TimeZone::clone
virtual TimeZone * clone(void) const =0
Clones TimeZone objects polymorphically.
basictz.h
C++ API: ICU TimeZone base class.
U_I18N_API
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside...
Definition: utypes.h:358
icu::TimeZoneRule
TimeZoneRule is a class representing a rule for time zone.
Definition: tzrule.h:32
icu::InitialTimeZoneRule
InitialTimeZoneRule represents a time zone rule representing a time zone effective from the beginning...
Definition: tzrule.h:198
U_NAMESPACE_BEGIN
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition: uversion.h:129
icu::BasicTimeZone::getPreviousTransition
virtual UBool getPreviousTransition(UDate base, UBool inclusive, TimeZoneTransition &result) const =0
Gets the most recent time zone transition before the base time.
icu::TimeZone::hasSameRules
virtual UBool hasSameRules(const TimeZone &other) const
Returns true if this zone has the same rule and offset as another zone.
icu::TimeZoneTransition
TimeZoneTransition is a class representing a time zone transition.
Definition: tztrans.h:31
icu::BasicTimeZone::getNextTransition
virtual UBool getNextTransition(UDate base, UBool inclusive, TimeZoneTransition &result) const =0
Gets the first time zone transition after the base time.
icu::BasicTimeZone
BasicTimeZone is an abstract class extending TimeZone.
Definition: basictz.h:34
icu::BasicTimeZone::countTransitionRules
virtual int32_t countTransitionRules(UErrorCode &status) const =0
Returns the number of TimeZoneRules which represents time transitions, for this time zone...
icu::AnnualTimeZoneRule
AnnualTimeZoneRule is a class used for representing a time zone rule which takes effect annually...
Definition: tzrule.h:376
icu::TimeZone::getRawOffset
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...
U_NAMESPACE_END
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition: uversion.h:130
icu::TimeZone::operator!=
UBool operator!=(const TimeZone &that) const
Returns true if the two TimeZones are NOT equal; that is, if operator==() returns false...
Definition: timezone.h:452
icu::TimeZone::setRawOffset
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
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers...
Definition: utypes.h:476
utypes.h
Basic definitions for ICU, for both C and C++ APIs.
icu::BasicTimeZone::getTimeZoneRules
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...
icu::UnicodeString
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition: unistr.h:293
UBool
int8_t UBool
The ICU boolean type.
Definition: umachine.h:234