[evolution-data-server] EDataFactory: Move reload policy to subclasses.



commit 785ae185f55e812f3d0a7a0b12842e0118af534f
Author: Matthew Barnes <mbarnes redhat com>
Date:   Mon Apr 16 17:43:47 2012 -0400

    EDataFactory: Move reload policy to subclasses.
    
    The upcoming D-Bus service for data sources will be derived from
    EDataFactoryClass, and it *does* support E_DBUS_SERVER_EXIT_RELOAD.

 addressbook/libedata-book/e-data-book-factory.c |   17 +++++++++++++++++
 calendar/libedata-cal/e-data-cal-factory.c      |   17 +++++++++++++++++
 libebackend/e-data-factory.c                    |   20 --------------------
 3 files changed, 34 insertions(+), 20 deletions(-)
---
diff --git a/addressbook/libedata-book/e-data-book-factory.c b/addressbook/libedata-book/e-data-book-factory.c
index 0f6ef70..4a1f082 100644
--- a/addressbook/libedata-book/e-data-book-factory.c
+++ b/addressbook/libedata-book/e-data-book-factory.c
@@ -424,6 +424,22 @@ data_book_factory_bus_name_lost (EDBusServer *server,
 		bus_name_lost (server, connection);
 }
 
+static void
+data_book_factory_quit_server (EDBusServer *server,
+                               EDBusServerExitCode exit_code)
+{
+	/* This factory does not support reloading, so stop the signal
+	 * emission and return without chaining up to prevent quitting. */
+	if (exit_code == E_DBUS_SERVER_EXIT_RELOAD) {
+		g_signal_stop_emission_by_name (server, "quit-server");
+		return;
+	}
+
+	/* Chain up to parent's quit_server() method. */
+	E_DBUS_SERVER_CLASS (e_data_book_factory_parent_class)->
+		quit_server (server, exit_code);
+}
+
 static gboolean
 data_book_factory_initable_init (GInitable *initable,
                                  GCancellable *cancellable,
@@ -452,6 +468,7 @@ e_data_book_factory_class_init (EDataBookFactoryClass *class)
 	dbus_server_class->module_directory = BACKENDDIR;
 	dbus_server_class->bus_acquired = data_book_factory_bus_acquired;
 	dbus_server_class->bus_name_lost = data_book_factory_bus_name_lost;
+	dbus_server_class->quit_server = data_book_factory_quit_server;
 
 	data_factory_class = E_DATA_FACTORY_CLASS (class);
 	data_factory_class->backend_factory_type = E_TYPE_BOOK_BACKEND_FACTORY;
diff --git a/calendar/libedata-cal/e-data-cal-factory.c b/calendar/libedata-cal/e-data-cal-factory.c
index 9b1970f..d16d7c7 100644
--- a/calendar/libedata-cal/e-data-cal-factory.c
+++ b/calendar/libedata-cal/e-data-cal-factory.c
@@ -404,6 +404,22 @@ data_cal_factory_bus_name_lost (EDBusServer *server,
 		bus_name_lost (server, connection);
 }
 
+static void
+data_cal_factory_quit_server (EDBusServer *server,
+                              EDBusServerExitCode exit_code)
+{
+	/* This factory does not support reloading, so stop the signal
+	 * emission and return without chaining up to prevent quitting. */
+	if (exit_code == E_DBUS_SERVER_EXIT_RELOAD) {
+		g_signal_stop_emission_by_name (server, "quit-server");
+		return;
+	}
+
+	/* Chain up to parent's quit_server() method. */
+	E_DBUS_SERVER_CLASS (e_data_cal_factory_parent_class)->
+		quit_server (server, exit_code);
+}
+
 static gboolean
 data_cal_factory_initable_init (GInitable *initable,
                                 GCancellable *cancellable,
@@ -432,6 +448,7 @@ e_data_cal_factory_class_init (EDataCalFactoryClass *class)
 	dbus_server_class->module_directory = BACKENDDIR;
 	dbus_server_class->bus_acquired = data_cal_factory_bus_acquired;
 	dbus_server_class->bus_name_lost = data_cal_factory_bus_name_lost;
+	dbus_server_class->quit_server = data_cal_factory_quit_server;
 
 	data_factory_class = E_DATA_FACTORY_CLASS (class);
 	data_factory_class->backend_factory_type = E_TYPE_CAL_BACKEND_FACTORY;
diff --git a/libebackend/e-data-factory.c b/libebackend/e-data-factory.c
index 51b0310..3f1426d 100644
--- a/libebackend/e-data-factory.c
+++ b/libebackend/e-data-factory.c
@@ -157,26 +157,9 @@ data_factory_constructed (GObject *object)
 }
 
 static void
-data_factory_quit_server (EDBusServer *server,
-                          EDBusServerExitCode exit_code)
-{
-	/* EDataFactory does not support reloading, so stop the signal
-	 * emission and return without chaining up to prevent quitting. */
-	if (exit_code == E_DBUS_SERVER_EXIT_RELOAD) {
-		g_signal_stop_emission_by_name (server, "quit-server");
-		return;
-	}
-
-	/* Chain up to parent's quit_server() method. */
-	E_DBUS_SERVER_CLASS (e_data_factory_parent_class)->
-		quit_server (server, exit_code);
-}
-
-static void
 e_data_factory_class_init (EDataFactoryClass *class)
 {
 	GObjectClass *object_class;
-	EDBusServerClass *dbus_server_class;
 
 	g_type_class_add_private (class, sizeof (EDataFactoryPrivate));
 
@@ -185,9 +168,6 @@ e_data_factory_class_init (EDataFactoryClass *class)
 	object_class->finalize = data_factory_finalize;
 	object_class->constructed = data_factory_constructed;
 
-	dbus_server_class = E_DBUS_SERVER_CLASS (class);
-	dbus_server_class->quit_server = data_factory_quit_server;
-
 	class->backend_factory_type = E_TYPE_BACKEND_FACTORY;
 }
 



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