$darkmode
Libical API Documentation 4.0 STABLE VERSION Visit the v3.0 documentation
icaltimezone.h
Go to the documentation of this file.
1 /*======================================================================
2  FILE: icaltimezone.h
3  CREATOR: Damon Chaplin 15 March 2001
4 
5  SPDX-FileCopyrightText: 2001, Damon Chaplin <damon@ximian.com>
6  SPDX-License-Identifier: LGPL-2.1-only OR MPL-2.0
7 ======================================================================*/
8 
14 #ifndef ICALTIMEZONE_H
15 #define ICALTIMEZONE_H
16 
17 #include "libical_ical_export.h"
18 #include "icalcomponent.h"
19 
20 #include <stdbool.h>
21 #include <stdio.h>
22 
23 #if !defined(ICALTIMEZONE_DEFINED)
24 #define ICALTIMEZONE_DEFINED
25 
29 typedef struct _icaltimezone icaltimezone;
30 #endif
31 
32 /*
33  * Creating/Destroying individual icaltimezones.
34  */
35 
42 LIBICAL_ICAL_EXPORT icaltimezone *icaltimezone_new(void);
43 
53 LIBICAL_ICAL_EXPORT icaltimezone *icaltimezone_copy(const icaltimezone *originalzone);
54 
59 LIBICAL_ICAL_EXPORT void icaltimezone_free(icaltimezone *zone, int free_struct);
60 
76 LIBICAL_ICAL_EXPORT void icaltimezone_set_tzid_prefix(const char *new_prefix);
77 
83 LIBICAL_ICAL_EXPORT const char *icaltimezone_tzid_prefix(void);
84 
85 /*
86  * Accessing timezones.
87  */
88 
90 LIBICAL_ICAL_EXPORT void icaltimezone_free_builtin_timezones(void);
91 
102 LIBICAL_ICAL_EXPORT icalarray *icaltimezone_get_builtin_timezones(void);
103 
113 LIBICAL_ICAL_EXPORT icaltimezone *icaltimezone_get_builtin_timezone(const char *location);
114 
125 LIBICAL_ICAL_EXPORT icaltimezone *icaltimezone_get_builtin_timezone_from_offset(int offset,
126  const char *tzname);
127 
135 LIBICAL_ICAL_EXPORT icaltimezone *icaltimezone_get_builtin_timezone_from_tzid(const char *tzid);
136 
142 LIBICAL_ICAL_EXPORT icaltimezone *icaltimezone_get_utc_timezone(void);
143 
152 LIBICAL_ICAL_EXPORT const char *icaltimezone_get_tzid(icaltimezone *zone);
153 
162 LIBICAL_ICAL_EXPORT const char *icaltimezone_get_location(const icaltimezone *zone);
163 
176 LIBICAL_ICAL_EXPORT const char *icaltimezone_get_tznames(icaltimezone *zone);
177 
185 LIBICAL_ICAL_EXPORT double icaltimezone_get_latitude(const icaltimezone *zone);
186 
194 LIBICAL_ICAL_EXPORT double icaltimezone_get_longitude(const icaltimezone *zone);
195 
203 LIBICAL_ICAL_EXPORT icalcomponent *icaltimezone_get_component(icaltimezone *zone);
204 
214 LIBICAL_ICAL_EXPORT bool icaltimezone_set_component(icaltimezone *zone, icalcomponent *comp);
215 
227 LIBICAL_ICAL_EXPORT const char *icaltimezone_get_display_name(icaltimezone *zone);
228 
240 LIBICAL_ICAL_EXPORT void icaltimezone_convert_time(struct icaltimetype *tt,
241  icaltimezone *from_zone,
242  icaltimezone *to_zone);
243 
244 /*
245  * Getting offsets from UTC.
246  */
247 
263 LIBICAL_ICAL_EXPORT int icaltimezone_get_utc_offset(icaltimezone *zone,
264  const struct icaltimetype *tt, int *is_daylight);
265 
280 LIBICAL_ICAL_EXPORT int icaltimezone_get_utc_offset_of_utc_time(icaltimezone *zone,
281  const struct icaltimetype *tt,
282  int *is_daylight);
283 
285 
286 /*
287  * Handling arrays of timezones. For internal use.
288  */
289 LIBICAL_ICAL_NO_EXPORT icalarray *icaltimezone_array_new(void);
290 
291 LIBICAL_ICAL_NO_EXPORT void icaltimezone_array_append_from_vtimezone(icalarray *timezones,
292  icalcomponent *child);
293 
294 LIBICAL_ICAL_NO_EXPORT void icaltimezone_array_free(icalarray *timezones);
296 
305 LIBICAL_ICAL_EXPORT void icaltimezone_expand_vtimezone(icalcomponent *comp,
306  int end_year,
307  icalarray *changes);
308 
317 LIBICAL_ICAL_EXPORT char *icaltimezone_get_location_from_vtimezone(icalcomponent *component);
318 
330 LIBICAL_ICAL_EXPORT char *icaltimezone_get_tznames_from_vtimezone(icalcomponent *component);
331 
349 LIBICAL_ICAL_EXPORT void icaltimezone_truncate_vtimezone(icalcomponent *vtz,
350  icaltimetype start,
351  icaltimetype end,
352  bool ms_compatible);
353 
354 /*
355  * @par Handling the default location the timezone files
356  */
357 
372 LIBICAL_ICAL_EXPORT const char *icaltimezone_get_system_zone_directory(void);
373 
381 LIBICAL_ICAL_EXPORT void icaltimezone_set_system_zone_directory(const char *zonepath);
382 
388 LIBICAL_ICAL_EXPORT const char *icaltimezone_get_zone_directory(void);
389 
397 LIBICAL_ICAL_EXPORT void icaltimezone_set_zone_directory(const char *path);
398 
404 LIBICAL_ICAL_EXPORT void icaltimezone_free_zone_directory(void);
405 
412 LIBICAL_ICAL_EXPORT void icaltimezone_set_builtin_tzdata(bool set);
413 
419 LIBICAL_ICAL_EXPORT bool icaltimezone_get_builtin_tzdata(void);
420 
421 /*
422  * Debugging Output.
423  */
424 
448 LIBICAL_ICAL_EXPORT bool icaltimezone_dump_changes(icaltimezone *zone, int max_year, FILE *fp);
449 
450 #endif /* ICALTIMEZONE_H */
const char * icaltimezone_tzid_prefix(void)
Definition: icaltimezone.c:239
void icaltimezone_free_zone_directory(void)
void icaltimezone_convert_time(struct icaltimetype *tt, icaltimezone *from_zone, icaltimezone *to_zone)
Definition: icaltimezone.c:864
char * icaltimezone_get_tznames_from_vtimezone(icalcomponent *component)
Definition: icaltimezone.c:424
const char * icaltimezone_get_location(const icaltimezone *zone)
bool icaltimezone_set_component(icaltimezone *zone, icalcomponent *comp)
void icaltimezone_truncate_vtimezone(icalcomponent *vtz, icaltimetype start, icaltimetype end, bool ms_compatible)
void icaltimezone_free(icaltimezone *zone, int free_struct)
Frees all memory used for the icaltimezone.
Definition: icaltimezone.c:308
void icaltimezone_expand_vtimezone(icalcomponent *comp, int end_year, icalarray *changes)
Definition: icaltimezone.c:604
void icaltimezone_set_system_zone_directory(const char *zonepath)
icaltimezone * icaltimezone_new(void)
Definition: icaltimezone.c:244
int icaltimezone_get_utc_offset(icaltimezone *zone, const struct icaltimetype *tt, int *is_daylight)
Definition: icaltimezone.c:887
Defines the data structure for iCalendar components.
icaltimezone * icaltimezone_get_builtin_timezone(const char *location)
const char * icaltimezone_get_zone_directory(void)
void icaltimezone_free_builtin_timezones(void)
Releases builtin timezone memory.
void icaltimezone_set_zone_directory(const char *path)
icalcomponent * icaltimezone_get_component(icaltimezone *zone)
bool icaltimezone_get_builtin_tzdata(void)
double icaltimezone_get_longitude(const icaltimezone *zone)
char * icaltimezone_get_location_from_vtimezone(icalcomponent *component)
Definition: icaltimezone.c:396
const char * icaltimezone_get_system_zone_directory(void)
icaltimezone * icaltimezone_get_builtin_timezone_from_tzid(const char *tzid)
void icaltimezone_set_tzid_prefix(const char *new_prefix)
icaltimezone * icaltimezone_copy(const icaltimezone *originalzone)
Definition: icaltimezone.c:259
struct _icaltimezone icaltimezone
Definition: icaltimezone.h:29
const char * icaltimezone_get_tznames(icaltimezone *zone)
double icaltimezone_get_latitude(const icaltimezone *zone)
icalarray * icaltimezone_get_builtin_timezones(void)
icaltimezone * icaltimezone_get_utc_timezone(void)
bool icaltimezone_dump_changes(icaltimezone *zone, int max_year, FILE *fp)
icaltimezone * icaltimezone_get_builtin_timezone_from_offset(int offset, const char *tzname)
void icaltimezone_set_builtin_tzdata(bool set)
int icaltimezone_get_utc_offset_of_utc_time(icaltimezone *zone, const struct icaltimetype *tt, int *is_daylight)
const char * icaltimezone_get_tzid(icaltimezone *zone)
const char * icaltimezone_get_display_name(icaltimezone *zone)