[next] telepathy-mission-control: Pass TpClientFactory to McdDispatcher
Simon McVittie
smcv at kemper.freedesktop.org
Thu Apr 3 07:28:05 PDT 2014
Module: telepathy-mission-control
Branch: next
Commit: 5fd0d654c8fcb45da6937639c9495b35378028d3
URL: http://cgit.freedesktop.org/telepathy/telepathy-mission-control/commit/?id=5fd0d654c8fcb45da6937639c9495b35378028d3
Author: Simon McVittie <simon.mcvittie at collabora.co.uk>
Date: Tue Apr 1 12:30:50 2014 +0100
Pass TpClientFactory to McdDispatcher
---
src/mcd-dispatcher.c | 33 ++++++++++++++++++++++++++-------
src/mcd-dispatcher.h | 2 +-
src/mcd-master.c | 2 +-
3 files changed, 28 insertions(+), 9 deletions(-)
diff --git a/src/mcd-dispatcher.c b/src/mcd-dispatcher.c
index 58aef9d..a47f47c 100644
--- a/src/mcd-dispatcher.c
+++ b/src/mcd-dispatcher.c
@@ -112,6 +112,7 @@ struct _McdDispatcherPrivate
/* Channel dispatch operations */
GList *operations;
+ TpClientFactory *factory;
TpDBusDaemon *dbus_daemon;
/* hash table containing clients
@@ -145,6 +146,7 @@ enum
{
PROP_0,
PROP_DBUS_DAEMON,
+ PROP_FACTORY,
PROP_MCD_MASTER,
PROP_INTERFACES,
PROP_SUPPORTS_REQUEST_HINTS,
@@ -331,10 +333,14 @@ _mcd_dispatcher_set_property (GObject * obj, guint prop_id,
switch (prop_id)
{
- case PROP_DBUS_DAEMON:
- tp_clear_object (&priv->dbus_daemon);
- priv->dbus_daemon = TP_DBUS_DAEMON (g_value_dup_object (val));
- break;
+ case PROP_FACTORY:
+ g_assert (priv->factory == NULL); /* construct-only */
+ g_assert (priv->dbus_daemon == NULL);
+ priv->factory = TP_CLIENT_FACTORY (g_value_dup_object (val));
+ priv->dbus_daemon = tp_client_factory_get_dbus_daemon (priv->factory);
+ g_object_ref (priv->dbus_daemon);
+ break;
+
case PROP_MCD_MASTER:
master = g_value_get_object (val);
g_object_ref (G_OBJECT (master));
@@ -370,6 +376,10 @@ _mcd_dispatcher_get_property (GObject * obj, guint prop_id,
g_value_set_object (val, priv->dbus_daemon);
break;
+ case PROP_FACTORY:
+ g_value_set_object (val, priv->factory);
+ break;
+
case PROP_MCD_MASTER:
g_value_set_object (val, priv->master);
break;
@@ -740,6 +750,7 @@ _mcd_dispatcher_dispose (GObject * object)
tp_clear_pointer (&priv->connections, g_hash_table_unref);
tp_clear_object (&priv->master);
tp_clear_object (&priv->dbus_daemon);
+ tp_clear_object (&priv->factory);
G_OBJECT_CLASS (mcd_dispatcher_parent_class)->dispose (object);
}
@@ -843,10 +854,17 @@ mcd_dispatcher_class_init (McdDispatcherClass * klass)
/* Properties */
g_object_class_install_property
+ (object_class, PROP_FACTORY,
+ g_param_spec_object ("factory", "Factory", "Client factory",
+ TP_TYPE_CLIENT_FACTORY,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
+ g_object_class_install_property
(object_class, PROP_DBUS_DAEMON,
g_param_spec_object ("dbus-daemon", "DBus daemon", "DBus daemon",
TP_TYPE_DBUS_DAEMON,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ G_PARAM_READABLE));
+
g_object_class_install_property
(object_class, PROP_MCD_MASTER,
g_param_spec_object ("mcd-master", "McdMaster", "McdMaster",
@@ -890,11 +908,12 @@ mcd_dispatcher_init (McdDispatcher * dispatcher)
}
McdDispatcher *
-mcd_dispatcher_new (TpDBusDaemon *dbus_daemon, McdMaster *master)
+mcd_dispatcher_new (TpClientFactory *factory,
+ McdMaster *master)
{
McdDispatcher *obj;
obj = MCD_DISPATCHER (g_object_new (MCD_TYPE_DISPATCHER,
- "dbus-daemon", dbus_daemon,
+ "factory", factory,
"mcd-master", master,
NULL));
return obj;
diff --git a/src/mcd-dispatcher.h b/src/mcd-dispatcher.h
index 461254d..fcb33c9 100644
--- a/src/mcd-dispatcher.h
+++ b/src/mcd-dispatcher.h
@@ -62,7 +62,7 @@ struct _McdDispatcherClass
GType mcd_dispatcher_get_type (void);
-McdDispatcher *mcd_dispatcher_new (TpDBusDaemon *dbus_daemon,
+McdDispatcher *mcd_dispatcher_new (TpClientFactory *factory,
McdMaster * master);
G_END_DECLS
diff --git a/src/mcd-master.c b/src/mcd-master.c
index 822dc30..f3d4bd2 100644
--- a/src/mcd-master.c
+++ b/src/mcd-master.c
@@ -210,7 +210,7 @@ mcd_master_constructor (GType type, guint n_params,
priv->account_manager = mcd_account_manager_new (priv->client_factory);
- priv->dispatcher = mcd_dispatcher_new (priv->dbus_daemon, master);
+ priv->dispatcher = mcd_dispatcher_new (priv->client_factory, master);
g_assert (MCD_IS_DISPATCHER (priv->dispatcher));
_mcd_account_manager_setup (priv->account_manager);
More information about the telepathy-commits
mailing list