[evolution-kolab] KolabMailImapClient: get EBackend instance from KolabSettingsHandler



commit d66f9cc1f6f7f680c8cc75d433b243276b4463b4
Author: Christian Hilberg <hilberg kernelconcepts de>
Date:   Fri Oct 26 20:12:57 2012 +0200

    KolabMailImapClient: get EBackend instance from KolabSettingsHandler
    
    * instead of requiring an EBackend instance in
      configure(), get it from the settings handler,
      which holds a ref on the backend now
    * adjusted API of KolabMailAccess and its callers

 src/addressbook/e-book-backend-kolab.c             |    1 -
 src/calendar/e-cal-backend-kolab.c                 |    1 -
 src/collection/e-kolab-backend.c                   |    2 +-
 src/libekolab/kolab-mail-access.c                  |   36 +++++++++-----------
 src/libekolab/kolab-mail-access.h                  |    1 -
 src/libekolab/kolab-mail-imap-client.c             |    4 +-
 src/libekolab/kolab-mail-imap-client.h             |    1 -
 .../integration/libekolab/test-kolab-mail-access.c |    1 -
 8 files changed, 19 insertions(+), 28 deletions(-)
---
diff --git a/src/addressbook/e-book-backend-kolab.c b/src/addressbook/e-book-backend-kolab.c
index 1fd239f..defa727 100644
--- a/src/addressbook/e-book-backend-kolab.c
+++ b/src/addressbook/e-book-backend-kolab.c
@@ -313,7 +313,6 @@ book_backend_kolab_open (EBookBackendSync *backend,
 
 	/* configure and bring up KolabMailAccess instance */
 	ok = kolab_mail_access_configure (priv->book_koma,
-	                                  E_BACKEND (backend),
 	                                  ksettings,
 	                                  &tmp_err);
 	if (! ok)
diff --git a/src/calendar/e-cal-backend-kolab.c b/src/calendar/e-cal-backend-kolab.c
index 19bd4d1..a42449f 100644
--- a/src/calendar/e-cal-backend-kolab.c
+++ b/src/calendar/e-cal-backend-kolab.c
@@ -374,7 +374,6 @@ cal_backend_kolab_open (ECalBackendSync *backend,
 
 	/* configure and bring up KolabMailAccess instance */
 	ok = kolab_mail_access_configure (priv->cal_koma,
-	                                  E_BACKEND (backend),
 	                                  ksettings,
 	                                  &tmp_err);
 	if (! ok)
diff --git a/src/collection/e-kolab-backend.c b/src/collection/e-kolab-backend.c
index bca0337..1e842ba 100644
--- a/src/collection/e-kolab-backend.c
+++ b/src/collection/e-kolab-backend.c
@@ -505,7 +505,7 @@ e_kolab_backend_ref_mail_access_sync (EKolabBackend *backend,
 	koma = g_object_new (KOLAB_TYPE_MAIL_ACCESS, NULL);
 
 	success = kolab_mail_access_configure (
-		koma, E_BACKEND (backend), settings_handler, error);
+		koma, settings_handler, error);
 	if (!success) {
 		g_object_unref (settings_handler);
 		g_object_unref (koma);
diff --git a/src/libekolab/kolab-mail-access.c b/src/libekolab/kolab-mail-access.c
index ce2b490..b8772cf 100644
--- a/src/libekolab/kolab-mail-access.c
+++ b/src/libekolab/kolab-mail-access.c
@@ -255,7 +255,7 @@ mail_access_foldername_new_from_sourcename (KolabMailAccess *self,
 
 	if (! check_exists)
 		goto done;
-	
+
 	/* foldername may exist in KolabMailSideCache only */
 	exists = kolab_mail_info_db_exists_foldername (priv->infodb,
 	                                               sourcename,
@@ -275,7 +275,7 @@ mail_access_foldername_new_from_sourcename (KolabMailAccess *self,
 	}
 
  done:
-	
+
 	return g_strdup (sourcename);
 }
 
@@ -667,7 +667,7 @@ mail_access_local_store (KolabMailAccess *self,
 	}
 
  handle_skip:
-	
+
 	/* online store operation */
 	if (do_store && (! offline_fail) && (priv->state->opmode == KOLAB_MAIL_ACCESS_OPMODE_ONLINE)) {
 
@@ -706,7 +706,7 @@ mail_access_local_store (KolabMailAccess *self,
 			 */
 			goto done;
 		}
-		
+
 	}
 
 	/* set handle incomplete */
@@ -800,7 +800,7 @@ mail_access_local_delete (KolabMailAccess *self,
 	 */
 	if (kmailhandle == NULL) {
 		do_del = TRUE;
-		foldername_del = g_strdup (foldername);		
+		foldername_del = g_strdup (foldername);
 		location = KOLAB_OBJECT_CACHE_LOCATION_IMAP; /* verified by a preceeding online query */
 		goto handle_skip;
 	}
@@ -813,7 +813,7 @@ mail_access_local_delete (KolabMailAccess *self,
 		g_propagate_error (err, tmp_err);
 		return FALSE;
 	}
-	
+
 	/* get handle details */
 	uid = kolab_mail_handle_get_uid (kmailhandle);
 	location = kolab_mail_handle_get_cache_location (kmailhandle);
@@ -828,7 +828,7 @@ mail_access_local_delete (KolabMailAccess *self,
 			g_free (foldername_del);
 		return FALSE;
 	}
-	
+
 	/* TODO can we switch from full summaries table to simple UID list here ? */
 	imap_summaries = kolab_mail_imap_client_query_summaries (priv->client,
 	                                                         foldername,
@@ -840,7 +840,7 @@ mail_access_local_delete (KolabMailAccess *self,
 		g_propagate_error (err, tmp_err);
 		return FALSE;
 	}
-	
+
 	/* delete transaction preparation */
 	do_del = kolab_mail_synchronizer_transaction_prepare (priv->synchronizer,
 	                                                      priv->state->opmode,
@@ -879,7 +879,7 @@ mail_access_local_delete (KolabMailAccess *self,
 	}
 
  handle_skip:
-	
+
 	if (do_del) {
 		/* online delete operation */
 		if ((location & KOLAB_OBJECT_CACHE_LOCATION_IMAP) &&
@@ -912,7 +912,7 @@ mail_access_local_delete (KolabMailAccess *self,
 				                                           foldername_del,
 				                                           cancellable,
 				                                           &tmp_err);
-				
+
 				/* TODO check whether we need to update DBs and friends
 				 *      (most probably no point, since the backend for
 				 *      the folder will be removed and the cache reaper
@@ -938,7 +938,7 @@ mail_access_local_delete (KolabMailAccess *self,
 				online_ok = FALSE;
 			}
 		}
-		
+
 		/* offline delete operation (not done if online operation failed before,
 		 * skipped for folders)
 		 */
@@ -990,7 +990,7 @@ mail_access_local_delete (KolabMailAccess *self,
 		                                                record,
 		                                                &tmp_err);
  done:
-	
+
 	kolab_mail_info_db_record_free (record);
 
 	if (foldername_del != NULL)
@@ -1032,7 +1032,7 @@ mail_access_sync_with_server (KolabMailAccess *self,
 		if (synced)
 			return TRUE;
 	}
-	
+
 	/* sync folder / object info */
 	ok = kolab_mail_synchronizer_info_sync (priv->synchronizer,
 	                                        opmode,
@@ -1649,7 +1649,6 @@ mail_access_get_strans_func (KolabMailAccess *self,
 /**
  * kolab_mail_access_configure:
  * @self: a #KolabMailAccess instance
- * @backend: an #EBackend
  * @ksettings: an already-configured #KolabSettingsHandler instance
  * @err: a #GError object (or NULL)
  *
@@ -1668,7 +1667,6 @@ mail_access_get_strans_func (KolabMailAccess *self,
  */
 gboolean
 kolab_mail_access_configure (KolabMailAccess *self,
-                             EBackend *backend,
                              KolabSettingsHandler *ksettings,
                              GError **err)
 {
@@ -1681,7 +1679,6 @@ kolab_mail_access_configure (KolabMailAccess *self,
 	GError *tmp_err = NULL;
 
 	g_assert (KOLAB_IS_MAIL_ACCESS (self));
-	g_assert (E_IS_BACKEND (backend));
 	g_assert (KOLAB_IS_SETTINGS_HANDLER (ksettings));
 	g_return_val_if_fail (err == NULL || *err == NULL, FALSE);
 
@@ -1720,7 +1717,6 @@ kolab_mail_access_configure (KolabMailAccess *self,
 		goto exit;
 
 	ok = kolab_mail_imap_client_configure (priv->client,
-	                                       backend,
 	                                       priv->ksettings,
 	                                       priv->mimebuilder,
 	                                       &tmp_err);
@@ -2041,7 +2037,7 @@ kolab_mail_access_password_set_visible (KolabMailAccess *self,
 	KolabMailAccessPrivate *priv = NULL;
 	gchar *passwd = NULL;
 	GError *tmp_err = NULL;
-	
+
 	g_assert (KOLAB_IS_MAIL_ACCESS (self));
 
 	priv = KOLAB_MAIL_ACCESS_PRIVATE (self);
@@ -2061,7 +2057,7 @@ kolab_mail_access_password_set_visible (KolabMailAccess *self,
 		           __func__, __LINE__, tmp_err->message);
 		g_error_free (tmp_err);
 	}
-	
+
 	g_mutex_unlock (&(priv->big_lock));
 }
 
@@ -2224,7 +2220,7 @@ kolab_mail_access_query_changed_uids (KolabMailAccess *self,
 			goto exit;
 
 	sync_skip:
-	
+
 		ok = mail_access_update_handles_from_infodb (self,
 		                                             foldername,
 		                                             sexp,
diff --git a/src/libekolab/kolab-mail-access.h b/src/libekolab/kolab-mail-access.h
index 8c0a62f..174bbe9 100644
--- a/src/libekolab/kolab-mail-access.h
+++ b/src/libekolab/kolab-mail-access.h
@@ -138,7 +138,6 @@ kolab_mail_access_get_type (void) G_GNUC_CONST;
 
 gboolean
 kolab_mail_access_configure (KolabMailAccess *self,
-                             EBackend *backend,
                              KolabSettingsHandler *ksettings,
                              GError **err);
 
diff --git a/src/libekolab/kolab-mail-imap-client.c b/src/libekolab/kolab-mail-imap-client.c
index a97a26e..e2a9af7 100644
--- a/src/libekolab/kolab-mail-imap-client.c
+++ b/src/libekolab/kolab-mail-imap-client.c
@@ -1035,19 +1035,18 @@ mail_imap_client_store (KolabMailImapClient *self,
 
 gboolean
 kolab_mail_imap_client_configure (KolabMailImapClient *self,
-                                  EBackend *backend,
                                   KolabSettingsHandler *ksettings,
                                   KolabMailMimeBuilder *mimebuilder,
                                   GError **err)
 {
 	KolabMailImapClientPrivate *priv = NULL;
+	EBackend *backend = NULL;
 	/* const gchar *tmp_str = NULL; */
 	const gchar *data_dir = NULL;
 	const gchar *cache_dir = NULL;
 	GError *tmp_err = NULL;
 
 	g_assert (KOLAB_IS_MAIL_IMAP_CLIENT (self));
-	g_assert (E_IS_BACKEND (backend));
 	g_assert (KOLAB_IS_SETTINGS_HANDLER (ksettings));
 	g_assert (KOLAB_IS_MAIL_MIME_BUILDER (mimebuilder));
 	g_return_val_if_fail (err == NULL || *err == NULL, FALSE);
@@ -1102,6 +1101,7 @@ kolab_mail_imap_client_configure (KolabMailImapClient *self,
 	}
 
 	/* create session object */
+	backend = kolab_settings_handler_get_e_backend (priv->ksettings);
 	priv->session = camel_kolab_session_new (backend, data_dir, cache_dir);
 
 	/* set to offline state first */
diff --git a/src/libekolab/kolab-mail-imap-client.h b/src/libekolab/kolab-mail-imap-client.h
index 64bd33e..c26b13a 100644
--- a/src/libekolab/kolab-mail-imap-client.h
+++ b/src/libekolab/kolab-mail-imap-client.h
@@ -106,7 +106,6 @@ kolab_mail_imap_client_get_type (void) G_GNUC_CONST;
 
 gboolean
 kolab_mail_imap_client_configure (KolabMailImapClient *self,
-                                  EBackend *backend,
                                   KolabSettingsHandler *ksettings,
                                   KolabMailMimeBuilder *mimebuilder,
                                   GError **err);
diff --git a/src/tests/integration/libekolab/test-kolab-mail-access.c b/src/tests/integration/libekolab/test-kolab-mail-access.c
index be0ea05..f4afd27 100644
--- a/src/tests/integration/libekolab/test-kolab-mail-access.c
+++ b/src/tests/integration/libekolab/test-kolab-mail-access.c
@@ -474,7 +474,6 @@ test_kolab_mail_access (KolabFolderContextID context)
 
 	/* configure mail access subsystem */
 	ok = kolab_mail_access_configure (kmailaccess,
-	                                  backend,
 	                                  ksettings,
 	                                  &tmp_err);
 	if (! ok)



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