[evolution-mapi] Adapt evolution-mapi to support backend-per-process



commit 28d18ab58efb2fc67493883543fe9ac415e34572
Author: Fabiano Fidêncio <fidencio redhat com>
Date:   Thu Jul 10 01:17:23 2014 +0200

    Adapt evolution-mapi to support backend-per-process
    
    https://bugzilla.gnome.org/show_bug.cgi?id=732948

 src/addressbook/e-book-backend-mapi-factory.c |   17 +++++++++++++++++
 src/calendar/e-cal-backend-mapi-factory.c     |   23 +++++++++++++++++++++++
 2 files changed, 40 insertions(+), 0 deletions(-)
---
diff --git a/src/addressbook/e-book-backend-mapi-factory.c b/src/addressbook/e-book-backend-mapi-factory.c
index 46a701f..ce03145 100644
--- a/src/addressbook/e-book-backend-mapi-factory.c
+++ b/src/addressbook/e-book-backend-mapi-factory.c
@@ -39,6 +39,8 @@ typedef EBookBackendFactoryClass EBookBackendMapiContactsFactoryClass;
 typedef EBookBackendFactory EBookBackendMapiGalFactory;
 typedef EBookBackendFactoryClass EBookBackendMapiGalFactoryClass;
 
+static EModule *e_module;
+
 /* Module Entry Points */
 void e_module_load (GTypeModule *type_module);
 void e_module_unload (GTypeModule *type_module);
@@ -60,6 +62,12 @@ G_DEFINE_DYNAMIC_TYPE (
 static void
 e_book_backend_mapi_contacts_factory_class_init (EBookBackendFactoryClass *class)
 {
+       EBackendFactoryClass *backend_factory_class;
+
+       backend_factory_class = E_BACKEND_FACTORY_CLASS (class);
+       backend_factory_class->e_module = e_module;
+       backend_factory_class->share_subprocess = TRUE;
+
        class->factory_name = "mapi";
        class->backend_type = E_TYPE_BOOK_BACKEND_MAPI_CONTACTS;
 }
@@ -77,6 +85,12 @@ e_book_backend_mapi_contacts_factory_init (EBookBackendFactory *factory)
 static void
 e_book_backend_mapi_gal_factory_class_init (EBookBackendFactoryClass *class)
 {
+       EBackendFactoryClass *backend_factory_class;
+
+       backend_factory_class = E_BACKEND_FACTORY_CLASS (class);
+       backend_factory_class->e_module = e_module;
+       backend_factory_class->share_subprocess = TRUE;
+
        class->factory_name = "mapigal";
        class->backend_type = E_TYPE_BOOK_BACKEND_MAPI_GAL;
 }
@@ -97,6 +111,8 @@ e_module_load (GTypeModule *type_module)
        bindtextdomain (GETTEXT_PACKAGE, EXCHANGE_MAPI_LOCALEDIR);
        bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
 
+       e_module = E_MODULE (type_module);
+
        e_source_mapi_folder_type_register (type_module);
 
        e_book_backend_mapi_contacts_factory_register_type (type_module);
@@ -106,5 +122,6 @@ e_module_load (GTypeModule *type_module)
 G_MODULE_EXPORT void
 e_module_unload (GTypeModule *type_module)
 {
+       e_module = NULL;
 }
 
diff --git a/src/calendar/e-cal-backend-mapi-factory.c b/src/calendar/e-cal-backend-mapi-factory.c
index c44a55a..1f13d34 100644
--- a/src/calendar/e-cal-backend-mapi-factory.c
+++ b/src/calendar/e-cal-backend-mapi-factory.c
@@ -43,6 +43,8 @@ typedef ECalBackendFactoryClass ECalBackendMapiJournalFactoryClass;
 typedef ECalBackendFactory ECalBackendMapiTodosFactory;
 typedef ECalBackendFactoryClass ECalBackendMapiTodosFactoryClass;
 
+static EModule *e_module;
+
 /* Module Entry Points */
 void e_module_load (GTypeModule *type_module);
 void e_module_unload (GTypeModule *type_module);
@@ -70,6 +72,12 @@ G_DEFINE_DYNAMIC_TYPE (
 static void
 e_cal_backend_mapi_events_factory_class_init (ECalBackendFactoryClass *class)
 {
+       EBackendFactoryClass *backend_factory_class;
+
+       backend_factory_class = E_BACKEND_FACTORY_CLASS (class);
+       backend_factory_class->e_module = e_module;
+       backend_factory_class->share_subprocess = TRUE;
+
        class->factory_name = FACTORY_NAME;
        class->component_kind = ICAL_VEVENT_COMPONENT;
        class->backend_type = E_TYPE_CAL_BACKEND_MAPI;
@@ -88,6 +96,12 @@ e_cal_backend_mapi_events_factory_init (ECalBackendFactory *factory)
 static void
 e_cal_backend_mapi_journal_factory_class_init (ECalBackendFactoryClass *class)
 {
+       EBackendFactoryClass *backend_factory_class;
+
+       backend_factory_class = E_BACKEND_FACTORY_CLASS (class);
+       backend_factory_class->e_module = e_module;
+       backend_factory_class->share_subprocess = TRUE;
+
        class->factory_name = FACTORY_NAME;
        class->component_kind = ICAL_VJOURNAL_COMPONENT;
        class->backend_type = E_TYPE_CAL_BACKEND_MAPI;
@@ -106,6 +120,12 @@ e_cal_backend_mapi_journal_factory_init (ECalBackendFactory *factory)
 static void
 e_cal_backend_mapi_todos_factory_class_init (ECalBackendFactoryClass *class)
 {
+       EBackendFactoryClass *backend_factory_class;
+
+       backend_factory_class = E_BACKEND_FACTORY_CLASS (class);
+       backend_factory_class->e_module = e_module;
+       backend_factory_class->share_subprocess = TRUE;
+
        class->factory_name = FACTORY_NAME;
        class->component_kind = ICAL_VTODO_COMPONENT;
        class->backend_type = E_TYPE_CAL_BACKEND_MAPI;
@@ -127,6 +147,8 @@ e_module_load (GTypeModule *type_module)
        bindtextdomain (GETTEXT_PACKAGE, EXCHANGE_MAPI_LOCALEDIR);
        bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
 
+       e_module = E_MODULE (type_module);
+
        e_source_mapi_folder_type_register (type_module);
 
        e_cal_backend_mapi_events_factory_register_type (type_module);
@@ -137,5 +159,6 @@ e_module_load (GTypeModule *type_module)
 G_MODULE_EXPORT void
 e_module_unload (GTypeModule *type_module)
 {
+       e_module = NULL;
 }
 


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