session: switch code to nm_session_monitor_{,dis}connect()

Acked-By: Thomas Haller <thaller@redhat.com>
This commit is contained in:
Pavel Šimerda
2015-01-02 22:41:00 +01:00
parent d42f2c11b7
commit 4a9eaa190f
3 changed files with 37 additions and 8 deletions

View File

@@ -22,6 +22,36 @@
#include "nm-session-monitor.h"
/**
* nm_session_monitor_connect:
* @callback: The callback.
* @user_data: User data for the callback.
*
* Connect a callback to the session monitor.
*
* Returns: Handler ID to be used with nm_session_monitor_disconnect().
*/
gulong
nm_session_monitor_connect (NMSessionCallback callback, gpointer user_data)
{
return g_signal_connect (nm_session_monitor_get (),
NM_SESSION_MONITOR_CHANGED,
G_CALLBACK (callback),
user_data);
}
/**
* nm_session_monitor_disconnect:
* @handler_id: Handler ID returned by nm_session_monitor-connect().
*
* Disconnect callback from the session handler.
*/
void
nm_session_monitor_disconnect (gulong handler_id)
{
g_signal_handler_disconnect (nm_session_monitor_get (), handler_id);
}
/**
* nm_session_monitor_uid_to_user:
* @uid: UID.

View File

@@ -38,9 +38,14 @@ G_BEGIN_DECLS
typedef struct _NMSessionMonitorClass NMSessionMonitorClass;
typedef void (*NMSessionCallback) (NMSessionMonitor *monitor, gpointer user_data);
GType nm_session_monitor_get_type (void) G_GNUC_CONST;
NMSessionMonitor *nm_session_monitor_get (void);
gulong nm_session_monitor_connect (NMSessionCallback callback, gpointer user_data);
void nm_session_monitor_disconnect (gulong handler_id);
gboolean nm_session_monitor_uid_to_user (uid_t uid, const char **out_user);
gboolean nm_session_monitor_user_to_uid (const char *user, uid_t *out_uid);
gboolean nm_session_monitor_session_exists (uid_t uid, gboolean active);
@@ -54,7 +59,6 @@ gboolean nm_session_monitor_uid_has_session (NMSessionMonitor *monitor
uid_t uid,
const char **out_user,
GError **error);
gboolean nm_session_monitor_user_active (NMSessionMonitor *monitor,
const char *username,
GError **error);

View File

@@ -95,7 +95,6 @@ static guint signals[LAST_SIGNAL] = { 0 };
typedef struct {
NMAgentManager *agent_mgr;
NMSessionMonitor *session_monitor;
guint session_changed_id;
NMSettingsConnectionFlags flags;
@@ -2177,11 +2176,7 @@ nm_settings_connection_init (NMSettingsConnection *self)
priv->visible = FALSE;
priv->session_monitor = nm_session_monitor_get ();
priv->session_changed_id = g_signal_connect (priv->session_monitor,
NM_SESSION_MONITOR_CHANGED,
G_CALLBACK (session_changed_cb),
self);
priv->session_changed_id = nm_session_monitor_connect (session_changed_cb, self);
priv->agent_mgr = nm_agent_manager_get ();
@@ -2232,7 +2227,7 @@ dispose (GObject *object)
set_visible (self, FALSE);
if (priv->session_changed_id) {
g_signal_handler_disconnect (priv->session_monitor, priv->session_changed_id);
nm_session_monitor_disconnect (priv->session_changed_id);
priv->session_changed_id = 0;
}
g_clear_object (&priv->agent_mgr);