summaryrefslogtreecommitdiff
path: root/examples/access_components.c
diff options
context:
space:
mode:
Diffstat (limited to 'examples/access_components.c')
-rw-r--r--examples/access_components.c267
1 files changed, 130 insertions, 137 deletions
diff --git a/examples/access_components.c b/examples/access_components.c
index 796ce475..be73ba6f 100644
--- a/examples/access_components.c
+++ b/examples/access_components.c
@@ -2,15 +2,9 @@
#include <libical/ical.h>
-#include <assert.h>
-#include <string.h> /* for strdup */
-#include <stdlib.h> /* for malloc */
-#include <stdio.h> /* for printf */
-#include <time.h> /* for time() */
-
void do_something(icalcomponent *c);
-/* Creating iCal Components
+/* Creating iCal Components
There are two ways to create new component in libical. You can
build the component from primitive parts, or you can create it
@@ -26,10 +20,10 @@ void do_something(icalcomponent *c);
constructors, resulting in a compact, neatly formated way to create
components. This style is shown in create_new_component_with_va_args()
-
-
+
+
*/
-
+
icalcomponent* create_new_component()
{
@@ -48,69 +42,69 @@ icalcomponent* create_new_component()
/* Create calendar and add properties */
calendar = icalcomponent_new(ICAL_VCALENDAR_COMPONENT);
-
+
/* Nearly every libical function call has the same general
form. The first part of the name defines the 'class' for the
function, and the first argument will be a pointer to a struct
of that class. So, icalcomponent_ functions will all take
icalcomponent* as their first argument. */
- /* The next call creates a new proeprty and immediately adds it to the
- 'calendar' component. */
+ /* The next call creates a new proeprty and immediately adds it to the
+ 'calendar' component. */
icalcomponent_add_property(
- calendar,
- icalproperty_new_version("2.0")
- );
+ calendar,
+ icalproperty_new_version("2.0")
+ );
-
- /* Here is the short version of the memory rules:
- If the routine name has "new" in it:
- Caller owns the returned memory.
- If you pass in a string, the routine takes the memory.
+ /* Here is the short version of the memory rules:
+
+ If the routine name has "new" in it:
+ Caller owns the returned memory.
+ If you pass in a string, the routine takes the memory.
If the routine name has "add" in it:
- The routine takes control of the component, property,
- parameter or value memory.
+ The routine takes control of the component, property,
+ parameter or value memory.
If the routine returns a string ( "get" and "as_ical_string" )
- The library owns the returned memory.
+ The library owns the returned memory.
- There are more rules, so refer to the documentation for more
- details.
+ There are more rules, so refer to the documentation for more
+ details.
*/
icalcomponent_add_property(
- calendar,
- icalproperty_new_prodid("-//RDU Software//NONSGML HandCal//EN")
- );
-
+ calendar,
+ icalproperty_new_prodid("-//RDU Software//NONSGML HandCal//EN")
+ );
+
/* Add an event */
event = icalcomponent_new(ICAL_VEVENT_COMPONENT);
icalcomponent_add_property(
- event,
- icalproperty_new_dtstamp(atime)
- );
+ event,
+ icalproperty_new_dtstamp(atime)
+ );
- /* In the previous call, atime is a struct, and it is passed in by value.
+ /* In the previous call, atime is a struct, and it is passed in by value.
This is how all compound types of values are handled. */
icalcomponent_add_property(
- event,
- icalproperty_new_uid("guid-1.host1.com")
- );
+ event,
+ icalproperty_new_uid("guid-1.host1.com")
+ );
/* add a property that has parameters */
property = icalproperty_new_organizer("mailto:mrbig@host.com");
-
+
icalproperty_add_parameter(
- property,
- icalparameter_new_role(ICAL_ROLE_CHAIR)
- );
+ property,
+ icalparameter_new_role(ICAL_ROLE_CHAIR)
+ );
icalcomponent_add_property(event,property);
@@ -120,21 +114,21 @@ icalcomponent* create_new_component()
/* add another property that has parameters */
property = icalproperty_new_attendee("mailto:employee-A@host.com");
-
+
icalproperty_add_parameter(
- property,
- icalparameter_new_role(ICAL_ROLE_REQPARTICIPANT)
- );
+ property,
+ icalparameter_new_role(ICAL_ROLE_REQPARTICIPANT)
+ );
icalproperty_add_parameter(
- property,
- icalparameter_new_rsvp(1)
- );
+ property,
+ icalparameter_new_rsvp(1)
+ );
icalproperty_add_parameter(
- property,
- icalparameter_new_cutype(ICAL_CUTYPE_GROUP)
- );
+ property,
+ icalparameter_new_cutype(ICAL_CUTYPE_GROUP)
+ );
icalcomponent_add_property(event,property);
@@ -142,53 +136,53 @@ icalcomponent* create_new_component()
/* more properties */
icalcomponent_add_property(
- event,
- icalproperty_new_description("Project XYZ Review Meeting")
- );
+ event,
+ icalproperty_new_description("Project XYZ Review Meeting")
+ );
icalcomponent_add_property(
- event,
- icalproperty_new_categories("MEETING")
- );
+ event,
+ icalproperty_new_categories("MEETING")
+ );
icalcomponent_add_property(
- event,
- icalproperty_new_class(ICAL_CLASS_PUBLIC)
- );
-
+ event,
+ icalproperty_new_class(ICAL_CLASS_PUBLIC)
+ );
+
icalcomponent_add_property(
- event,
- icalproperty_new_created(atime)
- );
+ event,
+ icalproperty_new_created(atime)
+ );
icalcomponent_add_property(
- event,
- icalproperty_new_summary("XYZ Project Review")
- );
+ event,
+ icalproperty_new_summary("XYZ Project Review")
+ );
property = icalproperty_new_dtstart(atime);
-
+
icalproperty_add_parameter(
- property,
- icalparameter_new_tzid("US-Eastern")
- );
+ property,
+ icalparameter_new_tzid("US-Eastern")
+ );
icalcomponent_add_property(event,property);
property = icalproperty_new_dtend(atime);
-
+
icalproperty_add_parameter(
- property,
- icalparameter_new_tzid("US-Eastern")
- );
+ property,
+ icalparameter_new_tzid("US-Eastern")
+ );
icalcomponent_add_property(event,property);
icalcomponent_add_property(
- event,
- icalproperty_new_location("1CP Conference Room 4350")
- );
+ event,
+ icalproperty_new_location("1CP Conference Room 4350")
+ );
icalcomponent_add_component(calendar,event);
@@ -206,7 +200,7 @@ icalcomponent* create_new_component_with_va_args()
icalcomponent* calendar;
struct icaltimetype atime = icaltime_from_timet( time(0),0);
struct icalperiodtype rtime;
-
+
rtime.start = icaltime_from_timet( time(0),0);
rtime.end = icaltime_from_timet( time(0),0);
rtime.end.hour++;
@@ -217,50 +211,50 @@ icalcomponent* create_new_component_with_va_args()
values and add each of them to the parent property or
component. */
- calendar =
- icalcomponent_vanew(
- ICAL_VCALENDAR_COMPONENT,
- icalproperty_new_version("2.0"),
- icalproperty_new_prodid("-//RDU Software//NONSGML HandCal//EN"),
- icalcomponent_vanew(
- ICAL_VEVENT_COMPONENT,
- icalproperty_new_dtstamp(atime),
- icalproperty_new_uid("guid-1.host1.com"),
- icalproperty_vanew_organizer(
- "mailto:mrbig@host.com",
- icalparameter_new_role(ICAL_ROLE_CHAIR),
- 0
- ),
- icalproperty_vanew_attendee(
- "mailto:employee-A@host.com",
- icalparameter_new_role(ICAL_ROLE_REQPARTICIPANT),
- icalparameter_new_rsvp(1),
- icalparameter_new_cutype(ICAL_CUTYPE_GROUP),
- 0
- ),
- icalproperty_new_description("Project XYZ Review Meeting"),
-
- icalproperty_new_categories("MEETING"),
- icalproperty_new_class(ICAL_CLASS_PUBLIC),
- icalproperty_new_created(atime),
- icalproperty_new_summary("XYZ Project Review"),
- icalproperty_vanew_dtstart(
- atime,
- icalparameter_new_tzid("US-Eastern"),
- 0
- ),
- icalproperty_vanew_dtend(
- atime,
- icalparameter_new_tzid("US-Eastern"),
- 0
- ),
- icalproperty_new_location("1CP Conference Room 4350"),
- 0
- ),
- 0
- );
-
-
+ calendar =
+ icalcomponent_vanew(
+ ICAL_VCALENDAR_COMPONENT,
+ icalproperty_new_version("2.0"),
+ icalproperty_new_prodid("-//RDU Software//NONSGML HandCal//EN"),
+ icalcomponent_vanew(
+ ICAL_VEVENT_COMPONENT,
+ icalproperty_new_dtstamp(atime),
+ icalproperty_new_uid("guid-1.host1.com"),
+ icalproperty_vanew_organizer(
+ "mailto:mrbig@host.com",
+ icalparameter_new_role(ICAL_ROLE_CHAIR),
+ 0
+ ),
+ icalproperty_vanew_attendee(
+ "mailto:employee-A@host.com",
+ icalparameter_new_role(ICAL_ROLE_REQPARTICIPANT),
+ icalparameter_new_rsvp(1),
+ icalparameter_new_cutype(ICAL_CUTYPE_GROUP),
+ 0
+ ),
+ icalproperty_new_description("Project XYZ Review Meeting"),
+
+ icalproperty_new_categories("MEETING"),
+ icalproperty_new_class(ICAL_CLASS_PUBLIC),
+ icalproperty_new_created(atime),
+ icalproperty_new_summary("XYZ Project Review"),
+ icalproperty_vanew_dtstart(
+ atime,
+ icalparameter_new_tzid("US-Eastern"),
+ 0
+ ),
+ icalproperty_vanew_dtend(
+ atime,
+ icalparameter_new_tzid("US-Eastern"),
+ 0
+ ),
+ icalproperty_new_location("1CP Conference Room 4350"),
+ 0
+ ),
+ 0
+ );
+
+
/* Note that properties with no parameters can use the regular
'new' constructor, while those with parameters use the 'vanew'
constructor. And, be sure that the last argument in the 'vanew'
@@ -273,24 +267,24 @@ icalcomponent* create_new_component_with_va_args()
void find_sub_components(icalcomponent* comp)
{
icalcomponent *c;
-
+
/* The second parameter to icalcomponent_get_first_component
indicates the type of component to search for. This will
iterate through all sub-components */
for(c = icalcomponent_get_first_component(comp,ICAL_ANY_COMPONENT);
- c != 0;
- c = icalcomponent_get_next_component(comp,ICAL_ANY_COMPONENT)){
+ c != 0;
+ c = icalcomponent_get_next_component(comp,ICAL_ANY_COMPONENT)){
- do_something(c);
+ do_something(c);
}
/* This will iterate only though VEVENT sub-components */
for(c = icalcomponent_get_first_component(comp,ICAL_VEVENT_COMPONENT);
- c != 0;
- c = icalcomponent_get_next_component(comp,ICAL_VEVENT_COMPONENT)){
+ c != 0;
+ c = icalcomponent_get_next_component(comp,ICAL_VEVENT_COMPONENT)){
- do_something(c);
+ do_something(c);
}
}
@@ -300,19 +294,18 @@ void find_sub_components(icalcomponent* comp)
right way to remove components */
void remove_vevent_sub_components(icalcomponent* comp){
-
+
icalcomponent *c, *next;
for( c = icalcomponent_get_first_component(comp,ICAL_VEVENT_COMPONENT);
- c != 0;
- c = next)
+ c != 0;
+ c = next)
{
- next = icalcomponent_get_next_component(comp,ICAL_VEVENT_COMPONENT);
+ next = icalcomponent_get_next_component(comp,ICAL_VEVENT_COMPONENT);
- icalcomponent_remove_component(comp,c);
+ icalcomponent_remove_component(comp,c);
- do_something(c);
+ do_something(c);
}
}
-