core: port nm-sleep-monitor-upower to gdbus

This commit is contained in:
Dan Winship 2015-03-27 09:46:00 -04:00
parent 2e8acfa9d8
commit da7d3ed5e1

View file

@ -22,10 +22,9 @@
#include <errno.h>
#include <string.h>
#include <sys/stat.h>
#include <dbus/dbus-glib.h>
#include <gio/gio.h>
#include "nm-logging.h"
#include "nm-dbus-manager.h"
#include "nm-core-internal.h"
#include "nm-sleep-monitor.h"
@ -34,7 +33,7 @@
struct _NMSleepMonitor {
GObject parent_instance;
DBusGProxy *upower_proxy;
GDBusProxy *upower_proxy;
};
struct _NMSleepMonitorClass {
@ -57,14 +56,14 @@ G_DEFINE_TYPE (NMSleepMonitor, nm_sleep_monitor, G_TYPE_OBJECT);
/********************************************************************/
static void
upower_sleeping_cb (DBusGProxy *proxy, gpointer user_data)
upower_sleeping_cb (GDBusProxy *proxy, gpointer user_data)
{
nm_log_dbg (LOGD_SUSPEND, "Received UPower sleeping signal");
g_signal_emit (user_data, signals[SLEEPING], 0);
}
static void
upower_resuming_cb (DBusGProxy *proxy, gpointer user_data)
upower_resuming_cb (GDBusProxy *proxy, gpointer user_data)
{
nm_log_dbg (LOGD_SUSPEND, "Received UPower resuming signal");
g_signal_emit (user_data, signals[RESUMING], 0);
@ -73,25 +72,25 @@ upower_resuming_cb (DBusGProxy *proxy, gpointer user_data)
static void
nm_sleep_monitor_init (NMSleepMonitor *self)
{
DBusGConnection *bus;
GError *error = NULL;
bus = nm_dbus_manager_get_connection (nm_dbus_manager_get ());
self->upower_proxy = dbus_g_proxy_new_for_name (bus,
UPOWER_DBUS_SERVICE,
"/org/freedesktop/UPower",
"org.freedesktop.UPower");
self->upower_proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START |
G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES,
NULL,
UPOWER_DBUS_SERVICE,
"/org/freedesktop/UPower",
"org.freedesktop.UPower",
NULL, &error);
if (self->upower_proxy) {
dbus_g_proxy_add_signal (self->upower_proxy, "Sleeping", G_TYPE_INVALID);
dbus_g_proxy_connect_signal (self->upower_proxy, "Sleeping",
G_CALLBACK (upower_sleeping_cb),
self, NULL);
dbus_g_proxy_add_signal (self->upower_proxy, "Resuming", G_TYPE_INVALID);
dbus_g_proxy_connect_signal (self->upower_proxy, "Resuming",
G_CALLBACK (upower_resuming_cb),
self, NULL);
} else
nm_log_warn (LOGD_SUSPEND, "could not initialize UPower D-Bus proxy");
_nm_dbus_signal_connect (self->upower_proxy, "Sleeping", NULL,
G_CALLBACK (upower_sleeping_cb), self);
_nm_dbus_signal_connect (self->upower_proxy, "Resuming", NULL,
G_CALLBACK (upower_resuming_cb), self);
} else {
nm_log_warn (LOGD_SUSPEND, "could not initialize UPower D-Bus proxy: %s", error->message);
g_error_free (error);
}
}
static void
@ -99,11 +98,9 @@ finalize (GObject *object)
{
NMSleepMonitor *self = NM_SLEEP_MONITOR (object);
if (self->upower_proxy)
g_object_unref (self->upower_proxy);
g_clear_object (&self->upower_proxy);
if (G_OBJECT_CLASS (nm_sleep_monitor_parent_class)->finalize != NULL)
G_OBJECT_CLASS (nm_sleep_monitor_parent_class)->finalize (object);
G_OBJECT_CLASS (nm_sleep_monitor_parent_class)->finalize (object);
}
static void