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

- Search for |

- File List
- Globals

# basictz.h

Go to the documentation of this file.

    00001 /*
    00002 *******************************************************************************
    00003 * Copyright (C) 2007, International Business Machines Corporation and         *
    00004 * others. All Rights Reserved.                                                *
    00005 *******************************************************************************
    00006 */
    00007 #ifndef BASICTZ_H
    00008 #define BASICTZ_H
    00009
    00015 #include "unicode/utypes.h"
    00016
    00017 #if !UCONFIG_NO_FORMATTING
    00018
    00019 #include "unicode/timezone.h"
    00020 #include "unicode/tzrule.h"
    00021 #include "unicode/tztrans.h"
    00022
    00023 U_NAMESPACE_BEGIN
    00024
    00025 // forward declarations
    00026 class UVector;
    00027
    00034 class U_I18N_API BasicTimeZone: public TimeZone {
    00035 public:
    00040     virtual ~BasicTimeZone();
    00041
    00050     virtual UBool getNextTransition(UDate base, UBool inclusive, TimeZoneTransition& result) /*const*/ = 0;
    00051
    00060     virtual UBool getPreviousTransition(UDate base, UBool inclusive, TimeZoneTransition& result) /*const*/ = 0;
    00061
    00082     virtual UBool hasEquivalentTransitions(/*const*/ BasicTimeZone& tz, UDate start, UDate end,
    00083         UBool ignoreDstAmount, UErrorCode& ec) /*const*/;
    00084
    00093     virtual int32_t countTransitionRules(UErrorCode& status) /*const*/ = 0;
    00094
    00111     virtual void getTimeZoneRules(const InitialTimeZoneRule*& initial,
    00112         const TimeZoneRule* trsrules[], int32_t& trscount, UErrorCode& status) /*const*/ = 0;
    00113
    00140     virtual void getSimpleRulesNear(UDate date, InitialTimeZoneRule*& initial,
    00141         AnnualTimeZoneRule*& std, AnnualTimeZoneRule*& dst, UErrorCode& status) /*const*/;
    00142
    00143 protected:
    00148     BasicTimeZone();
    00149
    00155     BasicTimeZone(const UnicodeString &id);
    00156
    00162     BasicTimeZone(const BasicTimeZone& source);
    00163
    00171     void getTimeZoneRulesAfter(UDate start, InitialTimeZoneRule*& initial, UVector*& transitionRules,
    00172         UErrorCode& status) /*const*/;
    00173 };
    00174
    00175 U_NAMESPACE_END
    00176
    00177 #endif /* #if !UCONFIG_NO_FORMATTING */
    00178
    00179 #endif // BASICTZ_H
    00180
    00181 //eof