aboutsummaryrefslogtreecommitdiffstats
path: root/libical/src/libical/icalcomponent.h
diff options
context:
space:
mode:
Diffstat (limited to 'libical/src/libical/icalcomponent.h')
-rw-r--r--libical/src/libical/icalcomponent.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/libical/src/libical/icalcomponent.h b/libical/src/libical/icalcomponent.h
index 6046bbee1e..55c0592bb2 100644
--- a/libical/src/libical/icalcomponent.h
+++ b/libical/src/libical/icalcomponent.h
@@ -32,6 +32,14 @@
typedef void icalcomponent;
+/* An opaque struct representing a timezone. We declare this here to avoid
+ a circular dependancy. */
+#ifndef ICALTIMEONE_DEFINED
+#define ICALTIMEONE_DEFINED
+typedef struct _icaltimezone icaltimezone;
+#endif
+
+
/* This is exposed so that callers will not have to allocate and
deallocate iterators. Pretend that you can't see it. */
typedef struct icalcompiter
@@ -97,6 +105,13 @@ void icalcomponent_remove_component(icalcomponent* parent,
int icalcomponent_count_components(icalcomponent* component,
icalcomponent_kind kind);
+/* This takes 2 VCALENDAR components and merges the second one into the first,
+ resolving any problems with conflicting TZIDs. comp_to_merge will no
+ longer exist after calling this function. */
+void icalcomponent_merge_component(icalcomponent* comp,
+ icalcomponent* comp_to_merge);
+
+
/* Iteration Routines. There are two forms of iterators, internal and
external. The internal ones came first, and are almost completely
sufficient, but they fail badly when you want to construct a loop that
@@ -217,7 +232,16 @@ int icalcomponent_remove_attendee(icalcomponent *comp, char* cuid);
struct icalattendeetype icalcomponent_get_attendee(icalcomponent *comp,
int index);
+/* Calls the given function for each TZID parameter found in the component,
+ and any subcomponents. */
+void icalcomponent_foreach_tzid(icalcomponent* comp,
+ void (*callback)(icalparameter *param, void *data),
+ void *callback_data);
+/* Returns the icaltimezone in the component corresponding to the TZID, or NULL
+ if it can't be found. */
+icaltimezone* icalcomponent_get_timezone(icalcomponent* comp,
+ const char *tzid);
/*************** Type Specific routines ***************/