diff options
Diffstat (limited to 'calendar/cal-client/cal-client.h')
-rw-r--r-- | calendar/cal-client/cal-client.h | 101 |
1 files changed, 40 insertions, 61 deletions
diff --git a/calendar/cal-client/cal-client.h b/calendar/cal-client/cal-client.h index 961ba5d993..277522f097 100644 --- a/calendar/cal-client/cal-client.h +++ b/calendar/cal-client/cal-client.h @@ -25,6 +25,7 @@ #include <cal-util/cal-recur.h> #include <cal-util/cal-util.h> #include <cal-client/cal-query.h> +#include "cal-client-types.h" G_BEGIN_DECLS @@ -37,6 +38,7 @@ G_BEGIN_DECLS #define IS_CAL_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CAL_CLIENT_TYPE)) #define CAL_CLIENT_OPEN_STATUS_ENUM_TYPE (cal_client_open_status_enum_get_type ()) +#define CAL_CLIENT_REMOVE_STATUS_ENUM_TYPE (cal_client_remove_status_enum_get_type ()) #define CAL_CLIENT_SET_MODE_STATUS_ENUM_TYPE (cal_client_set_mode_status_enum_get_type ()) #define CAL_MODE_ENUM_TYPE (cal_mode_enum_get_type ()) @@ -76,14 +78,6 @@ typedef enum { CAL_CLIENT_RESULT_PERMISSION_DENIED } CalClientResult; -typedef enum { - CAL_CLIENT_SEND_SUCCESS, - CAL_CLIENT_SEND_CORBA_ERROR, - CAL_CLIENT_SEND_INVALID_OBJECT, - CAL_CLIENT_SEND_BUSY, - CAL_CLIENT_SEND_PERMISSION_DENIED -} CalClientSendResult; - /* Whether the client is not loaded, is being loaded, or is already loaded */ typedef enum { CAL_CLIENT_LOAD_NOT_LOADED, @@ -104,10 +98,7 @@ struct _CalClientClass { /* Notification signals */ void (* cal_opened) (CalClient *client, CalClientOpenStatus status); - void (* cal_set_mode) (CalClient *client, CalClientSetModeStatus status, CalMode mode); - - void (* obj_updated) (CalClient *client, const char *uid); - void (* obj_removed) (CalClient *client, const char *uid); + void (* cal_set_mode) (CalClient *client, CalClientSetModeStatus status, CalMode mode); void (* backend_error) (CalClient *client, const char *message); @@ -129,21 +120,13 @@ GType cal_client_open_status_enum_get_type (void); GType cal_client_set_mode_status_enum_get_type (void); GType cal_mode_enum_get_type (void); -CalClient *cal_client_construct (CalClient *client); - -CalClient *cal_client_new (void); +CalClient *cal_client_new (const char *uri, CalObjType type); void cal_client_set_auth_func (CalClient *client, CalClientAuthFunc func, gpointer data); -/* Sets the default timezone to use to resolve DATE and floating DATE-TIME - values. This will typically be from the user's timezone setting. Call this - before using any other functions. It will pass the default timezone on to - the server. Returns TRUE on success. */ -gboolean cal_client_set_default_timezone (CalClient *client, icaltimezone *zone); - -gboolean cal_client_open_calendar (CalClient *client, const char *str_uri, gboolean only_if_exists); -gboolean cal_client_open_default_calendar (CalClient *client, gboolean only_if_exists); -gboolean cal_client_open_default_tasks (CalClient *client, gboolean only_if_exists); +gboolean cal_client_open (CalClient *client, gboolean only_if_exists, GError **error); +void cal_client_open_async (CalClient *client, gboolean only_if_exists); +gboolean cal_client_remove_calendar (CalClient *client, GError **error); GList *cal_client_uri_list (CalClient *client, CalMode mode); @@ -151,11 +134,10 @@ CalClientLoadState cal_client_get_load_state (CalClient *client); const char *cal_client_get_uri (CalClient *client); -gboolean cal_client_is_read_only (CalClient *client); - -const char *cal_client_get_cal_address (CalClient *client); -const char *cal_client_get_alarm_email_address (CalClient *client); -const char *cal_client_get_ldap_attribute (CalClient *client); +gboolean cal_client_is_read_only (CalClient *client, gboolean *read_only, GError **error); +gboolean cal_client_get_cal_address (CalClient *client, char **cal_address, GError **error); +gboolean cal_client_get_alarm_email_address (CalClient *client, char **alarm_address, GError **error); +gboolean cal_client_get_ldap_attribute (CalClient *client, char **ldap_attribute, GError **error); gboolean cal_client_get_one_alarm_only (CalClient *client); gboolean cal_client_get_organizer_must_attend (CalClient *client); @@ -164,28 +146,23 @@ gboolean cal_client_get_static_capability (CalClient *client, const char *cap); gboolean cal_client_set_mode (CalClient *client, CalMode mode); -int cal_client_get_n_objects (CalClient *client, CalObjType type); - -CalClientGetStatus cal_client_get_default_object (CalClient *client, - CalObjType type, - icalcomponent **icalcomp); +gboolean cal_client_get_default_object (CalClient *client, + icalcomponent **icalcomp, GError **error); -CalClientGetStatus cal_client_get_object (CalClient *client, - const char *uid, - icalcomponent **icalcomp); +gboolean cal_client_get_object (CalClient *client, + const char *uid, + const char *rid, + icalcomponent **icalcomp, + GError **error); -CalClientGetStatus cal_client_get_timezone (CalClient *client, - const char *tzid, - icaltimezone **zone); +gboolean cal_client_get_changes (CalClient *client, CalObjType type, const char *change_id, GList **changes, GError **error); -GList *cal_client_get_uids (CalClient *client, CalObjType type); -GList *cal_client_get_changes (CalClient *client, CalObjType type, const char *change_id); +gboolean cal_client_get_object_list (CalClient *client, const char *query, GList **objects, GError **error); +gboolean cal_client_get_object_list_as_comp (CalClient *client, const char *query, GList **objects, GError **error); +void cal_client_free_object_list (GList *objects); -GList *cal_client_get_objects_in_range (CalClient *client, CalObjType type, - time_t start, time_t end); - -GList *cal_client_get_free_busy (CalClient *client, GList *users, - time_t start, time_t end); +gboolean cal_client_get_free_busy (CalClient *client, GList *users, time_t start, time_t end, + GList **freebusy, GError **error); void cal_client_generate_instances (CalClient *client, CalObjType type, time_t start, time_t end, @@ -199,24 +176,25 @@ gboolean cal_client_get_alarms_for_object (CalClient *client, const char *uid, time_t start, time_t end, CalComponentAlarms **alarms); -CalClientResult cal_client_discard_alarm (CalClient *client, CalComponent *comp, const char *auid); - -/* Add or update a single object. When adding an object only builtin timezones - are allowed. To use external VTIMEZONE data call update_objects() instead.*/ -CalClientResult cal_client_update_object (CalClient *client, CalComponent *comp); -CalClientResult cal_client_update_object_with_mod (CalClient *client, CalComponent *comp, CalObjModType mod); +gboolean cal_client_create_object (CalClient *client, icalcomponent *icalcomp, char **uid, GError **error); +gboolean cal_client_modify_object (CalClient *client, icalcomponent *icalcomp, CalObjModType mod, GError **error); +gboolean cal_client_remove_object (CalClient *client, const char *uid, GError **error); +gboolean cal_client_remove_object_with_mod (CalClient *client, const char *uid, const char *rid, CalObjModType mod, GError **error); -/* Add or update multiple objects, possibly including VTIMEZONE data. */ -CalClientResult cal_client_update_objects (CalClient *client, icalcomponent *icalcomp); +gboolean cal_client_discard_alarm (CalClient *client, CalComponent *comp, const char *auid, GError **error); -CalClientResult cal_client_remove_object (CalClient *client, const char *uid); -CalClientResult cal_client_remove_object_with_mod (CalClient *client, const char *uid, CalObjModType mod); +gboolean cal_client_receive_objects (CalClient *client, icalcomponent *icalcomp, GError **error); +gboolean cal_client_send_objects (CalClient *client, icalcomponent *icalcomp, GError **error); -CalClientSendResult cal_client_send_object (CalClient *client, icalcomponent *icalcomp, - icalcomponent **new_icalcomp, GList **users, - char **error_msg); +gboolean cal_client_get_timezone (CalClient *client, const char *tzid, icaltimezone **zone, GError **error); +gboolean cal_client_add_timezone (CalClient *client, icaltimezone *izone, GError **error); +/* Sets the default timezone to use to resolve DATE and floating DATE-TIME + values. This will typically be from the user's timezone setting. Call this + before using any other functions. It will pass the default timezone on to + the server. Returns TRUE on success. */ +gboolean cal_client_set_default_timezone (CalClient *client, icaltimezone *zone, GError **error); -CalQuery *cal_client_get_query (CalClient *client, const char *sexp); +gboolean cal_client_get_query (CalClient *client, const char *sexp, CalQuery **query, GError **error); /* Resolves TZIDs for the recurrence generator. */ icaltimezone *cal_client_resolve_tzid_cb (const char *tzid, gpointer data); @@ -225,6 +203,7 @@ icaltimezone *cal_client_resolve_tzid_cb (const char *tzid, gpointer data); used by the component. It also includes a 'METHOD:PUBLISH' property. */ char* cal_client_get_component_as_string (CalClient *client, icalcomponent *icalcomp); +const char * cal_client_get_error_message (ECalendarStatus status); |