[evolution-ews] Remove CamelThreadMsg



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]