diff options
author | William Jon McCann <mccann@jhu.edu> | 2008-01-23 11:04:23 -0500 |
---|---|---|
committer | William Jon McCann <mccann@jhu.edu> | 2008-01-23 11:04:23 -0500 |
commit | 6ad7516f69f08c9c5e30332f95b50c0dd0cd1cb1 (patch) | |
tree | cd62f5c26ff39e03d038caec178ff8bda19e15e3 /src | |
parent | 4b866a4af70fb19e8b0652637815ab24ad630065 (diff) |
add GetSessions method to Manager interface
Diffstat (limited to 'src')
-rw-r--r-- | src/ck-manager.c | 25 | ||||
-rw-r--r-- | src/ck-manager.h | 3 | ||||
-rw-r--r-- | src/ck-manager.xml | 3 |
3 files changed, 31 insertions, 0 deletions
diff --git a/src/ck-manager.c b/src/ck-manager.c index 9771d30..156ea93 100644 --- a/src/ck-manager.c +++ b/src/ck-manager.c @@ -2412,6 +2412,31 @@ ck_manager_get_seats (CkManager *manager, } static void +listify_session_ids (char *id, + CkSession *session, + GPtrArray **array) +{ + g_ptr_array_add (*array, g_strdup (id)); +} + +gboolean +ck_manager_get_sessions (CkManager *manager, + GPtrArray **sessions, + GError **error) +{ + g_return_val_if_fail (CK_IS_MANAGER (manager), FALSE); + + if (sessions == NULL) { + return FALSE; + } + + *sessions = g_ptr_array_new (); + g_hash_table_foreach (manager->priv->sessions, (GHFunc)listify_session_ids, sessions); + + return TRUE; +} + +static void add_seat_for_file (CkManager *manager, const char *filename) { diff --git a/src/ck-manager.h b/src/ck-manager.h index 55cb5cb..45910b7 100644 --- a/src/ck-manager.h +++ b/src/ck-manager.h @@ -85,6 +85,9 @@ gboolean ck_manager_restart (CkManager /* Authoritative properties */ gboolean ck_manager_open_session (CkManager *manager, DBusGMethodInvocation *context); +gboolean ck_manager_get_sessions (CkManager *manager, + GPtrArray **sessions, + GError **error); gboolean ck_manager_get_seats (CkManager *manager, GPtrArray **seats, GError **error); diff --git a/src/ck-manager.xml b/src/ck-manager.xml index 031d8a1..0ca74fa 100644 --- a/src/ck-manager.xml +++ b/src/ck-manager.xml @@ -24,6 +24,9 @@ <method name="GetSeats"> <arg name="seats" direction="out" type="ao"/> </method> + <method name="GetSessions"> + <arg name="sessions" direction="out" type="ao"/> + </method> <method name="GetSessionForCookie"> <annotation name="org.freedesktop.DBus.GLib.Async" value=""/> <arg name="cookie" direction="in" type="s"/> |