[evolution-data-server] EBookBackend: Convert get_backend_property() method.



commit 2037369229d1ea9fcb5e72d6d97f64e7b899ef1c
Author: Matthew Barnes <mbarnes redhat com>
Date:   Mon Apr 1 09:21:59 2013 -0400

    EBookBackend: Convert get_backend_property() method.
    
    This method does not block, so simplify its signature and ditch the
    asynchronous wrappers.  Also, EBookBackendSync does not need its own
    get_backend_property_sync() method.
    
    Removed functions:
    
        e_book_backend_get_backend_property_sync()
        e_book_backend_get_backend_property_finish()
        e_book_backend_sync_get_backend_property()
        e_data_book_respond_get_backend_property()

 addressbook/backends/file/e-book-backend-file.c    |   51 ++--
 .../backends/google/e-book-backend-google.c        |  270 +++++++++----------
 addressbook/backends/ldap/e-book-backend-ldap.c    |   34 +--
 .../backends/webdav/e-book-backend-webdav.c        |   39 ++--
 addressbook/libedata-book/e-book-backend-sync.c    |   67 -----
 addressbook/libedata-book/e-book-backend-sync.h    |   14 -
 addressbook/libedata-book/e-book-backend.c         |  214 ++--------------
 addressbook/libedata-book/e-book-backend.h         |   21 +--
 addressbook/libedata-book/e-data-book.c            |   53 +----
 addressbook/libedata-book/e-data-book.h            |    5 -
 .../libedata-book/libedata-book-sections.txt       |    4 -
 11 files changed, 217 insertions(+), 555 deletions(-)
---
diff --git a/addressbook/backends/file/e-book-backend-file.c b/addressbook/backends/file/e-book-backend-file.c
index 61ae513..1c25853 100644
--- a/addressbook/backends/file/e-book-backend-file.c
+++ b/addressbook/backends/file/e-book-backend-file.c
@@ -1361,44 +1361,49 @@ e_book_backend_file_open (EBookBackendSync *backend,
        e_book_backend_set_writable (E_BOOK_BACKEND (backend), TRUE);
 }
 
-static gboolean
-e_book_backend_file_get_backend_property (EBookBackendSync *backend,
-                                          EDataBook *book,
-                                          GCancellable *cancellable,
-                                          const gchar *prop_name,
-                                          gchar **prop_value,
-                                          GError **error)
+static gchar *
+e_book_backend_file_get_backend_property (EBookBackend *backend,
+                                          const gchar *prop_name)
 {
        EBookBackendFile *bf = E_BOOK_BACKEND_FILE (backend);
-       gboolean processed = TRUE;
 
-       g_return_val_if_fail (prop_name != NULL, FALSE);
-       g_return_val_if_fail (prop_value != NULL, FALSE);
+       g_return_val_if_fail (prop_name != NULL, NULL);
 
        if (g_str_equal (prop_name, CLIENT_BACKEND_PROPERTY_CAPABILITIES)) {
-               *prop_value = g_strdup 
("local,do-initial-query,bulk-adds,bulk-modifies,bulk-removes,contact-lists");
+               return g_strdup ("local,do-initial-query,bulk-adds,bulk-modifies,bulk-removes,contact-lists");
+
        } else if (g_str_equal (prop_name, BOOK_BACKEND_PROPERTY_REQUIRED_FIELDS)) {
-               *prop_value = g_strdup (e_contact_field_name (E_CONTACT_FILE_AS));
+               return g_strdup (e_contact_field_name (E_CONTACT_FILE_AS));
+
        } else if (g_str_equal (prop_name, BOOK_BACKEND_PROPERTY_SUPPORTED_FIELDS)) {
-               GSList *fields = NULL;
-               gint i;
+               GString *fields;
+               gint ii;
+
+               fields = g_string_sized_new (1024);
 
                /* XXX we need a way to say "we support everything", since the
                 * file backend does */
-               for (i = 1; i < E_CONTACT_FIELD_LAST; i++)
-                       fields = g_slist_append (fields, (gpointer) e_contact_field_name (i));
+               for (ii = 1; ii < E_CONTACT_FIELD_LAST; ii++) {
+                       if (fields->len > 0)
+                               g_string_append_c (fields, ',');
+                       g_string_append (fields, e_contact_field_name (ii));
+               }
+
+               return g_string_free (fields, FALSE);
 
-               *prop_value = e_data_book_string_slist_to_comma_string (fields);
-               g_slist_free (fields);
        } else if (g_str_equal (prop_name, BOOK_BACKEND_PROPERTY_REVISION)) {
+               gchar *prop_value;
+
                g_rw_lock_reader_lock (&(bf->priv->lock));
-               *prop_value = g_strdup (bf->priv->revision);
+               prop_value = g_strdup (bf->priv->revision);
                g_rw_lock_reader_unlock (&(bf->priv->lock));
-       } else {
-               processed = FALSE;
+
+               return prop_value;
        }
 
-       return processed;
+       /* Chain up to parent's get_backend_property() method. */
+       return E_BOOK_BACKEND_CLASS (e_book_backend_file_parent_class)->
+               get_backend_property (backend, prop_name);
 }
 
 static void
@@ -1684,6 +1689,7 @@ e_book_backend_file_class_init (EBookBackendFileClass *class)
        backend_class = E_BOOK_BACKEND_CLASS (class);
 
        /* Set the virtual methods. */
+       backend_class->get_backend_property = e_book_backend_file_get_backend_property;
        backend_class->start_view               = e_book_backend_file_start_view;
        backend_class->stop_view                = e_book_backend_file_stop_view;
        backend_class->sync                     = e_book_backend_file_sync;
@@ -1692,7 +1698,6 @@ e_book_backend_file_class_init (EBookBackendFileClass *class)
        backend_class->configure_direct         = e_book_backend_file_configure_direct;
 
        sync_class->open_sync                   = e_book_backend_file_open;
-       sync_class->get_backend_property_sync   = e_book_backend_file_get_backend_property;
        sync_class->create_contacts_sync        = e_book_backend_file_create_contacts;
        sync_class->remove_contacts_sync        = e_book_backend_file_remove_contacts;
        sync_class->modify_contacts_sync        = e_book_backend_file_modify_contacts;
diff --git a/addressbook/backends/google/e-book-backend-google.c 
b/addressbook/backends/google/e-book-backend-google.c
index 601e181..a82fe65 100644
--- a/addressbook/backends/google/e-book-backend-google.c
+++ b/addressbook/backends/google/e-book-backend-google.c
@@ -1936,164 +1936,150 @@ e_book_backend_google_open (EBookBackend *backend,
        e_data_book_respond_open (book, opid, error);
 }
 
-static void
+static gchar *
 e_book_backend_google_get_backend_property (EBookBackend *backend,
-                                            EDataBook *book,
-                                            guint32 opid,
-                                            GCancellable *cancellable,
                                             const gchar *prop_name)
 {
        __debug__ (G_STRFUNC);
 
-       g_return_if_fail (prop_name != NULL);
+       g_return_val_if_fail (prop_name != NULL, NULL);
 
        if (g_str_equal (prop_name, CLIENT_BACKEND_PROPERTY_CAPABILITIES)) {
-               e_data_book_respond_get_backend_property (book, opid, NULL, 
"net,do-initial-query,contact-lists");
+               return g_strdup ("net,do-initial-query,contact-lists");
+
        } else if (g_str_equal (prop_name, BOOK_BACKEND_PROPERTY_REQUIRED_FIELDS)) {
-               e_data_book_respond_get_backend_property (book, opid, NULL, "");
+               return g_strdup ("");
+
        } else if (g_str_equal (prop_name, BOOK_BACKEND_PROPERTY_SUPPORTED_FIELDS)) {
-               GSList *fields = NULL;
-               gchar *fields_str;
-               guint i;
-               const gint supported_fields[] = {
-                       E_CONTACT_FULL_NAME,
-                       E_CONTACT_EMAIL_1,
-                       E_CONTACT_EMAIL_2,
-                       E_CONTACT_EMAIL_3,
-                       E_CONTACT_EMAIL_4,
-                       E_CONTACT_ADDRESS_LABEL_HOME,
-                       E_CONTACT_ADDRESS_LABEL_WORK,
-                       E_CONTACT_ADDRESS_LABEL_OTHER,
-                       E_CONTACT_PHONE_HOME,
-                       E_CONTACT_PHONE_HOME_FAX,
-                       E_CONTACT_PHONE_BUSINESS,
-                       E_CONTACT_PHONE_BUSINESS_FAX,
-                       E_CONTACT_PHONE_MOBILE,
-                       E_CONTACT_PHONE_PAGER,
-                       E_CONTACT_IM_AIM,
-                       E_CONTACT_IM_JABBER,
-                       E_CONTACT_IM_YAHOO,
-                       E_CONTACT_IM_MSN,
-                       E_CONTACT_IM_ICQ,
-                       E_CONTACT_IM_SKYPE,
-                       E_CONTACT_IM_GOOGLE_TALK,
-                       E_CONTACT_IM_GADUGADU,
-                       E_CONTACT_IM_GROUPWISE,
-                       E_CONTACT_ADDRESS,
-                       E_CONTACT_ADDRESS_HOME,
-                       E_CONTACT_ADDRESS_WORK,
-                       E_CONTACT_ADDRESS_OTHER,
-                       E_CONTACT_NAME,
-                       E_CONTACT_GIVEN_NAME,
-                       E_CONTACT_FAMILY_NAME,
-                       E_CONTACT_PHONE_ASSISTANT,
-                       E_CONTACT_PHONE_BUSINESS_2,
-                       E_CONTACT_PHONE_CALLBACK,
-                       E_CONTACT_PHONE_CAR,
-                       E_CONTACT_PHONE_COMPANY,
-                       E_CONTACT_PHONE_HOME_2,
-                       E_CONTACT_PHONE_ISDN,
-                       E_CONTACT_PHONE_OTHER,
-                       E_CONTACT_PHONE_OTHER_FAX,
-                       E_CONTACT_PHONE_PRIMARY,
-                       E_CONTACT_PHONE_RADIO,
-                       E_CONTACT_PHONE_TELEX,
-                       E_CONTACT_PHONE_TTYTDD,
-                       E_CONTACT_IM_AIM_HOME_1,
-                       E_CONTACT_IM_AIM_HOME_2,
-                       E_CONTACT_IM_AIM_HOME_3,
-                       E_CONTACT_IM_AIM_WORK_1,
-                       E_CONTACT_IM_AIM_WORK_2,
-                       E_CONTACT_IM_AIM_WORK_3,
-                       E_CONTACT_IM_GROUPWISE_HOME_1,
-                       E_CONTACT_IM_GROUPWISE_HOME_2,
-                       E_CONTACT_IM_GROUPWISE_HOME_3,
-                       E_CONTACT_IM_GROUPWISE_WORK_1,
-                       E_CONTACT_IM_GROUPWISE_WORK_2,
-                       E_CONTACT_IM_GROUPWISE_WORK_3,
-                       E_CONTACT_IM_JABBER_HOME_1,
-                       E_CONTACT_IM_JABBER_HOME_2,
-                       E_CONTACT_IM_JABBER_HOME_3,
-                       E_CONTACT_IM_JABBER_WORK_1,
-                       E_CONTACT_IM_JABBER_WORK_2,
-                       E_CONTACT_IM_JABBER_WORK_3,
-                       E_CONTACT_IM_YAHOO_HOME_1,
-                       E_CONTACT_IM_YAHOO_HOME_2,
-                       E_CONTACT_IM_YAHOO_HOME_3,
-                       E_CONTACT_IM_YAHOO_WORK_1,
-                       E_CONTACT_IM_YAHOO_WORK_2,
-                       E_CONTACT_IM_YAHOO_WORK_3,
-                       E_CONTACT_IM_MSN_HOME_1,
-                       E_CONTACT_IM_MSN_HOME_2,
-                       E_CONTACT_IM_MSN_HOME_3,
-                       E_CONTACT_IM_MSN_WORK_1,
-                       E_CONTACT_IM_MSN_WORK_2,
-                       E_CONTACT_IM_MSN_WORK_3,
-                       E_CONTACT_IM_ICQ_HOME_1,
-                       E_CONTACT_IM_ICQ_HOME_2,
-                       E_CONTACT_IM_ICQ_HOME_3,
-                       E_CONTACT_IM_ICQ_WORK_1,
-                       E_CONTACT_IM_ICQ_WORK_2,
-                       E_CONTACT_IM_ICQ_WORK_3,
-                       E_CONTACT_EMAIL,
-                       E_CONTACT_IM_GADUGADU_HOME_1,
-                       E_CONTACT_IM_GADUGADU_HOME_2,
-                       E_CONTACT_IM_GADUGADU_HOME_3,
-                       E_CONTACT_IM_GADUGADU_WORK_1,
-                       E_CONTACT_IM_GADUGADU_WORK_2,
-                       E_CONTACT_IM_GADUGADU_WORK_3,
-                       E_CONTACT_TEL,
-                       E_CONTACT_IM_SKYPE_HOME_1,
-                       E_CONTACT_IM_SKYPE_HOME_2,
-                       E_CONTACT_IM_SKYPE_HOME_3,
-                       E_CONTACT_IM_SKYPE_WORK_1,
-                       E_CONTACT_IM_SKYPE_WORK_2,
-                       E_CONTACT_IM_SKYPE_WORK_3,
-                       E_CONTACT_IM_GOOGLE_TALK_HOME_1,
-                       E_CONTACT_IM_GOOGLE_TALK_HOME_2,
-                       E_CONTACT_IM_GOOGLE_TALK_HOME_3,
-                       E_CONTACT_IM_GOOGLE_TALK_WORK_1,
-                       E_CONTACT_IM_GOOGLE_TALK_WORK_2,
-                       E_CONTACT_IM_GOOGLE_TALK_WORK_3,
-                       E_CONTACT_SIP,
-                       E_CONTACT_ORG,
-                       E_CONTACT_ORG_UNIT,
-                       E_CONTACT_TITLE,
-                       E_CONTACT_ROLE,
-                       E_CONTACT_HOMEPAGE_URL,
-                       E_CONTACT_BLOG_URL,
-                       E_CONTACT_BIRTH_DATE,
-                       E_CONTACT_ANNIVERSARY,
-                       E_CONTACT_NOTE,
-                       E_CONTACT_PHOTO,
-                       E_CONTACT_CATEGORIES,
+               return g_strjoin (
+                       ",",
+                       e_contact_field_name (E_CONTACT_FULL_NAME),
+                       e_contact_field_name (E_CONTACT_EMAIL_1),
+                       e_contact_field_name (E_CONTACT_EMAIL_2),
+                       e_contact_field_name (E_CONTACT_EMAIL_3),
+                       e_contact_field_name (E_CONTACT_EMAIL_4),
+                       e_contact_field_name (E_CONTACT_ADDRESS_LABEL_HOME),
+                       e_contact_field_name (E_CONTACT_ADDRESS_LABEL_WORK),
+                       e_contact_field_name (E_CONTACT_ADDRESS_LABEL_OTHER),
+                       e_contact_field_name (E_CONTACT_PHONE_HOME),
+                       e_contact_field_name (E_CONTACT_PHONE_HOME_FAX),
+                       e_contact_field_name (E_CONTACT_PHONE_BUSINESS),
+                       e_contact_field_name (E_CONTACT_PHONE_BUSINESS_FAX),
+                       e_contact_field_name (E_CONTACT_PHONE_MOBILE),
+                       e_contact_field_name (E_CONTACT_PHONE_PAGER),
+                       e_contact_field_name (E_CONTACT_IM_AIM),
+                       e_contact_field_name (E_CONTACT_IM_JABBER),
+                       e_contact_field_name (E_CONTACT_IM_YAHOO),
+                       e_contact_field_name (E_CONTACT_IM_MSN),
+                       e_contact_field_name (E_CONTACT_IM_ICQ),
+                       e_contact_field_name (E_CONTACT_IM_SKYPE),
+                       e_contact_field_name (E_CONTACT_IM_GOOGLE_TALK),
+                       e_contact_field_name (E_CONTACT_IM_GADUGADU),
+                       e_contact_field_name (E_CONTACT_IM_GROUPWISE),
+                       e_contact_field_name (E_CONTACT_ADDRESS),
+                       e_contact_field_name (E_CONTACT_ADDRESS_HOME),
+                       e_contact_field_name (E_CONTACT_ADDRESS_WORK),
+                       e_contact_field_name (E_CONTACT_ADDRESS_OTHER),
+                       e_contact_field_name (E_CONTACT_NAME),
+                       e_contact_field_name (E_CONTACT_GIVEN_NAME),
+                       e_contact_field_name (E_CONTACT_FAMILY_NAME),
+                       e_contact_field_name (E_CONTACT_PHONE_ASSISTANT),
+                       e_contact_field_name (E_CONTACT_PHONE_BUSINESS_2),
+                       e_contact_field_name (E_CONTACT_PHONE_CALLBACK),
+                       e_contact_field_name (E_CONTACT_PHONE_CAR),
+                       e_contact_field_name (E_CONTACT_PHONE_COMPANY),
+                       e_contact_field_name (E_CONTACT_PHONE_HOME_2),
+                       e_contact_field_name (E_CONTACT_PHONE_ISDN),
+                       e_contact_field_name (E_CONTACT_PHONE_OTHER),
+                       e_contact_field_name (E_CONTACT_PHONE_OTHER_FAX),
+                       e_contact_field_name (E_CONTACT_PHONE_PRIMARY),
+                       e_contact_field_name (E_CONTACT_PHONE_RADIO),
+                       e_contact_field_name (E_CONTACT_PHONE_TELEX),
+                       e_contact_field_name (E_CONTACT_PHONE_TTYTDD),
+                       e_contact_field_name (E_CONTACT_IM_AIM_HOME_1),
+                       e_contact_field_name (E_CONTACT_IM_AIM_HOME_2),
+                       e_contact_field_name (E_CONTACT_IM_AIM_HOME_3),
+                       e_contact_field_name (E_CONTACT_IM_AIM_WORK_1),
+                       e_contact_field_name (E_CONTACT_IM_AIM_WORK_2),
+                       e_contact_field_name (E_CONTACT_IM_AIM_WORK_3),
+                       e_contact_field_name (E_CONTACT_IM_GROUPWISE_HOME_1),
+                       e_contact_field_name (E_CONTACT_IM_GROUPWISE_HOME_2),
+                       e_contact_field_name (E_CONTACT_IM_GROUPWISE_HOME_3),
+                       e_contact_field_name (E_CONTACT_IM_GROUPWISE_WORK_1),
+                       e_contact_field_name (E_CONTACT_IM_GROUPWISE_WORK_2),
+                       e_contact_field_name (E_CONTACT_IM_GROUPWISE_WORK_3),
+                       e_contact_field_name (E_CONTACT_IM_JABBER_HOME_1),
+                       e_contact_field_name (E_CONTACT_IM_JABBER_HOME_2),
+                       e_contact_field_name (E_CONTACT_IM_JABBER_HOME_3),
+                       e_contact_field_name (E_CONTACT_IM_JABBER_WORK_1),
+                       e_contact_field_name (E_CONTACT_IM_JABBER_WORK_2),
+                       e_contact_field_name (E_CONTACT_IM_JABBER_WORK_3),
+                       e_contact_field_name (E_CONTACT_IM_YAHOO_HOME_1),
+                       e_contact_field_name (E_CONTACT_IM_YAHOO_HOME_2),
+                       e_contact_field_name (E_CONTACT_IM_YAHOO_HOME_3),
+                       e_contact_field_name (E_CONTACT_IM_YAHOO_WORK_1),
+                       e_contact_field_name (E_CONTACT_IM_YAHOO_WORK_2),
+                       e_contact_field_name (E_CONTACT_IM_YAHOO_WORK_3),
+                       e_contact_field_name (E_CONTACT_IM_MSN_HOME_1),
+                       e_contact_field_name (E_CONTACT_IM_MSN_HOME_2),
+                       e_contact_field_name (E_CONTACT_IM_MSN_HOME_3),
+                       e_contact_field_name (E_CONTACT_IM_MSN_WORK_1),
+                       e_contact_field_name (E_CONTACT_IM_MSN_WORK_2),
+                       e_contact_field_name (E_CONTACT_IM_MSN_WORK_3),
+                       e_contact_field_name (E_CONTACT_IM_ICQ_HOME_1),
+                       e_contact_field_name (E_CONTACT_IM_ICQ_HOME_2),
+                       e_contact_field_name (E_CONTACT_IM_ICQ_HOME_3),
+                       e_contact_field_name (E_CONTACT_IM_ICQ_WORK_1),
+                       e_contact_field_name (E_CONTACT_IM_ICQ_WORK_2),
+                       e_contact_field_name (E_CONTACT_IM_ICQ_WORK_3),
+                       e_contact_field_name (E_CONTACT_EMAIL),
+                       e_contact_field_name (E_CONTACT_IM_GADUGADU_HOME_1),
+                       e_contact_field_name (E_CONTACT_IM_GADUGADU_HOME_2),
+                       e_contact_field_name (E_CONTACT_IM_GADUGADU_HOME_3),
+                       e_contact_field_name (E_CONTACT_IM_GADUGADU_WORK_1),
+                       e_contact_field_name (E_CONTACT_IM_GADUGADU_WORK_2),
+                       e_contact_field_name (E_CONTACT_IM_GADUGADU_WORK_3),
+                       e_contact_field_name (E_CONTACT_TEL),
+                       e_contact_field_name (E_CONTACT_IM_SKYPE_HOME_1),
+                       e_contact_field_name (E_CONTACT_IM_SKYPE_HOME_2),
+                       e_contact_field_name (E_CONTACT_IM_SKYPE_HOME_3),
+                       e_contact_field_name (E_CONTACT_IM_SKYPE_WORK_1),
+                       e_contact_field_name (E_CONTACT_IM_SKYPE_WORK_2),
+                       e_contact_field_name (E_CONTACT_IM_SKYPE_WORK_3),
+                       e_contact_field_name (E_CONTACT_IM_GOOGLE_TALK_HOME_1),
+                       e_contact_field_name (E_CONTACT_IM_GOOGLE_TALK_HOME_2),
+                       e_contact_field_name (E_CONTACT_IM_GOOGLE_TALK_HOME_3),
+                       e_contact_field_name (E_CONTACT_IM_GOOGLE_TALK_WORK_1),
+                       e_contact_field_name (E_CONTACT_IM_GOOGLE_TALK_WORK_2),
+                       e_contact_field_name (E_CONTACT_IM_GOOGLE_TALK_WORK_3),
+                       e_contact_field_name (E_CONTACT_SIP),
+                       e_contact_field_name (E_CONTACT_ORG),
+                       e_contact_field_name (E_CONTACT_ORG_UNIT),
+                       e_contact_field_name (E_CONTACT_TITLE),
+                       e_contact_field_name (E_CONTACT_ROLE),
+                       e_contact_field_name (E_CONTACT_HOMEPAGE_URL),
+                       e_contact_field_name (E_CONTACT_BLOG_URL),
+                       e_contact_field_name (E_CONTACT_BIRTH_DATE),
+                       e_contact_field_name (E_CONTACT_ANNIVERSARY),
+                       e_contact_field_name (E_CONTACT_NOTE),
+                       e_contact_field_name (E_CONTACT_PHOTO),
+                       e_contact_field_name (E_CONTACT_CATEGORIES),
 #if defined(GDATA_CHECK_VERSION)
 #if GDATA_CHECK_VERSION(0, 11, 0)
-                       E_CONTACT_CATEGORY_LIST,
-                       E_CONTACT_FILE_AS
+                       e_contact_field_name (E_CONTACT_CATEGORY_LIST),
+                       e_contact_field_name (E_CONTACT_FILE_AS),
 #else
-                       E_CONTACT_CATEGORY_LIST
+                       e_contact_field_name (E_CONTACT_CATEGORY_LIST),
 #endif
 #else
-                       E_CONTACT_CATEGORY_LIST
+                       e_contact_field_name (E_CONTACT_CATEGORY_LIST),
 #endif
-               };
-
-               /* Add all the fields above to the list */
-               for (i = 0; i < G_N_ELEMENTS (supported_fields); i++) {
-                       const gchar *field_name = e_contact_field_name (supported_fields[i]);
-                       fields = g_slist_prepend (fields, (gpointer) field_name);
-               }
-
-               fields_str = e_data_book_string_slist_to_comma_string (fields);
-
-               e_data_book_respond_get_backend_property (book, opid, NULL, fields_str);
-
-               g_slist_free (fields);
-               g_free (fields_str);
-       } else {
-               E_BOOK_BACKEND_CLASS (e_book_backend_google_parent_class)->get_backend_property (backend, 
book, opid, cancellable, prop_name);
+                       NULL);
        }
+
+       /* Chain up to parent's get_backend_property() method. */
+       return E_BOOK_BACKEND_CLASS (e_book_backend_google_parent_class)->
+               get_backend_property (backend, prop_name);
 }
 
 static void
diff --git a/addressbook/backends/ldap/e-book-backend-ldap.c b/addressbook/backends/ldap/e-book-backend-ldap.c
index e24ec26..5f863b8 100644
--- a/addressbook/backends/ldap/e-book-backend-ldap.c
+++ b/addressbook/backends/ldap/e-book-backend-ldap.c
@@ -5346,27 +5346,25 @@ e_book_backend_ldap_open (EBookBackend *backend,
        e_data_book_respond_open (book, opid, error);
 }
 
-static void
+static gchar *
 e_book_backend_ldap_get_backend_property (EBookBackend *backend,
-                                          EDataBook *book,
-                                          guint32 opid,
-                                          GCancellable *cancellable,
                                           const gchar *prop_name)
 {
        EBookBackendLDAPPrivate *priv;
 
-       g_return_if_fail (prop_name != NULL);
+       g_return_val_if_fail (prop_name != NULL, NULL);
 
        priv = E_BOOK_BACKEND_LDAP_GET_PRIVATE (backend);
 
        if (g_str_equal (prop_name, CLIENT_BACKEND_PROPERTY_CAPABILITIES)) {
                if (can_browse (backend) || priv->marked_for_offline)
-                       e_data_book_respond_get_backend_property (book, opid, NULL, 
"net,anon-access,contact-lists,do-initial-query");
+                       return g_strdup ("net,anon-access,contact-lists,do-initial-query");
                else
-                       e_data_book_respond_get_backend_property (book, opid, NULL, 
"net,anon-access,contact-lists");
+                       return g_strdup ("net,anon-access,contact-lists");
+
        } else if (g_str_equal (prop_name, BOOK_BACKEND_PROPERTY_REQUIRED_FIELDS)) {
-               gchar *fields_str;
                GSList *fields = NULL;
+               gchar *prop_value;
 
                /*FIMEME we should look at mandatory attributs in the schema
                  and return all those fields here */
@@ -5374,24 +5372,22 @@ e_book_backend_ldap_get_backend_property (EBookBackend *backend,
                fields = g_slist_append (fields, (gpointer) e_contact_field_name (E_CONTACT_FULL_NAME));
                fields = g_slist_append (fields, (gpointer) e_contact_field_name (E_CONTACT_FAMILY_NAME));
 
-               fields_str = e_data_book_string_slist_to_comma_string (fields);
-
-               e_data_book_respond_get_backend_property (book, opid, NULL, fields_str);
+               prop_value = e_data_book_string_slist_to_comma_string (fields);
 
                g_slist_free (fields);
-               g_free (fields_str);
+
+               return prop_value;
+
        } else if (g_str_equal (prop_name, BOOK_BACKEND_PROPERTY_SUPPORTED_FIELDS)) {
                EBookBackendLDAP *bl = E_BOOK_BACKEND_LDAP (backend);
-               gchar *str;
-
-               str = e_data_book_string_slist_to_comma_string (bl->priv->supported_fields);
 
-               e_data_book_respond_get_backend_property (book, opid, NULL, str);
+               return e_data_book_string_slist_to_comma_string (bl->priv->supported_fields);
 
-               g_free (str);
-       } else {
-               E_BOOK_BACKEND_CLASS (e_book_backend_ldap_parent_class)->get_backend_property (backend, book, 
opid, cancellable, prop_name);
        }
+
+       /* Chain up to parent's get_backend_property() method. */
+       return E_BOOK_BACKEND_CLASS (e_book_backend_ldap_parent_class)->
+               get_backend_property (backend, prop_name);
 }
 
 static void
diff --git a/addressbook/backends/webdav/e-book-backend-webdav.c 
b/addressbook/backends/webdav/e-book-backend-webdav.c
index 0c0c405..1eb71a1 100644
--- a/addressbook/backends/webdav/e-book-backend-webdav.c
+++ b/addressbook/backends/webdav/e-book-backend-webdav.c
@@ -1487,38 +1487,37 @@ e_book_backend_webdav_notify_online_cb (EBookBackend *backend,
        e_book_backend_set_writable (backend, online);
 }
 
-static void
+static gchar *
 e_book_backend_webdav_get_backend_property (EBookBackend *backend,
-                                            EDataBook *book,
-                                            guint32 opid,
-                                            GCancellable *cancellable,
                                             const gchar *prop_name)
 {
-       g_return_if_fail (prop_name != NULL);
+       g_return_val_if_fail (prop_name != NULL, NULL);
 
        if (g_str_equal (prop_name, CLIENT_BACKEND_PROPERTY_CAPABILITIES)) {
-               e_data_book_respond_get_backend_property (book, opid, NULL, 
"net,do-initial-query,contact-lists");
+               return g_strdup ("net,do-initial-query,contact-lists");
+
        } else if (g_str_equal (prop_name, BOOK_BACKEND_PROPERTY_REQUIRED_FIELDS)) {
-               e_data_book_respond_get_backend_property (book, opid, NULL, e_contact_field_name 
(E_CONTACT_FILE_AS));
+               return g_strdup (e_contact_field_name (E_CONTACT_FILE_AS));
+
        } else if (g_str_equal (prop_name, BOOK_BACKEND_PROPERTY_SUPPORTED_FIELDS)) {
-               gchar *fields_str;
-               GSList *fields = NULL;
-               gint    i;
+               GString *fields;
+               gint ii;
+
+               fields = g_string_sized_new (1024);
 
                /* we support everything */
-               for (i = 1; i < E_CONTACT_FIELD_LAST; ++i) {
-                       fields = g_slist_append (fields, (gpointer) e_contact_field_name (i));
+               for (ii = 1; ii < E_CONTACT_FIELD_LAST; ii++) {
+                       if (fields->len > 0)
+                               g_string_append_c (fields, ',');
+                       g_string_append (fields, e_contact_field_name (ii));
                }
 
-               fields_str = e_data_book_string_slist_to_comma_string (fields);
-
-               e_data_book_respond_get_backend_property (book, opid, NULL, fields_str);
-
-               g_slist_free (fields);
-               g_free (fields_str);
-       } else {
-               E_BOOK_BACKEND_CLASS (e_book_backend_webdav_parent_class)->get_backend_property (backend, 
book, opid, cancellable, prop_name);
+               return g_string_free (fields, FALSE);
        }
+
+       /* Chain up to parent's get_backend_property() method. */
+       return E_BOOK_BACKEND_CLASS (e_book_backend_webdav_parent_class)->
+               get_backend_property (backend, prop_name);
 }
 
 static void
diff --git a/addressbook/libedata-book/e-book-backend-sync.c b/addressbook/libedata-book/e-book-backend-sync.c
index fea3d3b..54b6729 100644
--- a/addressbook/libedata-book/e-book-backend-sync.c
+++ b/addressbook/libedata-book/e-book-backend-sync.c
@@ -112,40 +112,6 @@ e_book_backend_sync_refresh (EBookBackendSync *backend,
 }
 
 /**
- * e_book_backend_sync_get_backend_property:
- * @backend: an #EBookBackendSync
- * @book: an #EDataBook
- * @cancellable: a #GCancellable for the operation
- * @prop_name: Property name whose value to retrieve.
- * @prop_value: Return value of the @prop_name.
- * @error: #GError to set, when something fails
- *
- * Calls the get_backend_property_sync method on the given backend.
- *
- * Returns whether processed this property. Returning FALSE means to pass
- * the call to the EBookBackend parent class, thus neither @error should be
- * set in this case.
- *
- * Since: 3.2
- **/
-gboolean
-e_book_backend_sync_get_backend_property (EBookBackendSync *backend,
-                                          EDataBook *book,
-                                          GCancellable *cancellable,
-                                          const gchar *prop_name,
-                                          gchar **prop_value,
-                                          GError **error)
-{
-       e_return_data_book_error_val_if_fail (E_IS_BOOK_BACKEND_SYNC (backend), 
E_DATA_BOOK_STATUS_INVALID_ARG);
-       e_return_data_book_error_val_if_fail (E_IS_DATA_BOOK (book), E_DATA_BOOK_STATUS_INVALID_ARG);
-       e_return_data_book_error_val_if_fail (prop_name, E_DATA_BOOK_STATUS_INVALID_ARG);
-       e_return_data_book_error_val_if_fail (prop_value, E_DATA_BOOK_STATUS_INVALID_ARG);
-       e_return_data_book_error_val_if_fail (E_BOOK_BACKEND_SYNC_GET_CLASS 
(backend)->get_backend_property_sync, E_DATA_BOOK_STATUS_NOT_SUPPORTED);
-
-       return (* E_BOOK_BACKEND_SYNC_GET_CLASS (backend)->get_backend_property_sync) (backend, book, 
cancellable, prop_name, prop_value, error);
-}
-
-/**
  * e_book_backend_sync_remove_contacts:
  * @backend: an #EBookBackendSync
  * @book: an #EDataBook
@@ -357,24 +323,6 @@ book_backend_refresh (EBookBackend *backend,
 }
 
 static void
-book_backend_get_backend_property (EBookBackend *backend,
-                                   EDataBook *book,
-                                   guint32 opid,
-                                   GCancellable *cancellable,
-                                   const gchar *prop_name)
-{
-       GError *error = NULL;
-       gchar *prop_value = NULL;
-
-       if (e_book_backend_sync_get_backend_property (E_BOOK_BACKEND_SYNC (backend), book, cancellable, 
prop_name, &prop_value, &error))
-               e_data_book_respond_get_backend_property (book, opid, error, prop_value);
-       else
-               (* E_BOOK_BACKEND_CLASS (e_book_backend_sync_parent_class)->get_backend_property) (backend, 
book, opid, cancellable, prop_name);
-
-       g_free (prop_value);
-}
-
-static void
 book_backend_create_contacts (EBookBackend *backend,
                               EDataBook *book,
                               guint32 opid,
@@ -481,18 +429,6 @@ book_backend_get_contact_list_uids (EBookBackend *backend,
        g_slist_free (uids);
 }
 
-static gboolean
-book_backend_sync_get_backend_property (EBookBackendSync *backend,
-                                        EDataBook *book,
-                                        GCancellable *cancellable,
-                                        const gchar *prop_name,
-                                        gchar **prop_value,
-                                        GError **error)
-{
-       /* to indicate to pass to the EBookBackend parent class */
-       return FALSE;
-}
-
 static void
 e_book_backend_sync_init (EBookBackendSync *backend)
 {
@@ -505,13 +441,10 @@ e_book_backend_sync_class_init (EBookBackendSyncClass *class)
 
        backend_class->open                     = book_backend_open;
        backend_class->refresh                  = book_backend_refresh;
-       backend_class->get_backend_property     = book_backend_get_backend_property;
        backend_class->create_contacts          = book_backend_create_contacts;
        backend_class->remove_contacts          = book_backend_remove_contacts;
        backend_class->modify_contacts          = book_backend_modify_contacts;
        backend_class->get_contact              = book_backend_get_contact;
        backend_class->get_contact_list         = book_backend_get_contact_list;
        backend_class->get_contact_list_uids    = book_backend_get_contact_list_uids;
-
-       class->get_backend_property_sync        = book_backend_sync_get_backend_property;
 }
diff --git a/addressbook/libedata-book/e-book-backend-sync.h b/addressbook/libedata-book/e-book-backend-sync.h
index ff720f3..e610d5f 100644
--- a/addressbook/libedata-book/e-book-backend-sync.h
+++ b/addressbook/libedata-book/e-book-backend-sync.h
@@ -54,13 +54,6 @@ struct _EBookBackendSyncClass {
                                                 EDataBook *book,
                                                 GCancellable *cancellable,
                                                 GError **error);
-       gboolean        (*get_backend_property_sync)
-                                               (EBookBackendSync *backend,
-                                                EDataBook *book,
-                                                GCancellable *cancellable,
-                                                const gchar *prop_name,
-                                                gchar **prop_value,
-                                                GError **error);
 
        void            (*create_contacts_sync) (EBookBackendSync *backend,
                                                 EDataBook *book,
@@ -115,13 +108,6 @@ void               e_book_backend_sync_refresh     (EBookBackendSync *backend,
                                                 EDataBook *book,
                                                 GCancellable *cancellable,
                                                 GError **error);
-gboolean       e_book_backend_sync_get_backend_property
-                                               (EBookBackendSync *backend,
-                                                EDataBook *book,
-                                                GCancellable *cancellable,
-                                                const gchar *prop_name,
-                                                gchar **prop_value,
-                                                GError **error);
 void           e_book_backend_sync_create_contacts
                                                (EBookBackendSync *backend,
                                                 EDataBook *book,
diff --git a/addressbook/libedata-book/e-book-backend.c b/addressbook/libedata-book/e-book-backend.c
index a6a4a3d..1150250 100644
--- a/addressbook/libedata-book/e-book-backend.c
+++ b/addressbook/libedata-book/e-book-backend.c
@@ -53,7 +53,6 @@ struct _AsyncContext {
        /* Inputs */
        gchar *uid;
        gchar *query;
-       const gchar *prop_name;
        GSList *string_list;
 
        /* Outputs */
@@ -280,64 +279,41 @@ book_backend_set_default_cache_dir (EBookBackend *backend)
        g_free (filename);
 }
 
-static void
+static gchar *
 book_backend_get_backend_property (EBookBackend *backend,
-                                   EDataBook *book,
-                                   guint32 opid,
-                                   GCancellable *cancellable,
                                    const gchar *prop_name)
 {
-       g_return_if_fail (E_IS_BOOK_BACKEND (backend));
-       g_return_if_fail (book != NULL);
-       g_return_if_fail (prop_name != NULL);
+       gchar *prop_value = NULL;
+
+       g_return_val_if_fail (E_IS_BOOK_BACKEND (backend), NULL);
+       g_return_val_if_fail (prop_name != NULL, NULL);
 
        if (g_str_equal (prop_name, CLIENT_BACKEND_PROPERTY_OPENED)) {
-               e_data_book_respond_get_backend_property (
-                       book, opid, NULL, "TRUE");
+               prop_value = g_strdup ("TRUE");
 
        } else if (g_str_equal (prop_name, CLIENT_BACKEND_PROPERTY_OPENING)) {
-               e_data_book_respond_get_backend_property (
-                       book, opid, NULL, "FALSE");
+               prop_value = g_strdup ("FALSE");
 
        } else if (g_str_equal (prop_name, CLIENT_BACKEND_PROPERTY_REVISION)) {
-               e_data_book_respond_get_backend_property (
-                       book, opid, NULL, "0");
+               prop_value = g_strdup ("0");
 
        } else if (g_str_equal (prop_name, CLIENT_BACKEND_PROPERTY_ONLINE)) {
                gboolean online;
 
                online = e_backend_get_online (E_BACKEND (backend));
-
-               e_data_book_respond_get_backend_property (
-                       book, opid, NULL, online ? "TRUE" : "FALSE");
+               prop_value = g_strdup (online ? "TRUE" : "FALSE");
 
        } else if (g_str_equal (prop_name, CLIENT_BACKEND_PROPERTY_READONLY)) {
                gboolean readonly;
 
                readonly = e_book_backend_is_readonly (backend);
-
-               e_data_book_respond_get_backend_property (
-                       book, opid, NULL, readonly ? "TRUE" : "FALSE");
+               prop_value = g_strdup (readonly ? "TRUE" : "FALSE");
 
        } else if (g_str_equal (prop_name, CLIENT_BACKEND_PROPERTY_CACHE_DIR)) {
-               const gchar *cache_dir;
-
-               cache_dir = e_book_backend_get_cache_dir (backend);
-
-               e_data_book_respond_get_backend_property (
-                       book, opid, NULL, cache_dir);
-
-       } else {
-               GError *error;
-
-               error = e_data_book_create_error_fmt (
-                       E_DATA_BOOK_STATUS_NOT_SUPPORTED,
-                       _("Unknown book property '%s'"), prop_name);
-
-               /* Takes ownership of the GError. */
-               e_data_book_respond_get_backend_property (
-                       book, opid, error, NULL);
+               prop_value = e_book_backend_dup_cache_dir (backend);
        }
+
+       return prop_value;
 }
 
 static void
@@ -2392,180 +2368,30 @@ e_book_backend_list_views (EBookBackend *backend)
 }
 
 /**
- * e_book_backend_get_backend_property_sync:
+ * e_book_backend_get_backend_property:
  * @backend: an #EBookBackend
  * @prop_name: a backend property name
- * @cancellable: optional #GCancellable object, or %NULL
- * @error: return location for a #GError, or %NULL
  *
  * Obtains the value of the backend property named @prop_name.
- *
- * Despite appearances, this function does not actually block.  So the
- * @cancellable can safely be %NULL.  It can, however, return an error
- * if @prop_name is not recognized.
- *
- * The returned string must be freed with g_free() when finished with it.
+ * Freed the returned string with g_free() when finished with it.
  *
  * Returns: the value for @prop_name
  *
  * Since: 3.10
  **/
 gchar *
-e_book_backend_get_backend_property_sync (EBookBackend *backend,
-                                          const gchar *prop_name,
-                                          GCancellable *cancellable,
-                                          GError **error)
+e_book_backend_get_backend_property (EBookBackend *backend,
+                                     const gchar *prop_name)
 {
-       EAsyncClosure *closure;
-       GAsyncResult *result;
-       gchar *prop_value;
+       EBookBackendClass *class;
 
        g_return_val_if_fail (E_IS_BOOK_BACKEND (backend), NULL);
        g_return_val_if_fail (prop_name != NULL, NULL);
 
-       closure = e_async_closure_new ();
-
-       e_book_backend_get_backend_property (
-               backend, prop_name, cancellable,
-               e_async_closure_callback, closure);
-
-       result = e_async_closure_wait (closure);
-
-       prop_value = e_book_backend_get_backend_property_finish (
-               backend, result, error);
-
-       e_async_closure_free (closure);
-
-       return prop_value;
-}
-
-/* Helper for e_book_backend_get_backend_property() */
-static void
-book_backend_get_backend_property_thread (GSimpleAsyncResult *simple,
-                                          GObject *source_object,
-                                          GCancellable *cancellable)
-{
-       EBookBackend *backend;
-       EBookBackendClass *class;
-       EDataBook *data_book;
-       AsyncContext *async_context;
-       guint32 opid;
-
-       backend = E_BOOK_BACKEND (source_object);
-
        class = E_BOOK_BACKEND_GET_CLASS (backend);
-       g_return_if_fail (class->get_backend_property != NULL);
-
-       data_book = e_book_backend_ref_data_book (backend);
-       g_return_if_fail (data_book != NULL);
-
-       async_context = g_simple_async_result_get_op_res_gpointer (simple);
-
-       opid = book_backend_stash_operation (backend, simple);
-
-       class->get_backend_property (
-               backend, data_book, opid, cancellable,
-               async_context->prop_name);
-
-       g_object_unref (data_book);
-}
-
-/**
- * e_book_backend_get_backend_property:
- * @backend: an #EBookBackend
- * @prop_name: a backend property name
- * @cancellable: optional #GCancellable object, or %NULL
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: data to pass to the callback function
- *
- * Asynchronously obtains the value of the backend property named @prop_name.
- *
- * Despite appearances, e_book_backend_get_backend_property_sync() does not
- * actually block, and is more convenient than this function.  This function
- * exists for the moment merely to invoke the class method and collect the
- * result from #EDataBook.
- *
- * When the operation is finished, @callback will be called.  You can then
- * call e_book_backend_get_backend_property_finish() to get the result of
- * the operation.
- *
- * Since: 3.10
- **/
-void
-e_book_backend_get_backend_property (EBookBackend *backend,
-                                     const gchar *prop_name,
-                                     GCancellable *cancellable,
-                                     GAsyncReadyCallback callback,
-                                     gpointer user_data)
-{
-       GSimpleAsyncResult *simple;
-       AsyncContext *async_context;
-
-       g_return_if_fail (E_IS_BOOK_BACKEND (backend));
-       g_return_if_fail (prop_name != NULL);
-
-       async_context = g_slice_new0 (AsyncContext);
-       async_context->prop_name = g_intern_string (prop_name);
-       async_context->string_queue = &async_context->result_queue;
-
-       simple = g_simple_async_result_new (
-               G_OBJECT (backend), callback, user_data,
-               e_book_backend_get_backend_property);
-
-       g_simple_async_result_set_check_cancellable (simple, cancellable);
-
-       g_simple_async_result_set_op_res_gpointer (
-               simple, async_context, (GDestroyNotify) async_context_free);
-
-       book_backend_push_operation (
-               backend, simple, cancellable, FALSE,
-               book_backend_get_backend_property_thread);
-
-       book_backend_dispatch_next_operation (backend);
+       g_return_val_if_fail (class->get_backend_property != NULL, NULL);
 
-       g_object_unref (simple);
-}
-
-/**
- * e_book_backend_get_backend_property_finish:
- * @backend: an #EBookBackend
- * @result: a #GAsyncResult
- * @error: return location for a #GError, or %NULL
- *
- * Finishes the operation started with e_book_backend_get_backend_property().
- *
- * The returned string must be freed with g_free() when finished with it.
- *
- * Returns: the requested property value
- *
- * Since: 3.10
- **/
-gchar *
-e_book_backend_get_backend_property_finish (EBookBackend *backend,
-                                            GAsyncResult *result,
-                                            GError **error)
-{
-       GSimpleAsyncResult *simple;
-       AsyncContext *async_context;
-       gchar *prop_value;
-
-       g_return_val_if_fail (
-               g_simple_async_result_is_valid (
-               result, G_OBJECT (backend),
-               e_book_backend_get_backend_property), NULL);
-
-       simple = G_SIMPLE_ASYNC_RESULT (result);
-       async_context = g_simple_async_result_get_op_res_gpointer (simple);
-
-       if (g_simple_async_result_propagate_error (simple, error))
-               return NULL;
-
-       prop_value = g_queue_pop_head (&async_context->result_queue);
-       g_return_val_if_fail (prop_value != NULL, NULL);
-
-       g_warn_if_fail (g_queue_is_empty (&async_context->result_queue));
-
-       return prop_value;
+       return class->get_backend_property (backend, prop_name);
 }
 
 /**
diff --git a/addressbook/libedata-book/e-book-backend.h b/addressbook/libedata-book/e-book-backend.h
index 67cad03..bd9e3c9 100644
--- a/addressbook/libedata-book/e-book-backend.h
+++ b/addressbook/libedata-book/e-book-backend.h
@@ -102,10 +102,7 @@ struct _EBookBackendClass {
        EBackendClass parent_class;
 
        /* Virtual methods */
-       void            (*get_backend_property) (EBookBackend *backend,
-                                                EDataBook *book,
-                                                guint32 opid,
-                                                GCancellable *cancellable,
+       gchar *         (*get_backend_property) (EBookBackend *backend,
                                                 const gchar *prop_name);
 
        void            (*open)                 (EBookBackend *backend,
@@ -188,21 +185,9 @@ void               e_book_backend_set_writable     (EBookBackend *backend,
 gboolean       e_book_backend_is_opened        (EBookBackend *backend);
 gboolean       e_book_backend_is_readonly      (EBookBackend *backend);
 
-gchar *                e_book_backend_get_backend_property_sync
-                                               (EBookBackend *backend,
-                                                const gchar *prop_name,
-                                                GCancellable *cancellable,
-                                                GError **error);
-void           e_book_backend_get_backend_property
+gchar *                e_book_backend_get_backend_property
                                                (EBookBackend *backend,
-                                                const gchar *prop_name,
-                                                GCancellable *cancellable,
-                                                GAsyncReadyCallback callback,
-                                                gpointer user_data);
-gchar *                e_book_backend_get_backend_property_finish
-                                               (EBookBackend *backend,
-                                                GAsyncResult *result,
-                                                GError **error);
+                                                const gchar *prop_name);
 gboolean       e_book_backend_open_sync        (EBookBackend *backend,
                                                 GCancellable *cancellable,
                                                 GError **error);
diff --git a/addressbook/libedata-book/e-data-book.c b/addressbook/libedata-book/e-data-book.c
index d9008be..626d985 100644
--- a/addressbook/libedata-book/e-data-book.c
+++ b/addressbook/libedata-book/e-data-book.c
@@ -1111,47 +1111,6 @@ e_data_book_respond_refresh (EDataBook *book,
        g_object_unref (backend);
 }
 
-/**
- * e_data_book_respond_get_backend_property:
- *
- * FIXME: Document me.
- *
- * Since: 3.2
- **/
-void
-e_data_book_respond_get_backend_property (EDataBook *book,
-                                          guint32 opid,
-                                          GError *error,
-                                          const gchar *prop_value)
-{
-       EBookBackend *backend;
-       GSimpleAsyncResult *simple;
-       GQueue *queue = NULL;
-
-       g_return_if_fail (E_IS_DATA_BOOK (book));
-
-       backend = e_data_book_ref_backend (book);
-       g_return_if_fail (backend != NULL);
-
-       simple = e_book_backend_prepare_for_completion (backend, opid, &queue);
-       g_return_if_fail (simple != NULL);
-       g_return_if_fail (queue != NULL);
-
-       if (error == NULL) {
-               /* Convert NULL to an empty string. */
-               if (prop_value == NULL)
-                       prop_value = "";
-               g_queue_push_tail (queue, g_strdup (prop_value));
-       } else {
-               g_simple_async_result_take_error (simple, error);
-       }
-
-       g_simple_async_result_complete_in_idle (simple);
-
-       g_object_unref (simple);
-       g_object_unref (backend);
-}
-
 void
 e_data_book_respond_get_contact (EDataBook *book,
                                  guint32 opid,
@@ -1675,29 +1634,25 @@ data_book_constructed (GObject *object)
        /* XXX Initialize the rest of the properties. */
 
        prop_name = CLIENT_BACKEND_PROPERTY_CAPABILITIES;
-       prop_value = e_book_backend_get_backend_property_sync (
-               backend, prop_name, NULL, NULL);
+       prop_value = e_book_backend_get_backend_property (backend, prop_name);
        e_data_book_report_backend_property_changed (
                book, prop_name, prop_value);
        g_free (prop_value);
 
        prop_name = CLIENT_BACKEND_PROPERTY_REVISION;
-       prop_value = e_book_backend_get_backend_property_sync (
-               backend, prop_name, NULL, NULL);
+       prop_value = e_book_backend_get_backend_property (backend, prop_name);
        e_data_book_report_backend_property_changed (
                book, prop_name, prop_value);
        g_free (prop_value);
 
        prop_name = BOOK_BACKEND_PROPERTY_REQUIRED_FIELDS;
-       prop_value = e_book_backend_get_backend_property_sync (
-               backend, prop_name, NULL, NULL);
+       prop_value = e_book_backend_get_backend_property (backend, prop_name);
        e_data_book_report_backend_property_changed (
                book, prop_name, prop_value);
        g_free (prop_value);
 
        prop_name = BOOK_BACKEND_PROPERTY_SUPPORTED_FIELDS;
-       prop_value = e_book_backend_get_backend_property_sync (
-               backend, prop_name, NULL, NULL);
+       prop_value = e_book_backend_get_backend_property (backend, prop_name);
        e_data_book_report_backend_property_changed (
                book, prop_name, prop_value);
        g_free (prop_value);
diff --git a/addressbook/libedata-book/e-data-book.h b/addressbook/libedata-book/e-data-book.h
index 82453f7..c943f76 100644
--- a/addressbook/libedata-book/e-data-book.h
+++ b/addressbook/libedata-book/e-data-book.h
@@ -155,11 +155,6 @@ void               e_data_book_respond_open        (EDataBook *book,
 void           e_data_book_respond_refresh     (EDataBook *book,
                                                 guint32 opid,
                                                 GError *error);
-void           e_data_book_respond_get_backend_property
-                                               (EDataBook *book,
-                                                guint32 opid,
-                                                GError *error,
-                                                const gchar *prop_value);
 void           e_data_book_respond_create_contacts
                                                (EDataBook *book,
                                                 guint32 opid,
diff --git a/docs/reference/addressbook/libedata-book/libedata-book-sections.txt 
b/docs/reference/addressbook/libedata-book/libedata-book-sections.txt
index 276ca45..941c9e4 100644
--- a/docs/reference/addressbook/libedata-book/libedata-book-sections.txt
+++ b/docs/reference/addressbook/libedata-book/libedata-book-sections.txt
@@ -16,9 +16,7 @@ e_book_backend_get_writable
 e_book_backend_set_writable
 e_book_backend_is_opened
 e_book_backend_is_readonly
-e_book_backend_get_backend_property_sync
 e_book_backend_get_backend_property
-e_book_backend_get_backend_property_finish
 e_book_backend_open_sync
 e_book_backend_open
 e_book_backend_open_finish
@@ -246,7 +244,6 @@ EBookBackendSync
 e_book_backend_sync_construct
 e_book_backend_sync_open
 e_book_backend_sync_refresh
-e_book_backend_sync_get_backend_property
 e_book_backend_sync_create_contacts
 e_book_backend_sync_remove_contacts
 e_book_backend_sync_modify_contacts
@@ -283,7 +280,6 @@ e_data_book_get_object_path
 e_data_book_is_opened
 e_data_book_respond_open
 e_data_book_respond_refresh
-e_data_book_respond_get_backend_property
 e_data_book_respond_create_contacts
 e_data_book_respond_remove_contacts
 e_data_book_respond_modify_contacts



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