//Auto-generated by kalyptus. DO NOT EDIT.
namespace Kimono {
    using System;
    using Qyoto;
    /// <remarks>
    ///  The KSystemTimeZone class represents a time zone in the system database.
    ///  It works in partnership with the KSystemTimeZoneSource class which reads and parses the
    ///  time zone definition files.
    ///  Typically, instances are created and accessed via the KSystemTimeZones class.
    ///  @warning The KSystemTimeZone class uses the standard system libraries to
    ///  access time zone data, and its functionality is limited to what these libraries
    ///  provide. On many systems, dates earlier than 1970 are not handled, and on
    ///  non-GNU systems there is no guarantee that the time zone abbreviation returned
    ///  for a given date will be correct if the abbreviations applicable then were
    ///  not those currently in use. Consider using KSystemTimeZones.ReadZone() or the
    ///  KTzfileTimeZone class instead, which provide accurate information from the time
    ///  zone definition files (but are likely to incur more overhead).
    /// </remarks>        <author> David Jarvie <djarvie@kde.org>.
    ///  </author>
    ///         <short> System time zone.</short>
    ///         <see> KSystemTimeZones</see>
    ///         <see> KSystemTimeZoneSource</see>
    ///         <see> KSystemTimeZoneData</see>
    ///         <see> KTzfileTimeZone</see>
    ///         <see> @ingroup</see>
    ///         <see> timezones</see>
    [SmokeClass("KSystemTimeZone")]
    public class KSystemTimeZone : KTimeZone, IDisposable {
        protected KSystemTimeZone(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(KSystemTimeZone), this);
        }
        /// <remarks>
        ///  Creates a time zone.
        /// <param> name="source" tzfile reader and parser
        /// </param><param> name="name" time zone's unique name
        /// </param><param> name="countryCode" ISO 3166 2-character country code, empty if unknown
        /// </param><param> name="latitude" in degrees (between -90 and +90), UNKNOWN if not known
        /// </param><param> name="longitude" in degrees (between -180 and +180), UNKNOWN if not known
        /// </param><param> name="comment" description of the time zone, if any
        ///      </param></remarks>        <short>    Creates a time zone.</short>
        public KSystemTimeZone(KSystemTimeZoneSource source, string name, string countryCode, float latitude, float longitude, string comment) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KSystemTimeZone#$$$$$", "KSystemTimeZone(KSystemTimeZoneSource*, const QString&, const QString&, float, float, const QString&)", typeof(void), typeof(KSystemTimeZoneSource), source, typeof(string), name, typeof(string), countryCode, typeof(float), latitude, typeof(float), longitude, typeof(string), comment);
        }
        public KSystemTimeZone(KSystemTimeZoneSource source, string name, string countryCode, float latitude, float longitude) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KSystemTimeZone#$$$$", "KSystemTimeZone(KSystemTimeZoneSource*, const QString&, const QString&, float, float)", typeof(void), typeof(KSystemTimeZoneSource), source, typeof(string), name, typeof(string), countryCode, typeof(float), latitude, typeof(float), longitude);
        }
        public KSystemTimeZone(KSystemTimeZoneSource source, string name, string countryCode, float latitude) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KSystemTimeZone#$$$", "KSystemTimeZone(KSystemTimeZoneSource*, const QString&, const QString&, float)", typeof(void), typeof(KSystemTimeZoneSource), source, typeof(string), name, typeof(string), countryCode, typeof(float), latitude);
        }
        public KSystemTimeZone(KSystemTimeZoneSource source, string name, string countryCode) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KSystemTimeZone#$$", "KSystemTimeZone(KSystemTimeZoneSource*, const QString&, const QString&)", typeof(void), typeof(KSystemTimeZoneSource), source, typeof(string), name, typeof(string), countryCode);
        }
        public KSystemTimeZone(KSystemTimeZoneSource source, string name) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KSystemTimeZone#$", "KSystemTimeZone(KSystemTimeZoneSource*, const QString&)", typeof(void), typeof(KSystemTimeZoneSource), source, typeof(string), name);
        }
        ~KSystemTimeZone() {
            interceptor.Invoke("~KSystemTimeZone", "~KSystemTimeZone()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~KSystemTimeZone", "~KSystemTimeZone()", typeof(void));
        }
    }
}
