19#include "icalclusterimpl.h"
20#include "icalerror_p.h"
26 struct icalcluster_impl *cluster;
28 if ((cluster = (
struct icalcluster_impl *)malloc(
sizeof(
struct icalcluster_impl))) == 0) {
33 memset(cluster, 0,
sizeof(
struct icalcluster_impl));
34 strcpy(cluster->id, ICALCLUSTER_ID);
41 struct icalcluster_impl *cluster = icalcluster_new_impl();
46 assert(cluster->data == 0);
48 cluster->key = strdup(key);
72 struct icalcluster_impl *old_impl = (
struct icalcluster_impl *)old;
73 struct icalcluster_impl *cluster = icalcluster_new_impl();
76 cluster->key = strdup(old_impl->key);
90 if (cluster->key != 0) {
95 if (cluster->data != 0) {
105 icalerror_check_arg_rz((cluster != 0),
"cluster");
112 icalerror_check_arg_rz((cluster != 0),
"cluster");
114 return cluster->changed;
119 icalerror_check_arg_rv((cluster != 0),
"cluster");
121 cluster->changed = 1;
126 icalerror_check_arg_rv((cluster != 0),
"cluster");
128 cluster->changed = 0;
133 icalerror_check_arg_rz((cluster != 0),
"cluster");
138 icalerror_warn(
"The top component is not an XROOT");
140 fprintf(stderr,
"%s\n", obj);
145 return cluster->data;
181 icalerror_check_arg_rz((cluster != 0),
"cluster");
188 icalerror_check_arg_rz((cluster != 0),
"cluster");
195 icalerror_check_arg_rz((cluster != 0),
"cluster");
icalcomponent * icalcluster_get_current_component(icalcluster *cluster)
Iterate through components.
int icalcluster_count_components(icalcluster *cluster, icalcomponent_kind kind)
const char * icalcluster_key(const icalcluster *cluster)
icalerrorenum icalcluster_add_component(icalcluster *cluster, icalcomponent *child)
icalcomponent * icalcluster_get_component(const icalcluster *cluster)
void icalcluster_commit(icalcluster *cluster)
icalcomponent * icalcluster_get_next_component(icalcluster *cluster)
void icalcluster_free(icalcluster *cluster)
icalerrorenum icalcluster_remove_component(icalcluster *cluster, icalcomponent *child)
void icalcluster_mark(icalcluster *cluster)
icalcluster * icalcluster_new(const char *key, icalcomponent *data)
Create a cluster with a key/value pair.
int icalcluster_is_changed(const icalcluster *cluster)
icalcluster * icalcluster_clone(const icalcluster *old)
Deep clone an icalcluster to a new one.
icalcomponent * icalcluster_get_first_component(icalcluster *cluster)
Defines the data structure for calendar clusters.
struct icalcluster_impl icalcluster
icalcomponent * icalcomponent_get_next_component(icalcomponent *c, icalcomponent_kind kind)
icalcomponent * icalcomponent_get_first_component(icalcomponent *c, icalcomponent_kind kind)
icalcomponent * icalcomponent_get_current_component(icalcomponent *component)
void icalcomponent_remove_component(icalcomponent *parent, icalcomponent *child)
icalcomponent * icalcomponent_new(icalcomponent_kind kind)
icalcomponent * icalcomponent_clone(const icalcomponent *old)
char * icalcomponent_as_ical_string_r(const icalcomponent *component)
icalcomponent_kind icalcomponent_isa(const icalcomponent *component)
void icalcomponent_free(icalcomponent *c)
void icalcomponent_add_component(icalcomponent *parent, icalcomponent *child)
int icalcomponent_count_components(icalcomponent *component, icalcomponent_kind kind)
enum icalrequeststatus kind
void icalerror_set_errno(icalerrorenum x)
Sets the icalerrno to a given error.
icalerrorenum
Represents the different types of errors that can be triggered in libical.