summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2014-03-26 18:58:17 +0000
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2014-03-27 15:40:40 +0000
commitb7914a7e7fa1d6fe6695d7fc256b6caca2d23604 (patch)
tree98b78fa24d47c90c330ae300a65df111c4769abb
parent522827c3ae546be8f16f3078a5279c51bf2f8453 (diff)
McdClient: replace tp_dbus_daemon_watch_name_owner with g_bus_watch_name_on_connection
-rw-r--r--src/mcd-client.c42
1 files changed, 29 insertions, 13 deletions
diff --git a/src/mcd-client.c b/src/mcd-client.c
index 6a1522e7..1cc006fa 100644
--- a/src/mcd-client.c
+++ b/src/mcd-client.c
@@ -64,6 +64,7 @@ struct _McdClientProxyPrivate
GStrv capability_tokens;
gchar *unique_name;
+ guint name_owner_watch;
guint ready_lock;
gboolean introspect_started;
gboolean ready;
@@ -945,12 +946,9 @@ mcd_client_proxy_introspect (gpointer data)
}
static void
-mcd_client_proxy_unique_name_cb (TpDBusDaemon *dbus_daemon,
- const gchar *well_known_name G_GNUC_UNUSED,
- const gchar *unique_name,
- gpointer user_data)
+mcd_client_proxy_unique_name_cb (McdClientProxy *self,
+ const gchar *unique_name)
{
- McdClientProxy *self = MCD_CLIENT_PROXY (user_data);
gboolean should_recover = FALSE;
g_object_ref (self);
@@ -977,6 +975,24 @@ mcd_client_proxy_unique_name_cb (TpDBusDaemon *dbus_daemon,
}
static void
+mcd_client_proxy_unique_name_found_cb (GDBusConnection *conn G_GNUC_UNUSED,
+ const gchar *well_known_name G_GNUC_UNUSED,
+ const gchar *unique_name,
+ gpointer user_data)
+{
+ mcd_client_proxy_unique_name_cb (MCD_CLIENT_PROXY (user_data),
+ unique_name);
+}
+
+static void
+mcd_client_proxy_unique_name_lost_cb (GDBusConnection *conn G_GNUC_UNUSED,
+ const gchar *well_known_name G_GNUC_UNUSED,
+ gpointer user_data)
+{
+ mcd_client_proxy_unique_name_cb (MCD_CLIENT_PROXY (user_data), "");
+}
+
+static void
mcd_client_proxy_dispose (GObject *object)
{
McdClientProxy *self = MCD_CLIENT_PROXY (object);
@@ -988,10 +1004,8 @@ mcd_client_proxy_dispose (GObject *object)
self->priv->disposed = TRUE;
- tp_dbus_daemon_cancel_name_owner_watch (tp_proxy_get_dbus_daemon (self),
- tp_proxy_get_bus_name (self),
- mcd_client_proxy_unique_name_cb,
- self);
+ g_bus_unwatch_name (self->priv->name_owner_watch);
+ self->priv->name_owner_watch = 0;
tp_clear_pointer (&self->priv->capability_tokens, g_strfreev);
@@ -1039,10 +1053,12 @@ mcd_client_proxy_constructed (GObject *object)
DEBUG ("%s", bus_name);
- tp_dbus_daemon_watch_name_owner (tp_proxy_get_dbus_daemon (self),
- bus_name,
- mcd_client_proxy_unique_name_cb,
- self, NULL);
+ self->priv->name_owner_watch = g_bus_watch_name_on_connection (
+ tp_proxy_get_dbus_connection (self),
+ bus_name, G_BUS_NAME_WATCHER_FLAGS_NONE,
+ mcd_client_proxy_unique_name_found_cb,
+ mcd_client_proxy_unique_name_lost_cb,
+ self, NULL);
if (self->priv->unique_name != NULL)
{