Libical API Documentation  3.0
icaltimezone.h
Go to the documentation of this file.
1 /*======================================================================
2  FILE: icaltimezone.h
3  CREATOR: Damon Chaplin 15 March 2001
4 
5  (C) COPYRIGHT 2001, Damon Chaplin <damon@ximian.com>
6 
7  This library is free software; you can redistribute it and/or modify
8  it under the terms of either:
9 
10  The LGPL as published by the Free Software Foundation, version
11  2.1, available at: http://www.gnu.org/licenses/lgpl-2.1.html
12 
13  Or:
14 
15  The Mozilla Public License Version 2.0. You may obtain a copy of
16  the License at http://www.mozilla.org/MPL/
17 ======================================================================*/
23 #ifndef ICALTIMEZONE_H
24 #define ICALTIMEZONE_H
25 
26 #include "libical_ical_export.h"
27 #include "icalcomponent.h"
28 
29 #include <stdio.h>
30 
31 #if !defined(ICALTIMEZONE_DEFINED)
32 #define ICALTIMEZONE_DEFINED
33 
36 typedef struct _icaltimezone icaltimezone;
37 #endif
38 
44 LIBICAL_ICAL_EXPORT icaltimezone *icaltimezone_new(void);
45 
46 LIBICAL_ICAL_EXPORT icaltimezone *icaltimezone_copy(icaltimezone *originalzone);
47 
50 LIBICAL_ICAL_EXPORT void icaltimezone_free(icaltimezone *zone, int free_struct);
51 
57 LIBICAL_ICAL_EXPORT void icaltimezone_set_tzid_prefix(const char *new_prefix);
58 
64 LIBICAL_ICAL_EXPORT void icaltimezone_free_builtin_timezones(void);
65 
67 LIBICAL_ICAL_EXPORT icalarray *icaltimezone_get_builtin_timezones(void);
68 
70 LIBICAL_ICAL_EXPORT icaltimezone *icaltimezone_get_builtin_timezone(const char *location);
71 
73 LIBICAL_ICAL_EXPORT icaltimezone *icaltimezone_get_builtin_timezone_from_offset(int offset,
74  const char *tzname);
75 
77 LIBICAL_ICAL_EXPORT icaltimezone *icaltimezone_get_builtin_timezone_from_tzid(const char *tzid);
78 
80 LIBICAL_ICAL_EXPORT icaltimezone *icaltimezone_get_utc_timezone(void);
81 
83 LIBICAL_ICAL_EXPORT const char *icaltimezone_get_tzid(icaltimezone *zone);
84 
86 LIBICAL_ICAL_EXPORT const char *icaltimezone_get_location(icaltimezone *zone);
87 
92 LIBICAL_ICAL_EXPORT const char *icaltimezone_get_tznames(icaltimezone *zone);
93 
95 LIBICAL_ICAL_EXPORT double icaltimezone_get_latitude(icaltimezone *zone);
96 
98 LIBICAL_ICAL_EXPORT double icaltimezone_get_longitude(icaltimezone *zone);
99 
101 LIBICAL_ICAL_EXPORT icalcomponent *icaltimezone_get_component(icaltimezone *zone);
102 
106 LIBICAL_ICAL_EXPORT int icaltimezone_set_component(icaltimezone *zone, icalcomponent *comp);
107 
108 LIBICAL_ICAL_EXPORT const char *icaltimezone_get_display_name(icaltimezone *zone);
109 
114 LIBICAL_ICAL_EXPORT void icaltimezone_convert_time(struct icaltimetype *tt,
115  icaltimezone *from_zone,
116  icaltimezone *to_zone);
117 
126 LIBICAL_ICAL_EXPORT int icaltimezone_get_utc_offset(icaltimezone *zone,
127  struct icaltimetype *tt, int *is_daylight);
128 
133 LIBICAL_ICAL_EXPORT int icaltimezone_get_utc_offset_of_utc_time(icaltimezone *zone,
134  struct icaltimetype *tt,
135  int *is_daylight);
136 
137 /*
138  * Handling arrays of timezones. Mainly for internal use.
139  */
140 LIBICAL_ICAL_EXPORT icalarray *icaltimezone_array_new(void);
141 
142 LIBICAL_ICAL_EXPORT void icaltimezone_array_append_from_vtimezone(icalarray *timezones,
143  icalcomponent *child);
144 
145 LIBICAL_ICAL_EXPORT void icaltimezone_array_free(icalarray *timezones);
146 
147 /*
148  * By request (issue #112) make vtimezone functions public
149  */
150 LIBICAL_ICAL_EXPORT void icaltimezone_expand_vtimezone(icalcomponent *comp,
151  int end_year, icalarray *changes);
152 
154 
156 
157 /*
158  * @par Handling the default location the timezone files
159  */
160 
162 LIBICAL_ICAL_EXPORT void set_zone_directory(const char *path);
163 
165 LIBICAL_ICAL_EXPORT void free_zone_directory(void);
166 
167 LIBICAL_ICAL_EXPORT void icaltimezone_release_zone_tab(void);
168 
169 /*
170  * @par Handling whether to use builtin timezone files
171  */
172 LIBICAL_ICAL_EXPORT void icaltimezone_set_builtin_tzdata(int set);
173 
174 LIBICAL_ICAL_EXPORT int icaltimezone_get_builtin_tzdata(void);
175 
176 /*
177  * @par Debugging Output.
178  */
179 
182 LIBICAL_ICAL_EXPORT int icaltimezone_dump_changes(icaltimezone *zone, int max_year, FILE *fp);
183 
184 /* For the library only -- do not make visible */
185 extern const char *icaltimezone_tzid_prefix(void);
186 
187 #endif /* ICALTIMEZONE_H */
void icaltimezone_convert_time(struct icaltimetype *tt, icaltimezone *from_zone, icaltimezone *to_zone)
Definition: icaltimezone.c:777
char * icaltimezone_get_tznames_from_vtimezone(icalcomponent *component)
Definition: icaltimezone.c:363
int icaltimezone_get_utc_offset(icaltimezone *zone, struct icaltimetype *tt, int *is_daylight)
Definition: icaltimezone.c:802
int icaltimezone_set_component(icaltimezone *zone, icalcomponent *comp)
Definition: icaltimezone.c:1238
void icaltimezone_free(icaltimezone *zone, int free_struct)
Definition: icaltimezone.c:241
int icaltimezone_get_utc_offset_of_utc_time(icaltimezone *zone, struct icaltimetype *tt, int *is_daylight)
Definition: icaltimezone.c:963
icaltimezone * icaltimezone_new(void)
Definition: icaltimezone.c:191
double icaltimezone_get_longitude(icaltimezone *zone)
Definition: icaltimezone.c:1212
Definition: icalarray.h:35
icaltimezone * icaltimezone_get_builtin_timezone(const char *location)
Definition: icaltimezone.c:1340
icalcomponent * component
Definition: icaltimezoneimpl.h:50
void icaltimezone_free_builtin_timezones(void)
Definition: icaltimezone.c:1333
void set_zone_directory(const char *path)
Definition: icaltimezone.c:2099
icalcomponent * icaltimezone_get_component(icaltimezone *zone)
Definition: icaltimezone.c:1224
double icaltimezone_get_latitude(icaltimezone *zone)
Definition: icaltimezone.c:1200
char * icaltimezone_get_location_from_vtimezone(icalcomponent *component)
Definition: icaltimezone.c:331
const char * icaltimezone_get_location(icaltimezone *zone)
Definition: icaltimezone.c:1177
icaltimezone * icaltimezone_get_builtin_timezone_from_tzid(const char *tzid)
Definition: icaltimezone.c:1471
void icaltimezone_set_tzid_prefix(const char *new_prefix)
Definition: icaltimezone.c:2118
Definition: icalcomponent.c:33
Definition: icaltime.h:105
char * location
Definition: icaltimezoneimpl.h:31
void free_zone_directory(void)
Definition: icaltimezone.c:2110
int icaltimezone_dump_changes(icaltimezone *zone, int max_year, FILE *fp)
Definition: icaltimezone.c:1892
const char * icaltimezone_get_tznames(icaltimezone *zone)
Definition: icaltimezone.c:1188
icalarray * icaltimezone_get_builtin_timezones(void)
Definition: icaltimezone.c:1324
icaltimezone * icaltimezone_get_utc_timezone(void)
Definition: icaltimezone.c:1528
Definition: icaltimezoneimpl.h:23
icaltimezone * icaltimezone_get_builtin_timezone_from_offset(int offset, const char *tzname)
Definition: icaltimezone.c:1439
char * tzid
Definition: icaltimezoneimpl.h:25
int end_year
Definition: icaltimezoneimpl.h:61
const char * icaltimezone_get_tzid(icaltimezone *zone)
Definition: icaltimezone.c:1166
icalarray * changes
Definition: icaltimezoneimpl.h:66