summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorWilliam Jon McCann <mccann@jhu.edu>2008-01-23 11:04:23 -0500
committerWilliam Jon McCann <mccann@jhu.edu>2008-01-23 11:04:23 -0500
commit6ad7516f69f08c9c5e30332f95b50c0dd0cd1cb1 (patch)
treecd62f5c26ff39e03d038caec178ff8bda19e15e3 /src
parent4b866a4af70fb19e8b0652637815ab24ad630065 (diff)
add GetSessions method to Manager interface
Diffstat (limited to 'src')
-rw-r--r--src/ck-manager.c25
-rw-r--r--src/ck-manager.h3
-rw-r--r--src/ck-manager.xml3
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"/>