diff options
Diffstat (limited to 'src/.svn/text-base/caldav.h.svn-base')
-rw-r--r-- | src/.svn/text-base/caldav.h.svn-base | 343 |
1 files changed, 0 insertions, 343 deletions
diff --git a/src/.svn/text-base/caldav.h.svn-base b/src/.svn/text-base/caldav.h.svn-base deleted file mode 100644 index 28cb24e..0000000 --- a/src/.svn/text-base/caldav.h.svn-base +++ /dev/null @@ -1,343 +0,0 @@ -/* vim: set textwidth=80 tabstop=4: */ - -/** - * @file caldav.h - * @brief interface to the caldav library. - * The library conforms to RFC4791. For further information follow this - * link http://www.ietf.org/rfc/rfc4791.txt - */ - -/** - * @mainpage - * This document is the documentation for the public interface to libcaldav. - * If you want to study the implementation look for the developers API. - * - * The libray and documentation is Copyright (c) 2008 Michael Rasmussen - * (mir@datanom.net) - * - * License for the source code. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * License for the documentation. - * - * Permission is granted to copy, distribute and/or modify this document - * under the terms of the GNU Free Documentation License, Version 1.2 - * or any later version published by the Free Software Foundation; - * with no Invariant Sections, no Front-Cover Texts, and no Back-Cover - * Texts. - */ - -#ifndef __CALDAV_H__ -#define __CALDAV_H__ - -#include <time.h> - -/* For debug purposes */ -/** - * @typedef struct debug_curl - * A struct used to set internal options in the library - */ -typedef struct { - int trace_ascii; /** @var int trace_ascii - * 0 or 1 - */ - int debug; /** @var int debug - * 0 or 1 - */ - int verify_ssl_certificate; - int use_locking; - char* custom_cacert; -} debug_curl; - -/** - * @typedef struct _caldav_error caldav_error - * Pointer to a caldav_error structure - */ -typedef struct _caldav_error caldav_error; - -/** - * @struct _caldav_error - * A struct for storing error codes and messages - */ -struct _caldav_error { - long code; /** - * @var long code - * if < 0 internal error > 0 CalDAV protocol error. - */ - char* str; /** @var char* str - * For storing human readable error message - */ -}; - -/** - * @typedef struct runtime_info - * Pointer to a runtime structure holding debug and error information - */ -typedef struct { - caldav_error* error; - debug_curl* options; -} runtime_info; - -/* CalDAV is defined in RFC4791 */ - -/* Buffer to hold response */ -/** - * @typedef struct _response response - * Pointer to a _response structure - */ -typedef struct _response response; - -/** - * @struct _response - * A struct used for returning messages from the library to users - */ -struct _response { - char* msg; /** @var char* msg - * String for storing response - */ -}; - -/** - * @enum CALDAV_ACTION specifies supported CalDAV actions. - * UNKNOWN. An unknown action. - * ADD. Add a CalDAV calendar object. - * DELETE. Delete a CalDAV calendar object. - * MODIFY. Modify a CalDAV calendar object. - * GET. Get one or more CalDAV calendar object(s). - * GETALL. Get all CalDAV calendar objects. - */ -typedef enum { - UNKNOWN, - ADD, - DELETE, - FREEBUSY, - MODIFY, - GET, - GETALL, - GETCALNAME, - ISCALDAV, - OPTIONS -} CALDAV_ACTION; - -/** - * @enum CALDAV_RESPONSE specifies CalDAV error states. - * OK (HTTP 200). Request was satisfied. - * FORBIDDEN (HTTP 403). Access not allowed. Dont repeat request. - * CONFLICT (HTTP 409). Conflict between current state of CalDAV collection - * and request. Client must solve the conflict and then resend request. - * LOCKED (HTTP 423). Locking failed. - */ -typedef enum { - OK, - FORBIDDEN, - CONFLICT, - LOCKED, - NOTIMPLEMENTED -} CALDAV_RESPONSE; - - -#ifndef __CALDAV_USERAGENT -#define __CALDAV_USERAGENT "libcurl-agent/0.1" -#endif - - -/** - * Function for adding a new event. - * @param object Appointment following ICal format (RFC2445). Receiver is - * responsible for freeing the memory. - * @param URL Defines CalDAV resource. Receiver is responsible for freeing - * the memory. [http://][username[:password]@]host[:port]/url-path. - * See (RFC1738). - * @param info Pointer to a runtime_info structure. @see runtime_info - * @return Ok, FORBIDDEN, or CONFLICT. @see CALDAV_RESPONSE - */ -CALDAV_RESPONSE caldav_add_object(const char* object, - const char* URL, - runtime_info* info); - -/** - * Function for deleting an event. - * @param object Appointment following ICal format (RFC2445). Receiver is - * responsible for freeing the memory. - * @param URL Defines CalDAV resource. Receiver is responsible for freeing - * the memory. [http://][username[:password]@]host[:port]/url-path. - * See (RFC1738). - * @param info Pointer to a runtime_info structure. @see runtime_info - * @return Ok, FORBIDDEN, or CONFLICT. @see CALDAV_RESPONSE - */ -CALDAV_RESPONSE caldav_delete_object(const char* object, - const char* URL, - runtime_info* info); - -/** - * Function for modifying an event. - * @param object Appointment following ICal format (RFC2445). Receiver is - * responsible for freeing the memory. - * @param URL Defines CalDAV resource. Receiver is responsible for freeing - * the memory. [http://][username[:password]@]host[:port]/url-path. - * See (RFC1738). - * @param info Pointer to a runtime_info structure. @see runtime_info - * @return Ok, FORBIDDEN, or CONFLICT. @see CALDAV_RESPONSE - */ -CALDAV_RESPONSE caldav_modify_object(const char* object, - const char* URL, - runtime_info* info); - -/** - * Function for getting a collection of events determined by time range. - * @param result A pointer to struct _response where the result is to stored. - * @see response. Caller is responsible for freeing the memory. - * @param start time_t variable specifying start for range. Included in search. - * @param end time_t variable specifying end for range. Included in search. - * @param URL Defines CalDAV resource. Receiver is responsible for freeing - * the memory. [http://][username[:password]@]host[:port]/url-path. - * See (RFC1738). - * @param info Pointer to a runtime_info structure. @see runtime_info - * @return Ok, FORBIDDEN, or CONFLICT. @see CALDAV_RESPONSE - */ -CALDAV_RESPONSE caldav_get_object(response* result, - time_t start, - time_t end, - const char* URL, - runtime_info* info); - -/** - * Function for getting all events from the collection. - * @param result A pointer to struct _response where the result is to stored. - * @see response. Caller is responsible for freeing the memory. - * @param URL Defines CalDAV resource. Receiver is responsible for freeing - * the memory. [http://][username[:password]@]host[:port]/url-path. - * See (RFC1738). - * @param info Pointer to a runtime_info structure. @see runtime_info - * @return Ok, FORBIDDEN, or CONFLICT. @see CALDAV_RESPONSE - */ -CALDAV_RESPONSE caldav_getall_object(response* result, - const char* URL, - runtime_info* info); - -/** - * Function for getting the stored display name for the collection. - * @param result A pointer to struct _response where the result is to stored. - * @see response. Caller is responsible for freeing the memory. - * @param URL Defines CalDAV resource. Receiver is responsible for freeing - * the memory. [http://][username[:password]@]host[:port]/url-path. - * See (RFC1738). - * @param info Pointer to a runtime_info structure. @see runtime_info - * @return Ok, FORBIDDEN, or CONFLICT. @see CALDAV_RESPONSE - */ -CALDAV_RESPONSE caldav_get_displayname(response* result, - const char* URL, - runtime_info* info); - -/** - * Function to test wether a calendar resource is CalDAV enabled or not. - * @param URL Defines CalDAV resource. Receiver is responsible for - * freeing the memory. [http://][username[:password]@]host[:port]/url-path. - * See (RFC1738). - * @param info Pointer to a runtime_info structure. @see runtime_info - * @result 0 (zero) means no CalDAV support, otherwise CalDAV support - * detechted. - */ -int caldav_enabled_resource(const char* URL, runtime_info* info); - -/** - * Function for getting free/busy information. - * @param result A pointer to struct _response where the result is to stored. - * @see response. Caller is responsible for freeing the memory. - * @param start time_t variable specifying start and end for range. Both - * are included in range. - * @param end time_t variable specifying start and end for range. Both - * are included in range. - * @param URL Defines CalDAV resource. Receiver is responsible for freeing - * the memory. [http://][username[:password]@]host[:port]/url-path. - * See (RFC1738). - * @return Ok, FORBIDDEN, or CONFLICT. @see CALDAV_RESPONSE - */ -CALDAV_RESPONSE caldav_get_freebusy(response *result, - time_t start, - time_t end, - const char* URL, - runtime_info* info); - -/** - * @deprecated Always returns an initialized empty caldav_error - * Function to call in case of errors. - * Caller provides a pointer to a local caldav_error structure. - * Caldav_get_error will initialize pointer if NULL. - * Caller is responsible for freeing returned memory. - * After the first call the internal error buffer is reset. - * @param lib_error A pointer to a struct _caldav_error. @see _caldav_error - * @return An initialized caldav_error pointer to memory where error - * messages can be found from the last call to the library. - */ -caldav_error* caldav_get_error(caldav_error* lib_error); - -/** - * Function for freeing memory for a previous initialization of a - * caldav_error. @see caldav_get_error() - * Caller provides a pointer to a local caldav_error structure. - * @param lib_error A pointer to a struct _caldav_error. @see _caldav_error - */ -void caldav_free_error(caldav_error* lib_error); - -/* Setting various options in library */ - -/** - * @deprecated Does nothing - * Function which supports sending various options inside the library. - * @param curl_options A struct debug_curl. See debug_curl. - */ -void caldav_set_options(debug_curl curl_options); - -/** - * Function to call to get a list of supported CalDAV options for a server - * @param URL Defines CalDAV resource. Receiver is responsible for - * freeing the memory. [http://][username[:password]@]host[:port]/url-path. - * See (RFC1738). - * @param info Pointer to a runtime_info structure. @see runtime_info - * @result A list of available options or NULL in case of any error. - */ -char** caldav_get_server_options(const char* URL, runtime_info* info); - -/** - * Function for getting an initialized runtime_info structure - * @return runtime_info. @see runtime_info - */ -runtime_info* caldav_get_runtime_info(); - -/** - * Function for freeing memory for a previous initialization of an info - * structure - * @param info Address to a pointer to a runtime_info structure. @see - * runtime_info - */ -void caldav_free_runtime_info(runtime_info** info); - -/** - * Function for getting an initialized response structure - * @return response. @see _response - */ -response* caldav_get_response(); - -/** - * Function for freeing memory for a previous initialization of an response - * structure - * @param info Address to a pointer to a response structure. @see - * _response - */ -void caldav_free_response(response** info); - -#endif |