[evolution-kolab] ECalBackendKolab: Convert get_backend_property() method.



commit 0d757039d6fc8958e3b7c7e6cf92f7dafd9ce3ed
Author: Matthew Barnes <mbarnes redhat com>
Date:   Mon Apr 1 12:13:50 2013 -0400

    ECalBackendKolab: Convert get_backend_property() method.

 src/calendar/e-cal-backend-kolab.c |   69 ++++++++++++++++--------------------
 1 files changed, 31 insertions(+), 38 deletions(-)
---
diff --git a/src/calendar/e-cal-backend-kolab.c b/src/calendar/e-cal-backend-kolab.c
index d2c43a0..5114dda 100644
--- a/src/calendar/e-cal-backend-kolab.c
+++ b/src/calendar/e-cal-backend-kolab.c
@@ -418,53 +418,45 @@ cal_backend_kolab_refresh (ECalBackendSync *backend,
        g_error ("%s: FIXME implement me", __func__);
 }
 
-static gboolean
-cal_backend_kolab_get_backend_property (ECalBackendSync *backend,
-                                        EDataCal *cal,
-                                        GCancellable *cancellable,
-                                        const gchar *prop_name,
-                                        gchar **prop_value,
-                                        GError **error)
+static gchar *
+cal_backend_kolab_get_backend_property (ECalBackend *backend,
+                                        const gchar *prop_name)
 {
        ECalBackendKolab *self = NULL;
        ECalBackendKolabPrivate *priv = NULL;
-       gboolean processed = TRUE;
 
        /* this is a modified dupe of the respective mapi function */
 
-       g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
-       e_return_data_cal_error_val_if_fail (E_IS_CAL_BACKEND_KOLAB (backend), InvalidArg);
-       e_return_data_cal_error_val_if_fail (E_IS_DATA_CAL (cal), InvalidArg);
-       (void)cancellable; /* FIXME */ /* cancellable may be NULL */
-       e_return_data_cal_error_val_if_fail (prop_name != NULL, InvalidArg);
-       e_return_data_cal_error_val_if_fail (prop_value != NULL && *prop_value == NULL, InvalidArg);
+       g_return_val_if_fail (prop_name != NULL, NULL);
 
        self = E_CAL_BACKEND_KOLAB (backend);
        priv = E_CAL_BACKEND_KOLAB_PRIVATE (self);
 
        if (g_str_equal (prop_name, CLIENT_BACKEND_PROPERTY_CAPABILITIES)) {
-               *prop_value = g_strdup (CAL_STATIC_CAPABILITY_NO_ALARM_REPEAT ","
-                                       CAL_STATIC_CAPABILITY_NO_AUDIO_ALARMS ","
-                                       CAL_STATIC_CAPABILITY_NO_EMAIL_ALARMS ","
-                                       CAL_STATIC_CAPABILITY_NO_PROCEDURE_ALARMS ","
-                                       CAL_STATIC_CAPABILITY_ONE_ALARM_ONLY ","
-                                       CAL_STATIC_CAPABILITY_REMOVE_ALARMS ","
-                                       CAL_STATIC_CAPABILITY_NO_THISANDFUTURE ","
-                                       CAL_STATIC_CAPABILITY_NO_THISANDPRIOR ","
-                                       CAL_STATIC_CAPABILITY_NO_CONV_TO_ASSIGN_TASK ","
-                                       CAL_STATIC_CAPABILITY_NO_CONV_TO_RECUR ","
-                                       CAL_STATIC_CAPABILITY_HAS_UNACCEPTED_MEETING ","
-                                       CAL_STATIC_CAPABILITY_REFRESH_SUPPORTED
-                                       );
+               return g_strjoin (
+                       ",",
+                       CAL_STATIC_CAPABILITY_NO_ALARM_REPEAT,
+                       CAL_STATIC_CAPABILITY_NO_AUDIO_ALARMS,
+                       CAL_STATIC_CAPABILITY_NO_EMAIL_ALARMS,
+                       CAL_STATIC_CAPABILITY_NO_PROCEDURE_ALARMS,
+                       CAL_STATIC_CAPABILITY_ONE_ALARM_ONLY,
+                       CAL_STATIC_CAPABILITY_REMOVE_ALARMS,
+                       CAL_STATIC_CAPABILITY_NO_THISANDFUTURE,
+                       CAL_STATIC_CAPABILITY_NO_THISANDPRIOR,
+                       CAL_STATIC_CAPABILITY_NO_CONV_TO_ASSIGN_TASK,
+                       CAL_STATIC_CAPABILITY_NO_CONV_TO_RECUR,
+                       CAL_STATIC_CAPABILITY_HAS_UNACCEPTED_MEETING,
+                       CAL_STATIC_CAPABILITY_REFRESH_SUPPORTED,
+                       NULL);
        } else if (g_str_equal (prop_name, CAL_BACKEND_PROPERTY_CAL_EMAIL_ADDRESS)) {
                /* see the comment for user_email in e_cal_backend_kolab_open() ! */
-               *prop_value = g_strdup (priv->user_email);
+               return g_strdup (priv->user_email);
        } else if (g_str_equal (prop_name, CAL_BACKEND_PROPERTY_ALARM_EMAIL_ADDRESS)) {
                /* We don't support email alarms. This should not have been called. */
-               *prop_value = NULL;
+               return NULL;
        } else if (g_str_equal (prop_name, CAL_BACKEND_PROPERTY_DEFAULT_OBJECT)) {
                ECalComponent *comp;
-               GError *tmp_err = NULL;
+               gchar *prop_value;
 
                comp = e_cal_component_new ();
 
@@ -480,18 +472,19 @@ cal_backend_kolab_get_backend_property (ECalBackendSync *backend,
                        break;
                default:
                        g_object_unref (comp);
-                       tmp_err = e_data_cal_create_error (ObjectNotFound, NULL);
-                       g_propagate_error (error, tmp_err);
-                       return TRUE;
+                       return NULL;
                }
 
-               *prop_value = e_cal_component_get_as_string (comp);
+               prop_value = e_cal_component_get_as_string (comp);
+
                g_object_unref (comp);
-       } else {
-               processed = FALSE; /* means chaining up the call to parent */
+
+               return prop_value;
        }
 
-       return processed;
+       /* Chain up to parent's get_backend_property() method. */
+       return E_CAL_BACKEND_CLASS (e_cal_backend_kolab_parent_class)->
+               get_backend_property (backend, prop_name);
 }
 
 /**
@@ -1914,13 +1907,13 @@ e_cal_backend_kolab_class_init (ECalBackendKolabClass *klass)
        object_class->finalize = e_cal_backend_kolab_finalize;
 
        /* Backend parent class methods methods not covered in the sync backend part */
+       backend_class->get_backend_property = cal_backend_kolab_get_backend_property;
        backend_class->start_view = cal_backend_kolab_start_view;
        backend_class->stop_view = cal_backend_kolab_stop_view;
 
        /* Sync backend class functions */
        sync_class->open_sync = cal_backend_kolab_open;
        sync_class->refresh_sync = cal_backend_kolab_refresh;
-       sync_class->get_backend_property_sync = cal_backend_kolab_get_backend_property;
        sync_class->get_object_sync = cal_backend_kolab_get_object;
        sync_class->get_object_list_sync = cal_backend_kolab_get_object_list;
        sync_class->get_free_busy_sync = cal_backend_kolab_get_free_busy;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]