//
//     Copyright 2007 Jim Bublitz <jbublitz@nwinternet.com>
//     Earlier copyrights 1998 - 2006 Jim Bublitz and/or Phil Thompson
//     may also apply

//                 Generated by preSip
//            module kdecore  version KDE 3.92.0

// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU Library General Public License as
// published by the Free Software Foundation; either version 2, or
// (at your option) any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details

// You should have received a copy of the GNU Library General Public
// License along with this program; if not, write to the
// Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

class KSystemTimeZones : QObject /Abstract/
{
%TypeHeaderCode
#include <ksystemtimezone.h>
%End


public:
    static KTimeZones*      timeZones ();
    static const KTimeZones::ZoneMap  zones ();
    static KTimeZone        zone (const QString& name);
    static KTimeZone        readZone (const QString& name);
    static KTimeZone        local ();
    static QString          zoneinfoDir ();

private:
                            KSystemTimeZones ();

public:
    ~KSystemTimeZones ();
    static KTimeZone        realLocalZone ();
    static void             setLocalZone (const KTimeZone& tz);
    static bool             isSimulated ();
    static bool             isTimeZoneDaemonAvailable ();
};
// class KSystemTimeZones


class KSystemTimeZone : KTimeZone
{
%TypeHeaderCode
#include <ksystemtimezone.h>
%End


public:
                            KSystemTimeZone (KSystemTimeZoneSource* source, const QString& name, const QString& countryCode = QString(), float latitude = KTimeZone::UNKNOWN, float longitude = KTimeZone::UNKNOWN, const QString& comment = QString());

    ~KSystemTimeZone ();
};
// class KSystemTimeZone


class KSystemTimeZoneBackend : KTimeZoneBackend
{
%TypeHeaderCode
#include <ksystemtimezone.h>
%End


public:
                            KSystemTimeZoneBackend (KSystemTimeZoneSource* source, const QString& name, const QString& countryCode, float latitude, float longitude, const QString& comment);
    virtual KTimeZoneBackend*  clone () const;
    virtual int             offsetAtZoneTime (const KTimeZone* caller, const QDateTime& zoneDateTime, int* secondOffset) const;
    virtual int             offsetAtUtc (const KTimeZone* caller, const QDateTime& utcDateTime) const;
    virtual int             offset (const KTimeZone* caller, time_t t) const;
    virtual bool            isDstAtUtc (const KTimeZone* caller, const QDateTime& utcDateTime) const;
    virtual bool            isDst (const KTimeZone* caller, time_t t) const;

    ~KSystemTimeZoneBackend ();
    virtual QByteArray      type () const;
};
// class KSystemTimeZoneBackend


class KSystemTimeZoneSource : KTimeZoneSource
{
%TypeHeaderCode
#include <ksystemtimezone.h>
%End


public:
                            KSystemTimeZoneSource ();
    virtual KTimeZoneData*  parse (const KTimeZone& zone) const;
    static void             startParseBlock ();
    static void             endParseBlock ();

    ~KSystemTimeZoneSource ();
};
// class KSystemTimeZoneSource
