2 ======================================================================
3 FILE: icaltimezoneimpl.h
4 CREATOR: glenn 07 March 2010
6 $Id: icalparameterimpl.h,v 1.4 2008-01-15 23:17:40 dothebart Exp $
10 (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
11 http://www.softwarestudio.org
13 This program is free software; you can redistribute it and/or modify
14 it under the terms of either:
16 The LGPL as published by the Free Software Foundation, version
17 2.1, available at: http://www.fsf.org/copyleft/lesser.html
21 The Mozilla Public License Version 1.0. You may obtain a copy of
22 the License at http://www.mozilla.org/MPL/
26 ======================================================================*/
31 #ifndef ICALTIMEZONE_IMPL
32 #define ICALTIMEZONE_IMPL
34 #include "icaltimezone.h"
35 #include "icalcomponent.h"
36 #include "icalarray.h"
38 struct _icaltimezone {
40 /**< The unique ID of this timezone,
41 e.g. "/citadel.org/Olson_20010601_1/Africa/Banjul".
42 This should only be used to identify a VTIMEZONE. It is not
43 meant to be displayed to the user in any form. */
46 /**< The location for the timezone, e.g. "Africa/Accra" for the
47 Olson database. We look for this in the "LOCATION" or
48 "X-LIC-LOCATION" properties of the VTIMEZONE component. It
49 isn't a standard property yet. This will be NULL if no location
50 is found in the VTIMEZONE. */
53 /**< This will be set to a combination of the TZNAME properties
54 from the last STANDARD and DAYLIGHT components in the
55 VTIMEZONE, e.g. "EST/EDT". If they both use the same TZNAME,
56 or only one type of component is found, then only one TZNAME
57 will appear, e.g. "AZOT". If no TZNAME is found this will be
62 /**< The coordinates of the city, in degrees. */
64 icalcomponent *component;
65 /**< The toplevel VTIMEZONE component loaded from the .ics file for this
66 timezone. If we need to regenerate the changes data we need this. */
68 icaltimezone *builtin_timezone;
69 /**< If this is not NULL it points to the builtin icaltimezone
70 that the above TZID refers to. This icaltimezone should be used
71 instead when accessing the timezone changes data, so that the
72 expanded timezone changes data is shared between calendar
76 /**< This is the last year for which we have expanded the data to.
77 If we need to calculate a date past this we need to expand the
78 timezone component data from scratch. */
81 /**< A dynamically-allocated array of time zone changes, sorted by the
82 time of the change in local time. So we can do fast binary-searches
83 to convert from local time to UTC. */
88 #endif /*ICALTIMEZONE_IMPL*/