diff options
Diffstat (limited to 'libical/examples/access_store.c')
-rw-r--r-- | libical/examples/access_store.c | 210 |
1 files changed, 0 insertions, 210 deletions
diff --git a/libical/examples/access_store.c b/libical/examples/access_store.c deleted file mode 100644 index fc2f5b01e2..0000000000 --- a/libical/examples/access_store.c +++ /dev/null @@ -1,210 +0,0 @@ - - -void acess_cap(void) { - - /* Note, all routines that are prefixed with "caller_" are - implemented by the caller of libical */ - -/* 1 Open a connection to a store. */ - - /* The caller is responsible for getting a socket to the server - and negotiating the first stages of the CAP exchange. These can - be fairly complex and varied for different operating systems, - local vs remote usage, and for different authentication - schemes, so the API does not try to simplify them. */ - - int sock = caller_create_socket_to_server(); - icalcstp *cstp = icalcstp_new(0,sock,sock); - - caller_authenticate(cstp); - - icalcsdb *csdb = icalcsdb_new(cstp); - -/* 2 Create a new calendar for which user Bill can read and user Mary can -read and write. See CAP draft 7.2.1.1.1. for the text of this example*/ - - /* This case requires setting up a TARGET, multiple OWNERs and - multiple VCARs, so it creates a component and uses CSTP that - than the CSDB interface. - - icalcomponent *create = icalcaputil_new_create(); - - icalcomponent_add_property(create, - icalproperty_new_target( - strdup("cap://cal.example.com/relcal8") - )); - - icalcomponent *cal = - icalcomponent_vanew_vcalendar( - icalproperty_new_relcalid(strdup("relcalid")), - icalproperty_new_name(strdup("Bill & Mary's cal")), - icalproperty_new_owner(strdup("bill")), - icalproperty_new_owner(strdup("mary")), - icalproperty_new_calmaster(strdup("mailto:bill@example.com")), - icalcomponent_vanew_vcar( - icalproperty_new_grant(strdup("UPN=bill;ACTION=*;OBJECT=*")), - icalproperty_new_grant(strdup("UPN=bill;ACTION=*;OBJECT=*")) - 0) - 0); - - error = icalcomponent_add_component(create,cal); - - /* Send the data */ - error = icalcstp_senddata(cstp,10,create); - - - /* Get the response */ - icalcstp_response response = icalcstp_get_first_response(cstp); - - /* Do something with the response*/ - - if(icalenum_reqstat_major(response.code) != 2){ - /* do something with the error */ - } - - icalcomponent_free(create); - - -/* 3 Create several new calendars */ - - /* Same as #2, but insert more TARGET properties and read more responses*/ - -/* 4 Delete a calendar */ - - error = icalcsdb_delete(csdb,"uid12345-example.com"); - -/* 5 Change the calid of a calendar */ - - erorr = icalcsdb_move(csdb,"uid12345-old-example.com", - "uid12345-new-example.com"); - - -/* 6 Delete all calendars belonging to user bob */ - - icalproperty *p; - /* First expand bob's UPN into a set of CALIDs */ - icalcomponent *calids = icalcsdb_expand_upn("bob@example.com"); - - /* Then, create a message to delete all of them */ - icalcomponent *delete = icalcaputil_new_create(); - - - for(p = icalcomponent_get_first_property(calids,ICAL_CALID_PROPERTY); - p != 0; - p = icalcomponent_get_next_property(calids,ICAL_CALID_PROPERTY)){ - - char* = icalproperty_get_calid(p); - - icalcomponent_add_target(delete,p); - - } - - /* Send the message */ - - error = icalcstp_senddata(cstp,10,delete); - - /* Finally, read the responses */ - - for(response = icalcstp_get_first_response(cstp); - response.code != ICAL_UNKNOWN_STATUS; - response = icalcstp_get_next_response(cstp)){ - - if(icalenum_reqstat_major(response.code) != 2){ - /* do something with the error */ - } - } - - -/* 7 Get three new UIDs from the store */ - - /* libical owns the returned memory. Copy before using */ - char* uid1 = icalcsdb_generateuid(csdb); - char* uid2 = icalcsdb_generateuid(csdb); - char* uid3 = icalcsdb_generateuid(csdb); - -/* 8 Store a new VEVENT in the store. */ - - /* Very similar to case #2 */ - -/* 9 Find all components for which the LOCATION is "West Conference -Room" and change them to "East Conference Room" */ - - icalcomponent *modify = icalcaputil_new_modify(); - - icalcaputil_modify_add_old_prop(modify, - icalproperty_new_location( - strdup("West Conference Room"))); - - icalcaputil_modify_add_new_prop(modify, - icalproperty_new_location( - strdup("East Conference Room"))); - - icalcaputil_add_target(modify,"relcal2"); - - /* Send the component */ - error = icalcstp_senddata(cstp,10,delete); - - /* Get the response */ - icalcstp_response response = icalcstp_get_first_response(cstp); - - /* Do something with the response*/ - - if(icalenum_reqstat_major(response.code) != 2){ - /* do something with the error */ - } - - icalcomponent_free(modify); - -/* 10 Find the component with UID X and add a GEO property to it. */ - - - icalcomponent *modify = icalcaputil_new_modify(); - - icalcaputil_modify_add_query(modify, - "SELECT UID FROM VEVENT WHERE UID = 'X'"); - - icalcaputil_modify_add_new_prop(modify, - icalproperty_new_geo( - strdup("-117;32"))); - - icalcaputil_add_target(modify,"relcal2"); - - /* Send the component */ - error = icalcstp_senddata(cstp,10,delete); - - /* Get the response */ - icalcstp_response response = icalcstp_get_first_response(cstp); - - /* Do something with the response*/ - - if(icalenum_reqstat_major(response.code) != 2){ - /* do something with the error */ - } - - icalcomponent_free(modify); - - -/* 11 Delete all VEVENTS which have a METHOD that is not CREATED */ - - -/* 12 Retrieve all VEVENTS which have a METHOD that is not CREATED */ - - /* Nearly the same at #11 */ - -/* 13 Retrieve the capabilities of the store */ - -/* 14 Retrieve/Modify/Add/Delete properties of a store */ - -/* 15 Retrieve/Modify/Add/Delete VCARs of a store */ - -/* 16 Retrieve/Modify/Add/Delete VTIMEZONEs of a store */ - -/* 17 Retrieve/Modify/Add/Delete properties of a calendar */ - -/* 18 Retrieve/Modify/Add/Delete VCARs of a calendar */ - -/* 19 Retrieve/Modify/Add/Delete VTIMEZONEs of a calendar */ - -/* 20 Translate a CALID into one or more UPNs */ - -/* 21 Expand a group UPN into all of the members of the group */ |