15#ifndef ICALCOMPONENT_H 
   16#define ICALCOMPONENT_H 
   18#include "libical_sentinel.h" 
   19#include "libical_ical_export.h" 
   29    icalcomponent_kind kind;
 
 
   34    icalproperty_kind kind;
 
 
   57LIBICAL_ICAL_EXPORT LIBICAL_SENTINEL icalcomponent *
icalcomponent_vanew(icalcomponent_kind kind, ...);
 
   65LIBICAL_ICAL_EXPORT 
void icalcomponent_free(icalcomponent *component);
 
   67LIBICAL_ICAL_EXPORT 
char *icalcomponent_as_ical_string(icalcomponent *component);
 
   69LIBICAL_ICAL_EXPORT 
char *icalcomponent_as_ical_string_r(icalcomponent *component);
 
   71LIBICAL_ICAL_EXPORT 
bool icalcomponent_is_valid(icalcomponent *component);
 
   73LIBICAL_ICAL_EXPORT icalcomponent_kind icalcomponent_isa(
const icalcomponent *component);
 
   75LIBICAL_ICAL_EXPORT 
bool icalcomponent_isa_component(
void *component);
 
   79LIBICAL_ICAL_EXPORT 
void icalcomponent_set_x_name(icalcomponent *comp, 
const char *name);
 
   80LIBICAL_ICAL_EXPORT 
const char *icalcomponent_get_x_name(icalcomponent *comp);
 
   86LIBICAL_ICAL_EXPORT 
char *icalcomponent_get_component_name_r(
const icalcomponent *comp);
 
   90LIBICAL_ICAL_EXPORT 
void icalcomponent_add_property(icalcomponent *component,
 
   91                                                    icalproperty *property);
 
   93LIBICAL_ICAL_EXPORT 
void icalcomponent_remove_property(icalcomponent *component,
 
   94                                                       icalproperty *property);
 
   96LIBICAL_ICAL_EXPORT 
int icalcomponent_count_properties(icalcomponent *component,
 
   97                                                       icalproperty_kind kind);
 
  104                                                 icalcomponent *component);
 
  112LIBICAL_ICAL_EXPORT icalproperty *icalcomponent_get_current_property(icalcomponent *component);
 
  114LIBICAL_ICAL_EXPORT icalproperty *icalcomponent_get_first_property(icalcomponent *component,
 
  115                                                                   icalproperty_kind kind);
 
  116LIBICAL_ICAL_EXPORT icalproperty *icalcomponent_get_next_property(icalcomponent *component,
 
  117                                                                  icalproperty_kind kind);
 
  125LIBICAL_ICAL_EXPORT 
void icalcomponent_add_component(icalcomponent *parent, icalcomponent *child);
 
  127LIBICAL_ICAL_EXPORT 
void icalcomponent_remove_component(icalcomponent *parent,
 
  128                                                        icalcomponent *child);
 
  130LIBICAL_ICAL_EXPORT 
int icalcomponent_count_components(icalcomponent *component,
 
  131                                                       icalcomponent_kind kind);
 
  139                                                       icalcomponent *comp_to_merge);
 
  147LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_get_current_component(icalcomponent *component);
 
  149LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_get_first_component(icalcomponent *component,
 
  150                                                                     icalcomponent_kind kind);
 
  151LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_get_next_component(icalcomponent *component,
 
  152                                                                    icalcomponent_kind kind);
 
  155LIBICAL_ICAL_EXPORT 
icalcompiter icalcomponent_begin_component(icalcomponent *component,
 
  156                                                               icalcomponent_kind kind);
 
  158LIBICAL_ICAL_EXPORT 
icalcompiter icalcomponent_end_component(icalcomponent *component,
 
  159                                                             icalcomponent_kind kind);
 
  161LIBICAL_ICAL_EXPORT icalcomponent *icalcompiter_next(
icalcompiter *i);
 
  163LIBICAL_ICAL_EXPORT icalcomponent *icalcompiter_prior(
icalcompiter *i);
 
  165LIBICAL_ICAL_EXPORT icalcomponent *icalcompiter_deref(
icalcompiter *i);
 
  167LIBICAL_ICAL_EXPORT 
icalpropiter icalcomponent_begin_property(icalcomponent *component,
 
  168                                                              icalproperty_kind kind);
 
  170LIBICAL_ICAL_EXPORT icalproperty *icalpropiter_next(
icalpropiter *i);
 
  172LIBICAL_ICAL_EXPORT icalproperty *icalpropiter_deref(
icalpropiter *i);
 
  178LIBICAL_ICAL_EXPORT 
int icalcomponent_check_restrictions(icalcomponent *comp);
 
  194LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_get_parent(icalcomponent *component);
 
  196LIBICAL_ICAL_EXPORT 
void icalcomponent_set_parent(icalcomponent *component,
 
  197                                                  icalcomponent *parent);
 
  201LIBICAL_ICAL_EXPORT 
bool icalcomponent_kind_is_valid(
const icalcomponent_kind kind);
 
  203LIBICAL_ICAL_EXPORT icalcomponent_kind icalcomponent_string_to_kind(
const char *
string);
 
  205LIBICAL_ICAL_EXPORT 
const char *icalcomponent_kind_to_string(icalcomponent_kind kind);
 
  234LIBICAL_ICAL_EXPORT 
struct icaltime_span icalcomponent_get_span(icalcomponent *comp);
 
  254LIBICAL_ICAL_EXPORT 
struct icaltimetype icalcomponent_get_dtstart(icalcomponent *comp);
 
  290LIBICAL_ICAL_EXPORT 
struct icaltimetype icalcomponent_get_dtend(icalcomponent *comp);
 
  316LIBICAL_ICAL_EXPORT 
struct icaltimetype icalcomponent_get_due(icalcomponent *comp);
 
  361LIBICAL_ICAL_EXPORT 
struct icaldurationtype icalcomponent_get_duration(icalcomponent *comp);
 
  371LIBICAL_ICAL_EXPORT 
struct icaltimetype icalcomponent_get_dtstamp(icalcomponent *comp);
 
  373LIBICAL_ICAL_EXPORT 
void icalcomponent_set_dtstamp(icalcomponent *comp, 
struct icaltimetype v);
 
  375LIBICAL_ICAL_EXPORT 
void icalcomponent_set_summary(icalcomponent *comp, 
const char *v);
 
  377LIBICAL_ICAL_EXPORT 
const char *icalcomponent_get_summary(icalcomponent *comp);
 
  379LIBICAL_ICAL_EXPORT 
void icalcomponent_set_comment(icalcomponent *comp, 
const char *v);
 
  381LIBICAL_ICAL_EXPORT 
const char *icalcomponent_get_comment(icalcomponent *comp);
 
  383LIBICAL_ICAL_EXPORT 
void icalcomponent_set_uid(icalcomponent *comp, 
const char *v);
 
  385LIBICAL_ICAL_EXPORT 
const char *icalcomponent_get_uid(icalcomponent *comp);
 
  391LIBICAL_ICAL_EXPORT 
void icalcomponent_set_recurrenceid(icalcomponent *comp,
 
  394LIBICAL_ICAL_EXPORT 
struct icaltimetype icalcomponent_get_recurrenceid(icalcomponent *comp);
 
  396LIBICAL_ICAL_EXPORT 
void icalcomponent_set_description(icalcomponent *comp, 
const char *v);
 
  398LIBICAL_ICAL_EXPORT 
const char *icalcomponent_get_description(icalcomponent *comp);
 
  400LIBICAL_ICAL_EXPORT 
void icalcomponent_set_location(icalcomponent *comp, 
const char *v);
 
  402LIBICAL_ICAL_EXPORT 
const char *icalcomponent_get_location(icalcomponent *comp);
 
  404LIBICAL_ICAL_EXPORT 
void icalcomponent_set_sequence(icalcomponent *comp, 
int v);
 
  406LIBICAL_ICAL_EXPORT 
int icalcomponent_get_sequence(icalcomponent *comp);
 
  408LIBICAL_ICAL_EXPORT 
void icalcomponent_set_status(icalcomponent *comp, 
enum icalproperty_status v);
 
  410LIBICAL_ICAL_EXPORT 
enum icalproperty_status icalcomponent_get_status(icalcomponent *comp);
 
  416                                                    void (*callback)(icalparameter *param,
 
  418                                                    void *callback_data);
 
  473                                                          void (*callback)(icalcomponent *comp,
 
  477                                                          void *callback_data);
 
  497    icalcomponent *comp);
 
  500LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vcalendar(
void);
 
  502LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vevent(
void);
 
  504LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vtodo(
void);
 
  506LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vjournal(
void);
 
  508LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_valarm(
void);
 
  510LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vfreebusy(
void);
 
  512LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vtimezone(
void);
 
  514LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_xstandard(
void);
 
  516LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_xdaylight(
void);
 
  518LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vagenda(
void);
 
  520LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vquery(
void);
 
  522LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vavailability(
void);
 
  524LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_xavailable(
void);
 
  526LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vpoll(
void);
 
  528LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vvoter(
void);
 
  530LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_xvote(
void);
 
  532LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vpatch(
void);
 
  534LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_xpatch(
void);
 
  536LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_participant(
void);
 
  538LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vlocation(
void);
 
  540LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_vresource(
void);
 
void icalcomponent_convert_errors(icalcomponent *component)
Converts some X-LIC-ERROR properties into RETURN-STATUS properties.
Definition icalcomponent.c:1090
void icalcomponent_set_relcalid(icalcomponent *comp, const char *v)
Sets the RELCALID property of a component.
Definition icalcomponent.c:2457
icalcomponent * icalcomponent_clone(const icalcomponent *component)
Deeply clones an icalcomponent. Returns a pointer to the memory for the newly cloned icalcomponent.
Definition icalcomponent.c:130
icalproperty_method icalcomponent_get_method(icalcomponent *comp)
Returns the METHOD property.
Definition icalcomponent.c:1421
void icalcomponent_foreach_recurrence(icalcomponent *comp, struct icaltimetype start, struct icaltimetype end, void(*callback)(icalcomponent *comp, struct icaltime_span *span, void *data), void *callback_data)
Cycles through all recurrences of an event.
Definition icalcomponent.c:853
icalcomponent * icalproperty_get_parent(const icalproperty *property)
Returns the parent icalcomponent for the specified property.
Definition icalproperty.c:903
void icalcomponent_set_dtstart(icalcomponent *comp, struct icaltimetype v)
Sets the DTSTART property to the given icaltime,.
Definition icalcomponent.c:1443
void icalcomponent_strip_errors(icalcomponent *component)
Removes all X-LIC-ERROR properties.
Definition icalcomponent.c:1065
void icalcomponent_normalize(icalcomponent *comp)
Normalizes (reorders and sorts the properties) the specified icalcomponent comp.
Definition icalcomponent.c:2715
struct icaltimetype icalproperty_get_datetime_with_component(icalproperty *prop, icalcomponent *comp)
Gets a DATE or DATE-TIME property as an icaltime.
Definition icalproperty.c:1046
icalcomponent * icalcomponent_vanew(icalcomponent_kind kind,...)
Constructor.
Definition icalcomponent.c:106
void icalcomponent_set_method(icalcomponent *comp, icalproperty_method method)
Sets the METHOD property to the given method.
Definition icalcomponent.c:1409
icalcomponent * icalcomponent_new(icalcomponent_kind kind)
Constructor.
Definition icalcomponent.c:101
icalcomponent * icalcomponent_get_inner(icalcomponent *comp)
Definition icalcomponent.c:1400
void icalproperty_set_parent(icalproperty *property, icalcomponent *component)
Sets the parent icalcomponent for the specified icalproperty property.
Definition icalproperty.c:896
icalcomponent * icalcomponent_get_first_real_component(icalcomponent *c)
Returns a reference to the first VEVENT, VTODO or VJOURNAL in the component.
Definition icalcomponent.c:632
const char * icalcomponent_get_relcalid(icalcomponent *comp)
Gets the RELCALID property of a component.
Definition icalcomponent.c:2475
void icalcomponent_merge_component(icalcomponent *comp, icalcomponent *comp_to_merge)
Definition icalcomponent.c:2044
bool icalproperty_recurrence_is_excluded(icalcomponent *comp, struct icaltimetype *dtstart, struct icaltimetype *recurtime)
Decides if a recurrence is acceptable.
Definition icalcomponent.c:722
int icalcomponent_count_errors(icalcomponent *component)
Returns the number of errors encountered parsing the data.
Definition icalcomponent.c:1039
icaltimezone * icalcomponent_get_timezone(icalcomponent *comp, const char *tzid)
Returns the icaltimezone in the component corresponding to the TZID, or NULL if it can't be found.
Definition icalcomponent.c:2329
void icalcomponent_set_dtend(icalcomponent *comp, struct icaltimetype v)
Sets the DTEND property to given icaltime.
Definition icalcomponent.c:1532
const char * icalcomponent_get_component_name(const icalcomponent *comp)
Definition icalcomponent.c:346
icalcomponent * icalcomponent_new_x(const char *x_name)
Constructor.
Definition icalcomponent.c:158
void icalcomponent_set_duration(icalcomponent *comp, struct icaldurationtype v)
Sets the DURATION property to given icalduration.
Definition icalcomponent.c:1557
void icalcomponent_foreach_tzid(icalcomponent *comp, void(*callback)(icalparameter *param, void *data), void *callback_data)
Calls the given function for each TZID parameter found in the component, and any subcomponents.
Definition icalcomponent.c:2292
void icalcomponent_set_due(icalcomponent *comp, struct icaltimetype v)
Sets the due date of a VTODO task.
Definition icalcomponent.c:2518
icalcomponent * icalcomponent_new_from_string(const char *str)
Constructor.
Definition icalcomponent.c:125
struct _icaltimezone icaltimezone
An opaque struct representing a timezone. We declare this here to avoid a circular dependency.
Definition icaltime.h:84
Definition icalcomponent.h:28
Definition icalcomponent.c:27
A struct representing a duration.
Definition icalduration.h:29
Definition icalcomponent.h:33