diff -ru planner-0.14.4.foo/eds-backend/e-cal-backend-planner.c planner-0.14.4/eds-backend/e-cal-backend-planner.c
--- planner-0.14.4.foo/eds-backend/e-cal-backend-planner.c 2010-07-19 10:51:35.000000000 +0100
+++ planner-0.14.4/eds-backend/e-cal-backend-planner.c 2010-07-19 11:47:55.000000000 +0100
@@ -30,6 +30,8 @@
#include <libplanner/mrp-project.h>
#include <libplanner/mrp-task.h>
+#define EDC_ERROR(_code) e_data_cal_create_error (_code, NULL)
+
/* Private part of the ECalBackendPlanner structure */
struct _ECalBackendPlannerPrivate {
/* uri to get planner data from */
@@ -57,97 +59,115 @@
/* Backend implementation */
static void cbp_dispose (GObject *object);
static void cbp_finalize (GObject *object);
-static ECalBackendSyncStatus cbp_is_read_only (ECalBackendSync *backend,
+static void cbp_is_read_only (ECalBackendSync *backend,
EDataCal *cal,
- gboolean *read_only);
-static ECalBackendSyncStatus cbp_get_cal_address (ECalBackendSync *backend,
+ gboolean *read_only,
+ GError **perror);
+static void cbp_get_cal_address (ECalBackendSync *backend,
EDataCal *cal,
- char **address);
-static ECalBackendSyncStatus cbp_get_ldap_attribute (ECalBackendSync *backend,
+ char **address,
+ GError **perror);
+static void cbp_get_ldap_attribute (ECalBackendSync *backend,
EDataCal *cal,
- char **attribute);
-static ECalBackendSyncStatus cbp_get_alarm_email_address (ECalBackendSync *backend,
+ char **attribute,
+ GError **perror);
+static void cbp_get_alarm_email_address (ECalBackendSync *backend,
EDataCal *cal,
- char **address);
-static ECalBackendSyncStatus cbp_get_static_capabilities (ECalBackendSync *backend,
+ char **address,
+ GError **perror);
+static void cbp_get_static_capabilities (ECalBackendSync *backend,
EDataCal *cal,
- char **capabilities);
+ char **capabilities,
+ GError **perror);
-static ECalBackendSyncStatus cbp_open (ECalBackendSync *backend,
+static void cbp_open (ECalBackendSync *backend,
EDataCal *cal,
gboolean only_if_exists,
const gchar *username,
- const gchar *password);
-static ECalBackendSyncStatus cbp_remove (ECalBackendSync *backend,
- EDataCal *cal);
+ const gchar *password,
+ GError **perror);
+static void cbp_remove (ECalBackendSync *backend,
+ EDataCal *cal,
+ GError **perror);
static gboolean cbp_is_loaded (ECalBackend *backend);
static CalMode cbp_get_mode (ECalBackend *backend);
static void cbp_set_mode (ECalBackend *backend,
CalMode mode);
-static ECalBackendSyncStatus cbp_get_default_object (ECalBackendSync *backend,
+static void cbp_get_default_object (ECalBackendSync *backend,
EDataCal *cal,
- char **object);
-static ECalBackendSyncStatus cbp_get_object (ECalBackendSync *backend,
+ char **object,
+ GError **perror);
+static void cbp_get_object (ECalBackendSync *backend,
EDataCal *cal,
const gchar *uid,
const gchar *rid,
- gchar **object);
-static ECalBackendSyncStatus cbp_get_timezone (ECalBackendSync *backend,
- EDataCal *cal,
- const gchar *tzid,
- char **object);
-static ECalBackendSyncStatus cbp_add_timezone (ECalBackendSync *backend,
+ gchar **object,
+ GError **error);
+static void cbp_add_timezone (ECalBackendSync *backend,
EDataCal *cal,
- const gchar *tzobj);
-static ECalBackendSyncStatus cbp_set_default_timezone (ECalBackendSync *backend,
- EDataCal *cal,
- const gchar *tzid);
-static ECalBackendSyncStatus cbp_get_object_list (ECalBackendSync *backend,
+ const gchar *tzobj,
+ GError **perror);
+static void cbp_set_default_zone_sync (ECalBackendSync *backend,
+ EDataCal *cal,
+ const gchar *tzid,
+ GError **perror);
+static void cbp_get_object_list (ECalBackendSync *backend,
EDataCal *cal,
const gchar *sexp,
- GList **objects);
-static void cbp_start_query (ECalBackend *backend,
+ GList **objects,
+ GError **perror);
+static void cbp_start_query (ECalBackend *backend,
EDataCalView *query);
-static ECalBackendSyncStatus cbp_get_free_busy (ECalBackendSync *backend,
+static void cbp_get_free_busy (ECalBackendSync *backend,
EDataCal *cal,
GList *users,
time_t start,
time_t end,
- GList **freebusy);
-static ECalBackendSyncStatus cbp_get_changes (ECalBackendSync *backend,
+ GList **freebusy,
+ GError **perror);
+static void cbp_get_changes (ECalBackendSync *backend,
EDataCal *cal,
const char *change_id,
GList **adds,
GList **modifies,
- GList **deletes);
-static ECalBackendSyncStatus cbp_discard_alarm (ECalBackendSync *backend,
+ GList **deletes,
+ GError **perror);
+static void cbp_discard_alarm (ECalBackendSync *backend,
EDataCal *cal,
const gchar *uid,
- const gchar *auid);
-static ECalBackendSyncStatus cbp_create_object (ECalBackendSync *backend,
+ const gchar *auid,
+ GError **perror);
+static void cbp_create_object (ECalBackendSync *backend,
EDataCal *cal,
gchar **calobj,
- gchar **uid);
-static ECalBackendSyncStatus cbp_modify_object (ECalBackendSync *backend,
+ gchar **uid,
+ GError **perror);
+static void cbp_modify_object (ECalBackendSync *backend,
EDataCal *cal,
const gchar *calobj,
CalObjModType mod,
- char **old_object);
-static ECalBackendSyncStatus cbp_remove_object (ECalBackendSync *backend,
+ char **old_object,
+ char **new_object,
+ GError **perror);
+static void cbp_remove_object (ECalBackendSync *backend,
EDataCal *cal,
const gchar *uid,
const gchar *rid,
CalObjModType mod,
- gchar **object);
-static ECalBackendSyncStatus cbp_receive_objects (ECalBackendSync *backend,
+ gchar **old_object,
+ gchar **object,
+ GError **perror);
+static void cbp_receive_objects (ECalBackendSync *backend,
EDataCal *cal,
- const gchar *calobj);
+ const gchar *calobj,
+ GError **perror);
-static ECalBackendSyncStatus cbp_send_objects (ECalBackendSync *backend,
+static void cbp_send_objects (ECalBackendSync *backend,
EDataCal *cal,
const gchar *calobj,
GList **users,
- gchar **modified_calobj);
+ gchar **modified_calobj,
+ GError **perror);
static icaltimezone * cbp_internal_get_default_timezone (ECalBackend *backend);
static icaltimezone * cbp_internal_get_timezone (ECalBackend *backend,
@@ -373,56 +393,51 @@
/* Is_read_only handler for the file backend */
/* It will be read and write in the future */
-static ECalBackendSyncStatus
+static void
cbp_is_read_only (ECalBackendSync *backend,
EDataCal *cal,
- gboolean *read_only)
+ gboolean *read_only,
+ GError **perror)
{
*read_only = FALSE;
-
- return GNOME_Evolution_Calendar_Success;
}
/* FIXME: The only address for the Planner backend is the file
for the moment. Later we will have a URI */
-static ECalBackendSyncStatus
+static void
cbp_get_cal_address (ECalBackendSync *backend,
EDataCal *cal,
- char **address)
+ char **address,
+ GError **perror)
{
*address = NULL;
-
- return GNOME_Evolution_Calendar_Success;
}
-static ECalBackendSyncStatus
+static void
cbp_get_ldap_attribute (ECalBackendSync *backend,
EDataCal *cal,
- char **attribute)
+ char **attribute,
+ GError **perror)
{
*attribute = NULL;
-
- return GNOME_Evolution_Calendar_Success;
}
-static ECalBackendSyncStatus
+static void
cbp_get_alarm_email_address (ECalBackendSync *backend,
EDataCal *cal,
- char **address)
+ char **address,
+ GError **perror)
{
*address = NULL;
-
- return GNOME_Evolution_Calendar_Success;
}
-static ECalBackendSyncStatus
+static void
cbp_get_static_capabilities (ECalBackendSync *backend,
EDataCal *cal,
- char **capabilities)
+ char **capabilities,
+ GError **perror)
{
*capabilities = g_strdup (CAL_STATIC_CAPABILITY_NO_EMAIL_ALARMS);
-
- return GNOME_Evolution_Calendar_Success;
}
static ECalComponent *
@@ -804,12 +819,13 @@
}
/* Open handler for the file backend */
-static ECalBackendSyncStatus
+static void
cbp_open (ECalBackendSync *backend,
EDataCal *cal,
gboolean only_if_exists,
const gchar *username,
- const gchar *password)
+ const gchar *password,
+ GError **perror)
{
ECalBackendPlanner *cbplanner;
ECalBackendPlannerPrivate *priv;
@@ -826,7 +842,8 @@
}
if (!uri) {
e_cal_backend_notify_error (E_CAL_BACKEND (backend), _("Invalid server URI"));
- return GNOME_Evolution_Calendar_NoSuchCal;
+ g_propagate_error (perror, EDC_ERROR (NoSuchCal));
+ return;
}
cbplanner = E_CAL_BACKEND_PLANNER (backend);
@@ -834,7 +851,7 @@
if (priv->project_loaded) {
g_warning ("Reopening project ... we need to check for new tasks ...");
- return GNOME_Evolution_Calendar_Success;
+ return;
} else {
g_warning ("Openinig project for the first time ...");
}
@@ -847,17 +864,19 @@
task_add_properties (priv->project);
g_idle_add ((GSourceFunc) get_planner_tasks_cb, cbplanner);
priv->project_loaded = TRUE;
- return GNOME_Evolution_Calendar_Success;
+ return;
} else {
g_warning ("Problem opening planner project: %s", error->message);
g_error_free (error);
- return GNOME_Evolution_Calendar_ObjectNotFound;
+ g_propagate_error (perror, EDC_ERROR (ObjectNotFound));
+ return;
}
}
-static ECalBackendSyncStatus
+static void
cbp_remove (ECalBackendSync *backend,
- EDataCal *cal)
+ EDataCal *cal,
+ GError **perror)
{
ECalBackendPlanner *cbplanner;
ECalBackendPlannerPrivate *priv;
@@ -867,7 +886,7 @@
/* e_file_cache_remove (E_FILE_CACHE (priv->cache)); */
/* FIXME: we need to remove the task from Planner */
- return GNOME_Evolution_Calendar_Success;
+ return;
}
/* is_loaded handler for the planner backend */
@@ -903,7 +922,7 @@
{
ECalBackendPlanner *cbplanner;
ECalBackendPlannerPrivate *priv;
- GNOME_Evolution_Calendar_CalMode set_mode;
+ EDataCalMode set_mode;
cbplanner = E_CAL_BACKEND_PLANNER (backend);
priv = cbplanner->priv;
@@ -916,27 +935,28 @@
break;
case CAL_MODE_ANY:
priv->mode = CAL_MODE_REMOTE;
- set_mode = GNOME_Evolution_Calendar_MODE_REMOTE;
+ set_mode = Remote;
break;
default:
- set_mode = GNOME_Evolution_Calendar_MODE_ANY;
+ set_mode = AnyMode;
break;
}
- if (set_mode == GNOME_Evolution_Calendar_MODE_ANY)
+ if (set_mode == AnyMode)
e_cal_backend_notify_mode (backend,
- GNOME_Evolution_Calendar_CalListener_MODE_NOT_SUPPORTED,
+ ModeNotSupported,
cal_mode_to_corba (priv->mode));
else
e_cal_backend_notify_mode (backend,
- GNOME_Evolution_Calendar_CalListener_MODE_SET,
+ ModeSet,
set_mode);
}
-static ECalBackendSyncStatus
+static void
cbp_get_default_object (ECalBackendSync *backend,
EDataCal *cal,
- char **object)
+ char **object,
+ GError **perror)
{
ECalBackendPlanner *cbplanner;
ECalBackendPlannerPrivate *priv;
@@ -950,17 +970,16 @@
icalcomp = e_cal_util_new_component (kind);
*object = g_strdup (icalcomponent_as_ical_string (icalcomp));
icalcomponent_free (icalcomp);
-
- return GNOME_Evolution_Calendar_Success;
}
/* Get_object_component handler for the planner backend */
-static ECalBackendSyncStatus
+static void
cbp_get_object (ECalBackendSync *backend,
EDataCal *cal,
const gchar *uid,
const gchar *rid,
- gchar **object)
+ gchar **object,
+ GError **perror)
{
ECalBackendPlanner *cbplanner;
ECalBackendPlannerPrivate *priv;
@@ -969,83 +988,56 @@
cbplanner = E_CAL_BACKEND_PLANNER (backend);
priv = cbplanner->priv;
- g_return_val_if_fail (uid != NULL, GNOME_Evolution_Calendar_ObjectNotFound);
+ if (uid == NULL)
+ {
+ g_propagate_error (perror, EDC_ERROR (ObjectNotFound));
+ return;
+ }
comp = g_hash_table_lookup (priv->tasks_comp, uid);
/* comp = e_cal_backend_cache_get_component (priv->cache, uid, rid); */
/* We take the comp directly from libplanner */
if (!comp)
- return GNOME_Evolution_Calendar_ObjectNotFound;
+ {
+ g_propagate_error (perror, EDC_ERROR (ObjectNotFound));
+ return;
+ }
*object = e_cal_component_get_as_string (comp);
-
- return GNOME_Evolution_Calendar_Success;
-}
-
-/* Get_timezone_object handler for the file backend */
-static ECalBackendSyncStatus
-cbp_get_timezone (ECalBackendSync *backend,
- EDataCal *cal,
- const gchar *tzid,
- char **object)
-{
- ECalBackendPlanner *cbplanner;
- ECalBackendPlannerPrivate *priv;
- icaltimezone *zone;
- icalcomponent *icalcomp;
-
- cbplanner = E_CAL_BACKEND_PLANNER (backend);
- priv = cbplanner->priv;
-
- g_return_val_if_fail (tzid != NULL, GNOME_Evolution_Calendar_ObjectNotFound);
-
- zone = icaltimezone_get_builtin_timezone_from_tzid (tzid);
- if (!zone)
- return GNOME_Evolution_Calendar_ObjectNotFound;
-
- icalcomp = icaltimezone_get_component (zone);
- if (!icalcomp)
- return GNOME_Evolution_Calendar_InvalidObject;
-
- *object = g_strdup (icalcomponent_as_ical_string (icalcomp));
-
- return GNOME_Evolution_Calendar_Success;
}
/* Add_timezone handler for the file backend */
-static ECalBackendSyncStatus
+static void
cbp_add_timezone (ECalBackendSync *backend,
EDataCal *cal,
- const gchar *tzobj)
+ const gchar *tzobj,
+ GError **perror)
{
ECalBackendPlanner *cbplanner;
ECalBackendPlannerPrivate *priv;
cbplanner = (ECalBackendPlanner *) backend;
- g_return_val_if_fail (E_IS_CAL_BACKEND_PLANNER (cbplanner),
- GNOME_Evolution_Calendar_OtherError);
- g_return_val_if_fail (tzobj != NULL, GNOME_Evolution_Calendar_OtherError);
+ if (!E_IS_CAL_BACKEND_PLANNER (cbplanner) || tzobj == NULL)
+ {
+ g_propagate_error (perror, EDC_ERROR (OtherError));
+ return;
+ }
priv = cbplanner->priv;
-
- /* FIXME: add the timezone to the cache */
- return GNOME_Evolution_Calendar_Success;
}
-static ECalBackendSyncStatus
-cbp_set_default_timezone (ECalBackendSync *backend,
- EDataCal *cal,
- const gchar *tzid)
+static void
+cbp_set_default_zone_sync (ECalBackendSync *backend,
+ EDataCal *cal,
+ const gchar *tzid,
+ GError **perror)
{
- ECalBackendPlanner *cbplanner;
- ECalBackendPlannerPrivate *priv;
+ ECalBackendPlanner *cbplanner;
+ ECalBackendPlannerPrivate *priv;
- cbplanner = E_CAL_BACKEND_PLANNER (backend);
- priv = cbplanner->priv;
-
- /* FIXME */
- return GNOME_Evolution_Calendar_Success;
+ cbplanner = E_CAL_BACKEND_PLANNER (backend);
+ priv = cbplanner->priv;
}
static void
@@ -1060,11 +1052,12 @@
/* Get_objects_in_range handler for the planner backend */
-static ECalBackendSyncStatus
+static void
cbp_get_object_list (ECalBackendSync *backend,
EDataCal *cal,
const gchar *sexp,
- GList **objects)
+ GList **objects,
+ GError **perror)
{
ECalBackendPlanner *cbplanner;
ECalBackendPlannerPrivate *priv;
@@ -1091,7 +1084,6 @@
g_list_free (comps);
g_object_unref (cbsexp);
- return GNOME_Evolution_Calendar_Success;
}
/* get_query handler for the planner backend */
@@ -1132,17 +1124,18 @@
g_list_free (objects);
g_object_unref (cbsexp);
- e_data_cal_view_notify_done (query, GNOME_Evolution_Calendar_Success);
+ e_data_cal_view_notify_done (query, NULL /* Success */);
}
/* Get_free_busy handler for the planner backend */
-static ECalBackendSyncStatus
+static void
cbp_get_free_busy (ECalBackendSync *backend,
EDataCal *cal,
GList *users,
time_t start,
time_t end,
- GList **freebusy)
+ GList **freebusy,
+ GError **perror)
{
ECalBackendPlanner *cbplanner;
ECalBackendPlannerPrivate *priv;
@@ -1150,22 +1143,19 @@
cbplanner = E_CAL_BACKEND_PLANNER (backend);
priv = cbplanner->priv;
- g_return_val_if_fail (start != -1 && end != -1,
- GNOME_Evolution_Calendar_InvalidRange);
- g_return_val_if_fail (start <= end, GNOME_Evolution_Calendar_InvalidRange);
-
- /* FIXME */
- return GNOME_Evolution_Calendar_Success;
+ if (start == -1 || end == -1 || start > end)
+ g_propagate_error (perror, EDC_ERROR (InvalidRange));
}
/* Get_changes handler for the planner backend */
-static ECalBackendSyncStatus
+static void
cbp_get_changes (ECalBackendSync *backend,
EDataCal *cal,
const char *change_id,
GList **adds,
GList **modifies,
- GList **deletes)
+ GList **deletes,
+ GError **perror)
{
ECalBackendPlanner *cbplanner;
ECalBackendPlannerPrivate *priv;
@@ -1173,34 +1163,31 @@
cbplanner = E_CAL_BACKEND_PLANNER (backend);
priv = cbplanner->priv;
- g_return_val_if_fail (change_id != NULL, GNOME_Evolution_Calendar_ObjectNotFound);
-
- /* FIXME */
- return GNOME_Evolution_Calendar_Success;
+ if (change_id == NULL)
+ g_propagate_error (perror, EDC_ERROR (ObjectNotFound));
}
/* Discard_alarm handler for the planner backend */
-static ECalBackendSyncStatus
+static void
cbp_discard_alarm (ECalBackendSync *backend,
EDataCal *cal,
const gchar *uid,
- const gchar *auid)
+ const gchar *auid,
+ GError **perror)
{
ECalBackendPlanner *cbplanner;
ECalBackendPlannerPrivate *priv;
cbplanner = E_CAL_BACKEND_PLANNER (backend);
priv = cbplanner->priv;
-
- /* FIXME */
- return GNOME_Evolution_Calendar_Success;
}
-static ECalBackendSyncStatus
+static void
cbp_create_object (ECalBackendSync *backend,
EDataCal *cal,
gchar **calobj,
- gchar **uid)
+ gchar **uid,
+ GError **perror)
{
ECalBackendPlanner *cbplanner;
ECalBackendPlannerPrivate *priv;
@@ -1214,17 +1201,29 @@
cbplanner = E_CAL_BACKEND_PLANNER (backend);
priv = cbplanner->priv;
- g_return_val_if_fail (E_IS_CAL_BACKEND_PLANNER (backend), GNOME_Evolution_Calendar_InvalidObject);
- g_return_val_if_fail (*calobj != NULL, GNOME_Evolution_Calendar_ObjectNotFound);
+ if (!E_IS_CAL_BACKEND_PLANNER (backend))
+ {
+ g_propagate_error (perror, EDC_ERROR (InvalidObject));
+ return;
+ }
+ if (*calobj == NULL)
+ {
+ g_propagate_error (perror, EDC_ERROR (ObjectNotFound));
+ return;
+ }
icalcomp = icalparser_parse_string (*calobj);
if (!icalcomp)
- return GNOME_Evolution_Calendar_InvalidObject;
+ {
+ g_propagate_error (perror, EDC_ERROR (InvalidObject));
+ return;
+ }
/* Check kind with the parent */
if (icalcomponent_isa (icalcomp) != e_cal_backend_get_kind (E_CAL_BACKEND (backend))) {
icalcomponent_free (icalcomp);
- return GNOME_Evolution_Calendar_InvalidObject;
+ g_propagate_error (perror, EDC_ERROR (InvalidObject));
+ return;
}
/* Get the UID to try to find the object */
@@ -1235,7 +1234,8 @@
new_uid = e_cal_component_gen_uid ();
if (!new_uid) {
icalcomponent_free (icalcomp);
- return GNOME_Evolution_Calendar_InvalidObject;
+ g_propagate_error (perror, EDC_ERROR (InvalidObject));
+ return;
}
icalcomponent_set_uid (icalcomp, new_uid);
@@ -1250,7 +1250,8 @@
/* check the object is not in our cache */
if (lookup_component (cbplanner, comp_uid)) {
icalcomponent_free (icalcomp);
- return GNOME_Evolution_Calendar_ObjectIdAlreadyExists;
+ g_propagate_error (perror, EDC_ERROR (ObjectIdAlreadyExists));
+ return;
}
/* Create the cal component */
@@ -1270,21 +1271,20 @@
/* Save the planner project */
mrp_project_save (priv->project, TRUE, &error);
-
- return GNOME_Evolution_Calendar_Success;
- /* return GNOME_Evolution_Calendar_PermissionDenied; */
}
/* FIXME: not finished.
This method is called for the moment when:
- You check the done checkbox
*/
-static ECalBackendSyncStatus
+static void
cbp_modify_object (ECalBackendSync *backend,
EDataCal *cal,
const gchar *calobj,
CalObjModType mod,
- char **old_object)
+ char **old_object,
+ char **new_object,
+ GError **perror)
{
ECalBackendPlanner *cbplanner;
ECalBackendPlannerPrivate *priv;
@@ -1299,14 +1299,24 @@
cbplanner = E_CAL_BACKEND_PLANNER (backend);
priv = cbplanner->priv;
- g_return_val_if_fail (E_IS_CAL_BACKEND_PLANNER (cbplanner),
- GNOME_Evolution_Calendar_InvalidObject);
- g_return_val_if_fail (calobj != NULL, GNOME_Evolution_Calendar_ObjectNotFound);
+ if (!E_IS_CAL_BACKEND_PLANNER (cbplanner))
+ {
+ g_propagate_error (perror, EDC_ERROR (InvalidObject));
+ return;
+ }
+ if (calobj == NULL)
+ {
+ g_propagate_error (perror, EDC_ERROR (ObjectNotFound));
+ return;
+ }
/* check the component for validity */
icalcomp = icalparser_parse_string (calobj);
if (!icalcomp)
- return GNOME_Evolution_Calendar_InvalidObject;
+ {
+ g_propagate_error (perror, EDC_ERROR (InvalidObject));
+ return;
+ }
comp_uid = icalcomponent_get_uid (icalcomp);
g_message ("Modifying calendar object %s\n%s", comp_uid, calobj);
@@ -1317,7 +1327,8 @@
if (!(cache_comp = lookup_component (cbplanner, comp_uid))) {
g_message ("CRITICAL : Could not find the object in cache %s", comp_uid);
icalcomponent_free (icalcomp);
- return GNOME_Evolution_Calendar_ObjectNotFound;
+ g_propagate_error (perror, EDC_ERROR (ObjectNotFound));
+ return;
} else {
g_message ("Cache object found %s... modifying it", comp_uid);
}
@@ -1329,13 +1340,15 @@
if (task == NULL) {
g_message ("Cache fail: can't find task for component %s", comp_uid);
g_object_unref (cache_comp);
- return GNOME_Evolution_Calendar_InvalidObject;
+ g_propagate_error (perror, EDC_ERROR (InvalidObject));
+ return;
}
task_new = comp_to_task (priv->project, comp);
if (task_new == NULL) {
g_message ("Can't create a task from %s", comp_uid);
g_object_unref (cache_comp);
- return GNOME_Evolution_Calendar_InvalidObject;
+ g_propagate_error (perror, EDC_ERROR (InvalidObject));
+ return;
}
g_hash_table_replace (priv->tasks_comp, (gpointer) comp_uid, comp);
task_replace (priv->project, task, task_new);
@@ -1348,19 +1361,18 @@
*old_object = e_cal_component_get_as_string (cache_comp);
g_object_unref (cache_comp);
-
- /* return GNOME_Evolution_Calendar_PermissionDenied; */
- return GNOME_Evolution_Calendar_Success;
}
/* Remove_object handler for the planner backend */
-static ECalBackendSyncStatus
+static void
cbp_remove_object (ECalBackendSync *backend,
EDataCal *cal,
const gchar *uid,
const gchar *rid,
CalObjModType mod,
- gchar **object)
+ gchar **old_object,
+ gchar **object,
+ GError **perror)
{
ECalBackendPlanner *cbplanner;
ECalBackendPlannerPrivate *priv;
@@ -1371,7 +1383,11 @@
cbplanner = E_CAL_BACKEND_PLANNER (backend);
priv = cbplanner->priv;
- g_return_val_if_fail (uid != NULL, GNOME_Evolution_Calendar_ObjectNotFound);
+ if (uid == NULL)
+ {
+ g_propagate_error (perror, EDC_ERROR (ObjectNotFound));
+ return;
+ }
g_message ("Removing object %s ...", uid);
comp = lookup_component (cbplanner, uid);
@@ -1381,15 +1397,14 @@
mrp_project_remove_task (priv->project, task);
g_object_unref (task);
mrp_project_save (priv->project, TRUE, &error);
-
- return GNOME_Evolution_Calendar_Success;;
}
/* Update_objects handler for the planner backend. */
-static ECalBackendSyncStatus
+static void
cbp_receive_objects (ECalBackendSync *backend,
EDataCal *cal,
- const gchar *calobj)
+ const gchar *calobj,
+ GError **perror)
{
ECalBackendPlanner *cbplanner;
ECalBackendPlannerPrivate *priv;
@@ -1399,26 +1414,29 @@
cbplanner = E_CAL_BACKEND_PLANNER (backend);
priv = cbplanner->priv;
- g_return_val_if_fail (calobj != NULL, GNOME_Evolution_Calendar_InvalidObject);
+ if (calobj == NULL)
+ {
+ g_propagate_error (perror, EDC_ERROR (InvalidObject));
+ return;
+ }
icalcomp = icalparser_parse_string (calobj);
if (!icalcomp)
- return GNOME_Evolution_Calendar_InvalidObject;
+ {
+ g_propagate_error (perror, EDC_ERROR (InvalidObject));
+ return;
+ }
g_message ("Modifying object: %s", calobj);
-
-
- /* return GNOME_Evolution_Calendar_PermissionDenied;*/
- return GNOME_Evolution_Calendar_Success;
-
}
-static ECalBackendSyncStatus
+static void
cbp_send_objects (ECalBackendSync *backend,
EDataCal *cal,
const gchar *calobj,
GList **users,
- gchar **modified_calobj)
+ gchar **modified_calobj,
+ GError **perror)
{
ECalBackendPlanner *cbplanner;
ECalBackendPlannerPrivate *priv;
@@ -1431,7 +1449,7 @@
g_message ("Sending objects ...");
- return GNOME_Evolution_Calendar_PermissionDenied;
+ g_propagate_error (perror, EDC_ERROR (PermissionDenied));
}
static icaltimezone *
@@ -1517,9 +1535,9 @@
sync_class->get_default_object_sync = cbp_get_default_object;
sync_class->get_object_sync = cbp_get_object;
sync_class->get_object_list_sync = cbp_get_object_list;
- sync_class->get_timezone_sync = cbp_get_timezone;
sync_class->add_timezone_sync = cbp_add_timezone;
- sync_class->set_default_timezone_sync = cbp_set_default_timezone;
+ sync_class->set_default_zone_sync = cbp_set_default_zone_sync;
+
sync_class->get_freebusy_sync = cbp_get_free_busy;
sync_class->get_changes_sync = cbp_get_changes;