diff options
author | Pavel Šimerda <psimerda@redhat.com> | 2015-01-02 22:41:00 +0100 |
---|---|---|
committer | Pavel Šimerda <psimerda@redhat.com> | 2015-01-05 18:39:17 +0100 |
commit | 4a9eaa190fbfd82e4f285e4fde0c0940a0a50a1c (patch) | |
tree | 653b325704f5a2395d6e4030339402b86dd87496 /src | |
parent | d42f2c11b79cf46701d046a418d39d03f3809582 (diff) | |
download | NetworkManager-4a9eaa190fbfd82e4f285e4fde0c0940a0a50a1c.tar.gz |
session: switch code to nm_session_monitor_{,dis}connect()
Acked-By: Thomas Haller <thaller@redhat.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/nm-session-monitor.c | 30 | ||||
-rw-r--r-- | src/nm-session-monitor.h | 6 | ||||
-rw-r--r-- | src/settings/nm-settings-connection.c | 9 |
3 files changed, 37 insertions, 8 deletions
diff --git a/src/nm-session-monitor.c b/src/nm-session-monitor.c index c9ee3426f3..6ba0bb92f8 100644 --- a/src/nm-session-monitor.c +++ b/src/nm-session-monitor.c @@ -23,6 +23,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. * @out_user: Return location for user name. diff --git a/src/nm-session-monitor.h b/src/nm-session-monitor.h index 818941ef79..9a38dc0eee 100644 --- a/src/nm-session-monitor.h +++ b/src/nm-session-monitor.h @@ -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); diff --git a/src/settings/nm-settings-connection.c b/src/settings/nm-settings-connection.c index f03ba629a3..25459c2077 100644 --- a/src/settings/nm-settings-connection.c +++ b/src/settings/nm-settings-connection.c @@ -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); |