[evolution-data-server] Remove EDataFactory's "online" property.



commit 5410092f65d6d35c2c0f48295ab44543ea0a2a4f
Author: Matthew Barnes <mbarnes redhat com>
Date:   Sat Apr 14 13:27:26 2012 -0400

    Remove EDataFactory's "online" property.
    
    Network monitoring no longer needs to be centralized in EDataFactory
    since we're using GNetworkMonitor, so remove EDataFactory's "online"
    property and public get/set functions.
    
    Instead, let each EBackend instance manage its own "online" state.
    Eventually we'll transition to more sophisticated network monitoring.
    
    This is an API break but not the first since 3.5.1 development began.
    libebackend's shared object name has already been bumped.

 .../reference/libebackend/libebackend-sections.txt |    2 -
 libebackend/e-backend.c                            |   20 ++++
 libebackend/e-data-factory.c                       |   96 --------------------
 libebackend/e-data-factory.h                       |    3 -
 4 files changed, 20 insertions(+), 101 deletions(-)
---
diff --git a/docs/reference/libebackend/libebackend-sections.txt b/docs/reference/libebackend/libebackend-sections.txt
index 01043b3..7f6598b 100644
--- a/docs/reference/libebackend/libebackend-sections.txt
+++ b/docs/reference/libebackend/libebackend-sections.txt
@@ -43,8 +43,6 @@ e_backend_factory_get_type
 <TITLE>EDataFactory</TITLE>
 EDataFactory
 e_data_factory_get_backend
-e_data_factory_get_online
-e_data_factory_set_online
 <SUBSECTION Standard>
 E_DATA_FACTORY
 E_IS_DATA_FACTORY
diff --git a/libebackend/e-backend.c b/libebackend/e-backend.c
index 346f078..b28ce39 100644
--- a/libebackend/e-backend.c
+++ b/libebackend/e-backend.c
@@ -34,6 +34,7 @@
 #include "e-backend.h"
 
 #include <config.h>
+#include <gio/gio.h>
 
 #define E_BACKEND_GET_PRIVATE(obj) \
 	(G_TYPE_INSTANCE_GET_PRIVATE \
@@ -132,6 +133,24 @@ backend_dispose (GObject *object)
 }
 
 static void
+backend_constructed (GObject *object)
+{
+	GNetworkMonitor *monitor;
+
+	/* Chain up to parent's constructed() method. */
+	G_OBJECT_CLASS (e_backend_parent_class)->constructed (object);
+
+	/* Synchronize network monitoring. */
+
+	monitor = g_network_monitor_get_default ();
+
+	g_object_bind_property (
+		monitor, "network-available",
+		object, "online",
+		G_BINDING_SYNC_CREATE);
+}
+
+static void
 e_backend_class_init (EBackendClass *class)
 {
 	GObjectClass *object_class;
@@ -142,6 +161,7 @@ e_backend_class_init (EBackendClass *class)
 	object_class->set_property = backend_set_property;
 	object_class->get_property = backend_get_property;
 	object_class->dispose = backend_dispose;
+	object_class->constructed = backend_constructed;
 
 	g_object_class_install_property (
 		object_class,
diff --git a/libebackend/e-data-factory.c b/libebackend/e-data-factory.c
index 207cbeb..4dea1cb 100644
--- a/libebackend/e-data-factory.c
+++ b/libebackend/e-data-factory.c
@@ -45,13 +45,6 @@ struct _EDataFactoryPrivate {
 
 	/* Hash Key -> EBackendFactory */
 	GHashTable *backend_factories;
-
-	gboolean online;
-};
-
-enum {
-	PROP_0,
-	PROP_ONLINE
 };
 
 /* Forward Declarations */
@@ -79,40 +72,6 @@ data_factory_last_client_gone_cb (EBackend *backend,
 }
 
 static void
-data_factory_set_property (GObject *object,
-                           guint property_id,
-                           const GValue *value,
-                           GParamSpec *pspec)
-{
-	switch (property_id) {
-		case PROP_ONLINE:
-			e_data_factory_set_online (
-				E_DATA_FACTORY (object),
-				g_value_get_boolean (value));
-			return;
-	}
-
-	G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-}
-
-static void
-data_factory_get_property (GObject *object,
-                           guint property_id,
-                           GValue *value,
-                           GParamSpec *pspec)
-{
-	switch (property_id) {
-		case PROP_ONLINE:
-			g_value_set_boolean (
-				value, e_data_factory_get_online (
-				E_DATA_FACTORY (object)));
-			return;
-	}
-
-	G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-}
-
-static void
 data_factory_dispose (GObject *object)
 {
 	EDataFactoryPrivate *priv;
@@ -148,20 +107,10 @@ data_factory_initable_init (GInitable *initable,
                             GError **error)
 {
 	EDataFactoryPrivate *priv;
-	GNetworkMonitor *monitor;
 	GList *list, *link;
 
 	priv = E_DATA_FACTORY_GET_PRIVATE (initable);
 
-	/* Synchronize network monitoring. */
-
-	monitor = g_network_monitor_get_default ();
-
-	g_object_bind_property (
-		monitor, "network-available",
-		initable, "online",
-		G_BINDING_SYNC_CREATE);
-
 	/* Load all module libraries containing extensions. */
 
 	e_dbus_server_load_modules (E_DBUS_SERVER (initable));
@@ -220,24 +169,11 @@ e_data_factory_class_init (EDataFactoryClass *class)
 	g_type_class_add_private (class, sizeof (EDataFactoryPrivate));
 
 	object_class = G_OBJECT_CLASS (class);
-	object_class->set_property = data_factory_set_property;
-	object_class->get_property = data_factory_get_property;
 	object_class->dispose = data_factory_dispose;
 	object_class->finalize = data_factory_finalize;
 
 	dbus_server_class = E_DBUS_SERVER_CLASS (class);
 	dbus_server_class->quit_server = data_factory_quit_server;
-
-	g_object_class_install_property (
-		object_class,
-		PROP_ONLINE,
-		g_param_spec_boolean (
-			"online",
-			"Online",
-			"Whether the server is online",
-			TRUE,
-			G_PARAM_READWRITE |
-			G_PARAM_STATIC_STRINGS));
 }
 
 static void
@@ -303,11 +239,6 @@ e_data_factory_get_backend (EDataFactory *factory,
 	if (backend == NULL)
 		goto exit;
 
-	g_object_bind_property (
-		factory, "online",
-		backend, "online",
-		G_BINDING_SYNC_CREATE);
-
 	g_signal_connect (
 		backend, "last-client-gone",
 		G_CALLBACK (data_factory_last_client_gone_cb), factory);
@@ -322,30 +253,3 @@ exit:
 	return backend;
 }
 
-gboolean
-e_data_factory_get_online (EDataFactory *factory)
-{
-	g_return_val_if_fail (E_IS_DATA_FACTORY (factory), FALSE);
-
-	return factory->priv->online;
-}
-
-void
-e_data_factory_set_online (EDataFactory *factory,
-                           gboolean online)
-{
-	g_return_if_fail (E_IS_DATA_FACTORY (factory));
-
-	/* Avoid unnecessary "notify" signals. */
-	if (online == factory->priv->online)
-		return;
-
-	factory->priv->online = online;
-
-	g_object_notify (G_OBJECT (factory), "online");
-
-	g_print (
-		"%s is now %s.\n",
-		G_OBJECT_TYPE_NAME (factory),
-		online ? "online" : "offline");
-}
diff --git a/libebackend/e-data-factory.h b/libebackend/e-data-factory.h
index 0b57fd3..0ed5682 100644
--- a/libebackend/e-data-factory.h
+++ b/libebackend/e-data-factory.h
@@ -70,9 +70,6 @@ GType		e_data_factory_get_type		(void) G_GNUC_CONST;
 EBackend *	e_data_factory_get_backend	(EDataFactory *factory,
 						 const gchar *hash_key,
 						 ESource *source);
-gboolean	e_data_factory_get_online	(EDataFactory *factory);
-void		e_data_factory_set_online	(EDataFactory *factory,
-						 gboolean online);
 
 G_END_DECLS
 



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