Libical API Documentation 4.0 UNRELEASED Go to the stable 3.0 documentation
Loading...
Searching...
No Matches
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======================================================================*/
12
13#ifndef ICALTIMEZONE_H
14#define ICALTIMEZONE_H
15
16#include "libical_ical_export.h"
17#include "icalcomponent.h"
18
19#include <stdbool.h>
20#include <stdio.h>
21
22#if !defined(ICALTIMEZONE_DEFINED)
23#define ICALTIMEZONE_DEFINED
27typedef struct _icaltimezone icaltimezone;
28#endif
29
30/*
31 * Creating/Destroying individual icaltimezones.
32 */
33
35LIBICAL_ICAL_EXPORT icaltimezone *icaltimezone_new(void);
36
37LIBICAL_ICAL_EXPORT icaltimezone *icaltimezone_copy(const icaltimezone *originalzone);
38
43LIBICAL_ICAL_EXPORT void icaltimezone_free(icaltimezone *zone, int free_struct);
44
60LIBICAL_ICAL_EXPORT void icaltimezone_set_tzid_prefix(const char *new_prefix);
61
63LIBICAL_ICAL_EXPORT const char *icaltimezone_tzid_prefix(void);
64
65/*
66 * Accessing timezones.
67 */
68
70LIBICAL_ICAL_EXPORT void icaltimezone_free_builtin_timezones(void);
71
79LIBICAL_ICAL_EXPORT icalarray *icaltimezone_get_builtin_timezones(void);
80
82LIBICAL_ICAL_EXPORT icaltimezone *icaltimezone_get_builtin_timezone(const char *location);
83
86 const char *tzname);
87
89LIBICAL_ICAL_EXPORT icaltimezone *icaltimezone_get_builtin_timezone_from_tzid(const char *tzid);
90
92LIBICAL_ICAL_EXPORT icaltimezone *icaltimezone_get_utc_timezone(void);
93
95LIBICAL_ICAL_EXPORT const char *icaltimezone_get_tzid(icaltimezone *zone);
96
98LIBICAL_ICAL_EXPORT const char *icaltimezone_get_location(const icaltimezone *zone);
99
104LIBICAL_ICAL_EXPORT const char *icaltimezone_get_tznames(icaltimezone *zone);
105
107LIBICAL_ICAL_EXPORT double icaltimezone_get_latitude(const icaltimezone *zone);
108
110LIBICAL_ICAL_EXPORT double icaltimezone_get_longitude(const icaltimezone *zone);
111
113LIBICAL_ICAL_EXPORT icalcomponent *icaltimezone_get_component(icaltimezone *zone);
114
120LIBICAL_ICAL_EXPORT bool icaltimezone_set_component(icaltimezone *zone, icalcomponent *comp);
121
128LIBICAL_ICAL_EXPORT const char *icaltimezone_get_display_name(icaltimezone *zone);
129
140
141LIBICAL_ICAL_EXPORT void icaltimezone_convert_time(struct icaltimetype *tt,
142 icaltimezone *from_zone,
143 icaltimezone *to_zone);
144
145/*
146 * Getting offsets from UTC.
147 */
148
155LIBICAL_ICAL_EXPORT int icaltimezone_get_utc_offset(icaltimezone *zone,
156 const struct icaltimetype *tt, int *is_daylight);
157
163LIBICAL_ICAL_EXPORT int icaltimezone_get_utc_offset_of_utc_time(icaltimezone *zone,
164 const struct icaltimetype *tt,
165 int *is_daylight);
166
167/*
168 * Handling arrays of timezones. For internal use.
169 */
170LIBICAL_ICAL_NO_EXPORT icalarray *icaltimezone_array_new(void);
171
172LIBICAL_ICAL_NO_EXPORT void icaltimezone_array_append_from_vtimezone(icalarray *timezones,
173 icalcomponent *child);
174
175LIBICAL_ICAL_NO_EXPORT void icaltimezone_array_free(icalarray *timezones);
176
177/*
178 * By request (issue #112) make vtimezone functions public
179 */
180LIBICAL_ICAL_EXPORT void icaltimezone_expand_vtimezone(icalcomponent *comp,
182
184LIBICAL_ICAL_EXPORT char *icaltimezone_get_location_from_vtimezone(icalcomponent *component);
185
192LIBICAL_ICAL_EXPORT char *icaltimezone_get_tznames_from_vtimezone(icalcomponent *component);
193
194/*
195 * Truncate a VTIMEZONE component to the given start and end times.
196 * If either time is null, then no truncation will occur at that point.
197 * If either time is non-null, then it MUST be specified as UTC.
198 * If the start time is non-null and ms_compatible is false,
199 * then the DTSTART of RRULEs will be adjusted to occur after the start time.
200 * @since 3.0.6
201 */
202LIBICAL_ICAL_EXPORT void icaltimezone_truncate_vtimezone(icalcomponent *vtz,
203 icaltimetype start,
204 icaltimetype end,
205 bool ms_compatible);
206
207/*
208 * @par Handling the default location the timezone files
209 */
210
221LIBICAL_ICAL_EXPORT const char *icaltimezone_get_system_zone_directory(void);
222
230LIBICAL_ICAL_EXPORT void icaltimezone_set_system_zone_directory(const char *zonepath);
231
233LIBICAL_ICAL_EXPORT const char *icaltimezone_get_zone_directory(void);
234
236LIBICAL_ICAL_EXPORT void icaltimezone_set_zone_directory(const char *path);
237
239LIBICAL_ICAL_EXPORT void icaltimezone_free_zone_directory(void);
240
241/*
242 * @par Handling whether to use builtin timezone files
243 */
244LIBICAL_ICAL_EXPORT void icaltimezone_set_builtin_tzdata(bool set);
245
246LIBICAL_ICAL_EXPORT bool icaltimezone_get_builtin_tzdata(void);
247
248/*
249 * Debugging Output.
250 */
251
269LIBICAL_ICAL_EXPORT bool icaltimezone_dump_changes(icaltimezone *zone, int max_year, FILE *fp);
270
271#endif /* ICALTIMEZONE_H */
struct _icalarray icalarray
A struct representing an icalarray object.
Definition icalarray.h:26
struct _icaltimezone icaltimezone
An opaque struct representing a timezone. We declare this here to avoid a circular dependency.
Definition icaltime.h:84
icaltimezone * icaltimezone_new(void)
Creates a new icaltimezone.
Definition icaltimezone.c:210
void icaltimezone_set_tzid_prefix(const char *new_prefix)
Definition icaltimezone.c:2276
icaltimezone * icaltimezone_get_builtin_timezone_from_offset(int offset, const char *tzname)
Returns a single builtin timezone, given its offset from UTC.
Definition icaltimezone.c:1464
double icaltimezone_get_longitude(const icaltimezone *zone)
Returns the longitude of a builtin timezone.
Definition icaltimezone.c:1256
void icaltimezone_free_zone_directory(void)
Definition icaltimezone.c:2268
const char * icaltimezone_get_location(const icaltimezone *zone)
Definition icaltimezone.c:1220
char * icaltimezone_get_location_from_vtimezone(icalcomponent *component)
Gets the LOCATION or X-LIC-LOCATION property from a VTIMEZONE.
Definition icaltimezone.c:344
char * icaltimezone_get_tznames_from_vtimezone(icalcomponent *component)
Gets the TZNAMEs used for the last STANDARD & DAYLIGHT components in a VTIMEZONE.
Definition icaltimezone.c:372
double icaltimezone_get_latitude(const icaltimezone *zone)
Returns the latitude of a builtin timezone.
Definition icaltimezone.c:1244
void icaltimezone_set_system_zone_directory(const char *zonepath)
Definition icaltimezone.c:2200
int icaltimezone_get_utc_offset_of_utc_time(icaltimezone *zone, const struct icaltimetype *tt, int *is_daylight)
Calculates the UTC offset of a given UTC time in the given timezone.
Definition icaltimezone.c:997
icalcomponent * icaltimezone_get_component(icaltimezone *zone)
Returns the VTIMEZONE component of a timezone.
Definition icaltimezone.c:1268
const char * icaltimezone_get_system_zone_directory(void)
Definition icaltimezone.c:2235
void icaltimezone_free_builtin_timezones(void)
Releases builtin timezone memory.
Definition icaltimezone.c:1373
int icaltimezone_get_utc_offset(icaltimezone *zone, const struct icaltimetype *tt, int *is_daylight)
Calculates the UTC offset of a given local time in the given timezone.
Definition icaltimezone.c:832
const char * icaltimezone_get_tznames(icaltimezone *zone)
Definition icaltimezone.c:1232
icaltimezone * icaltimezone_get_builtin_timezone(const char *location)
Returns a single builtin timezone, given its Olson city name.
Definition icaltimezone.c:1381
icalarray * icaltimezone_get_builtin_timezones(void)
Returns an icalarray of icaltimezone structs, one for each builtin timezone.
Definition icaltimezone.c:1364
const char * icaltimezone_get_tzid(icaltimezone *zone)
Definition icaltimezone.c:1208
icaltimezone * icaltimezone_get_utc_timezone(void)
Returns the UTC timezone.
Definition icaltimezone.c:1563
void icaltimezone_set_zone_directory(const char *path)
Definition icaltimezone.c:2253
void icaltimezone_free(icaltimezone *zone, int free_struct)
Frees all memory used for the icaltimezone.
Definition icaltimezone.c:259
const char * icaltimezone_get_display_name(icaltimezone *zone)
Returns the timezone name to display to the user.
Definition icaltimezone.c:1307
const char * icaltimezone_get_zone_directory(void)
Definition icaltimezone.c:2244
icaltimezone * icaltimezone_get_builtin_timezone_from_tzid(const char *tzid)
Returns a single builtin timezone, given its TZID.
Definition icaltimezone.c:1494
void icaltimezone_convert_time(struct icaltimetype *tt, icaltimezone *from_zone, icaltimezone *to_zone)
Definition icaltimezone.c:809
bool icaltimezone_dump_changes(icaltimezone *zone, int max_year, FILE *fp)
Outputs a list of timezone changes for the given timezone to the given file, up to the maximum year g...
Definition icaltimezone.c:1979
bool icaltimezone_set_component(icaltimezone *zone, icalcomponent *comp)
Sets the VTIMEZONE component of an icaltimezone, initializing the tzid, location & tzname fields.
Definition icaltimezone.c:1280
const char * icaltimezone_tzid_prefix(void)
Definition icaltimezone.c:205
Definition icaltimezoneimpl.h:16
icalcomponent * component
Definition icaltimezoneimpl.h:42
icalarray * changes
Definition icaltimezoneimpl.h:58
char * location
Definition icaltimezoneimpl.h:23
char * tzid
Definition icaltimezoneimpl.h:17
int end_year
Definition icaltimezoneimpl.h:53
Definition icaltime.h:96