[evolution-ews] Remove CamelThreadMsg
- From: Chenthill Palanisamy <pchen src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-ews] Remove CamelThreadMsg
- Date: Thu, 8 Sep 2011 09:02:05 +0000 (UTC)
commit 221e4286a6b57bec5ec19418fe7d8675b1f8cde9
Author: Chenthill Palanisamy <pchenthill novell com>
Date: Thu Sep 8 12:49:26 2011 +0530
Remove CamelThreadMsg
src/camel/camel-ews-store.c | 91 +++++++++---------------------------------
1 files changed, 20 insertions(+), 71 deletions(-)
---
diff --git a/src/camel/camel-ews-store.c b/src/camel/camel-ews-store.c
index e1fe9d1..33f644d 100644
--- a/src/camel/camel-ews-store.c
+++ b/src/camel/camel-ews-store.c
@@ -414,15 +414,6 @@ folder_info_from_store_summary (CamelEwsStore *store, const gchar *top, guint32
return root_fi;
}
-struct _store_sync_data
-{
- CamelEwsStore *ews_store;
-
- /* Used if caller wants it to be a sync call */
- EFlag *sync;
- GError **error;
-};
-
static void
ews_update_folder_hierarchy (CamelEwsStore *ews_store, gchar *sync_state,
gboolean includes_last_folder, GSList *folders_created,
@@ -446,8 +437,7 @@ ews_folder_hierarchy_ready_cb (GObject *obj, GAsyncResult *res, gpointer user_da
{
GSList *folders_created = NULL, *folders_updated = NULL;
GSList *folders_deleted = NULL;
- struct _store_sync_data *sync_data = (struct _store_sync_data *) user_data;
- CamelEwsStore *ews_store = sync_data->ews_store;
+ CamelEwsStore *ews_store = (CamelEwsStore *) user_data;
CamelEwsStorePrivate *priv = ews_store->priv;
EEwsConnection *cnc = (EEwsConnection *) obj;
gchar *sync_state = NULL;
@@ -461,78 +451,44 @@ ews_folder_hierarchy_ready_cb (GObject *obj, GAsyncResult *res, gpointer user_da
if (error != NULL) {
g_warning ("Unable to fetch the folder hierarchy: %s :%d \n", error->message, error->code);
- if (!sync_data->sync) {
- g_mutex_lock (priv->get_finfo_lock);
- ews_store->priv->last_refresh_time -= FINFO_REFRESH_INTERVAL;
- g_mutex_unlock (priv->get_finfo_lock);
- }
+ g_mutex_lock (priv->get_finfo_lock);
+ ews_store->priv->last_refresh_time -= FINFO_REFRESH_INTERVAL;
+ g_mutex_unlock (priv->get_finfo_lock);
goto exit;
}
ews_update_folder_hierarchy (ews_store, sync_state, includes_last_folder,
folders_created, folders_deleted, folders_updated);
- if (!sync_data->sync) {
- g_mutex_lock (priv->get_finfo_lock);
- ews_store->priv->last_refresh_time = time (NULL);
- g_mutex_unlock (priv->get_finfo_lock);
- }
+ g_mutex_lock (priv->get_finfo_lock);
+ ews_store->priv->last_refresh_time = time (NULL);
+ g_mutex_unlock (priv->get_finfo_lock);
exit:
- if (sync_data->sync) {
- e_flag_set (sync_data->sync);
- if (error)
- g_propagate_error (sync_data->error, error);
-
- } else {
- g_free (sync_data);
- g_clear_error (&error);
- }
+ g_object_unref (ews_store);
+ g_clear_error (&error);
}
-struct _ews_refresh_msg {
- CamelSessionThreadMsg msg;
- CamelStore *store;
-};
-
-static void
-ews_refresh_finfo (CamelSession *session, CamelSessionThreadMsg *msg)
+static gboolean
+ews_refresh_finfo (CamelEwsStore *ews_store)
{
- struct _ews_refresh_msg *m = (struct _ews_refresh_msg *)msg;
- CamelEwsStore *ews_store = (CamelEwsStore *) m->store;
gchar *sync_state;
- struct _store_sync_data *sync_data;
-
+
if (!camel_offline_store_get_online (CAMEL_OFFLINE_STORE (ews_store)))
- return;
+ return FALSE;
- if (!EVO3_sync(camel_service_connect) ((CamelService *) ews_store, &msg->error))
- return;
+ if (!EVO3_sync(camel_service_connect) ((CamelService *) ews_store, NULL))
+ return FALSE;
sync_state = camel_ews_store_summary_get_string_val (ews_store->summary, "sync_state", NULL);
- sync_data = g_new0 (struct _store_sync_data, 1);
- sync_data->ews_store = ews_store;
e_ews_connection_sync_folder_hierarchy_start (ews_store->priv->cnc, EWS_PRIORITY_MEDIUM,
sync_state, ews_folder_hierarchy_ready_cb,
- NULL, sync_data);
+ NULL, g_object_ref (ews_store));
g_free (sync_state);
+ return TRUE;
}
-static void
-ews_refresh_free (CamelSession *session, CamelSessionThreadMsg *msg)
-{
- struct _ews_refresh_msg *m = (struct _ews_refresh_msg *)msg;
-
- g_object_unref (m->store);
-}
-
-
-static CamelSessionThreadOps ews_refresh_ops = {
- ews_refresh_finfo,
- ews_refresh_free,
-};
-
static CamelFolderInfo *
ews_get_folder_info_sync (CamelStore *store, const gchar *top, guint32 flags, EVO3(GCancellable *cancellable,) GError **error)
{
@@ -562,18 +518,11 @@ ews_get_folder_info_sync (CamelStore *store, const gchar *top, guint32 flags, EV
if (!initial_setup && flags & CAMEL_STORE_FOLDER_INFO_SUBSCRIBED) {
time_t now = time (NULL);
-
+
g_free (sync_state);
+ if (now - priv->last_refresh_time > FINFO_REFRESH_INTERVAL && ews_refresh_finfo (ews_store))
+ ews_store->priv->last_refresh_time = time (NULL);
- if (now - priv->last_refresh_time > FINFO_REFRESH_INTERVAL) {
- struct _ews_refresh_msg *m;
-
- m = camel_session_thread_msg_new (((CamelService *)store)->session, &ews_refresh_ops, sizeof (*m));
- m->store = g_object_ref (store);
- camel_session_thread_queue (((CamelService *)store)->session, &m->msg, 0);
- }
-
- ews_store->priv->last_refresh_time = time (NULL);
g_mutex_unlock (priv->get_finfo_lock);
goto offline;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]