From f1cc9011fb2b986b5da991764387d03e5fa565c5 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Thu, 18 Jul 2013 11:09:44 -0400 Subject: Add e_mail_store_go_online_sync(). Need for new mail_folder_cache_note_store() implementation. --- libemail-engine/e-mail-store-utils.c | 49 +++++++++++++++++++++++------------- libemail-engine/e-mail-store-utils.h | 3 +++ 2 files changed, 35 insertions(+), 17 deletions(-) (limited to 'libemail-engine') diff --git a/libemail-engine/e-mail-store-utils.c b/libemail-engine/e-mail-store-utils.c index a92aaaccf4..ac8e8ea07d 100644 --- a/libemail-engine/e-mail-store-utils.c +++ b/libemail-engine/e-mail-store-utils.c @@ -246,17 +246,18 @@ e_mail_store_go_offline_finish (CamelStore *store, return !g_simple_async_result_propagate_error (simple, error); } -/* Helper for e_mail_store_go_online() */ -static void -mail_store_go_online_thread (GSimpleAsyncResult *simple, - GObject *source_object, - GCancellable *cancellable) +gboolean +e_mail_store_go_online_sync (CamelStore *store, + GCancellable *cancellable, + GError **error) { CamelService *service; const gchar *display_name; - GError *local_error = NULL; + gboolean success = TRUE; - service = CAMEL_SERVICE (source_object); + g_return_val_if_fail (CAMEL_IS_STORE (store), FALSE); + + service = CAMEL_SERVICE (store); display_name = camel_service_get_display_name (service); if (display_name == NULL || *display_name == '\0') @@ -265,21 +266,35 @@ mail_store_go_online_thread (GSimpleAsyncResult *simple, camel_operation_push_message ( cancellable, _("Reconnecting to '%s'"), display_name); - if (CAMEL_IS_DISCO_STORE (service)) - camel_disco_store_set_status ( - CAMEL_DISCO_STORE (service), + if (CAMEL_IS_DISCO_STORE (store)) + success = camel_disco_store_set_status ( + CAMEL_DISCO_STORE (store), CAMEL_DISCO_STORE_ONLINE, - cancellable, &local_error); + cancellable, error); - else if (CAMEL_IS_OFFLINE_STORE (service)) - camel_offline_store_set_online_sync ( - CAMEL_OFFLINE_STORE (service), - TRUE, cancellable, &local_error); + if (CAMEL_IS_OFFLINE_STORE (store)) + success = camel_offline_store_set_online_sync ( + CAMEL_OFFLINE_STORE (store), + TRUE, cancellable, error); + + camel_operation_pop_message (cancellable); + + return success; +} + +/* Helper for e_mail_store_go_online() */ +static void +mail_store_go_online_thread (GSimpleAsyncResult *simple, + GObject *source_object, + GCancellable *cancellable) +{ + GError *local_error = NULL; + + e_mail_store_go_online_sync ( + CAMEL_STORE (source_object), cancellable, &local_error); if (local_error != NULL) g_simple_async_result_take_error (simple, local_error); - - camel_operation_pop_message (cancellable); } void diff --git a/libemail-engine/e-mail-store-utils.h b/libemail-engine/e-mail-store-utils.h index de4484c020..143e0cc24f 100644 --- a/libemail-engine/e-mail-store-utils.h +++ b/libemail-engine/e-mail-store-utils.h @@ -49,6 +49,9 @@ gboolean e_mail_store_go_offline_finish (CamelStore *store, GAsyncResult *result, GError **error); +gboolean e_mail_store_go_online_sync (CamelStore *store, + GCancellable *cancellable, + GError **error); void e_mail_store_go_online (CamelStore *store, gint io_priority, GCancellable *cancellable, -- cgit v1.2.3