Make source and source-output server side only

Move source and source-output to the server side again.
Make the daemon track objects per sender so that we can remove them
when the sender disappears.
This commit is contained in:
Wim Taymans 2015-05-05 18:20:32 +02:00
parent 1b89f2f8ad
commit d9444ab360
17 changed files with 139 additions and 205 deletions

View file

@ -191,6 +191,14 @@ add_interface (PvSubscribe *subscribe,
data);
}
static void
remove_interface (PvSubscribe *subscribe,
const gchar *object_path,
const gchar *interface_name)
{
g_print ("remove interface %s\n", interface_name);
}
static void
add_ifaces_and_properties (PvSubscribe *subscribe,
const gchar *object_path,
@ -212,6 +220,18 @@ add_ifaces_and_properties (PvSubscribe *subscribe,
}
}
static void
remove_ifaces (PvSubscribe *subscribe,
const gchar *object_path,
const gchar **ifaces)
{
while (*ifaces) {
remove_interface (subscribe, object_path, *ifaces);
ifaces++;
}
}
static void
on_manager_proxy_signal (GDBusProxy *proxy,
const gchar *sender_name,
@ -242,6 +262,7 @@ on_manager_proxy_signal (GDBusProxy *proxy,
&object_path,
&ifaces);
remove_ifaces (subscribe, object_path, ifaces);
g_free (ifaces);
}