summaryrefslogtreecommitdiff
path: root/src/login/logind-session.h
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2012-06-21 16:14:53 +0200
committerLennart Poettering <lennart@poettering.net>2012-06-21 16:14:53 +0200
commit0604381b9dbef4cc498b5a77311e1da99c1430b8 (patch)
treeec766081c20d07ddd17c825d42569fbddefdcbe8 /src/login/logind-session.h
parentf1a8e221ecacea23883df57951e291a910463948 (diff)
logind: introduce a state for session, being one of online, active, closing
online = logged in active = logged in and session is in the fg closing = nominally logged out but some left-over processes still around Related to: https://bugzilla.gnome.org/show_bug.cgi?id=677556
Diffstat (limited to 'src/login/logind-session.h')
-rw-r--r--src/login/logind-session.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/login/logind-session.h b/src/login/logind-session.h
index 1afbdcc410..b255dc7cde 100644
--- a/src/login/logind-session.h
+++ b/src/login/logind-session.h
@@ -30,6 +30,14 @@ typedef struct Session Session;
#include "logind-seat.h"
#include "logind-user.h"
+typedef enum SessionState {
+ SESSION_ONLINE, /* Logged in */
+ SESSION_ACTIVE, /* Logged in and in the fg */
+ SESSION_CLOSING, /* Logged out, but processes still remain */
+ _SESSION_STATE_MAX,
+ _SESSION_STATE_INVALID = -1
+} SessionState;
+
typedef enum SessionType {
SESSION_UNSPECIFIED,
SESSION_TTY,
@@ -118,12 +126,17 @@ int session_kill(Session *s, KillWho who, int signo);
char *session_bus_path(Session *s);
+SessionState session_get_state(Session *u);
+
extern const DBusObjectPathVTable bus_session_vtable;
int session_send_signal(Session *s, bool new_session);
int session_send_changed(Session *s, const char *properties);
int session_send_lock(Session *s, bool lock);
+const char* session_state_to_string(SessionState t);
+SessionState session_state_from_string(const char *s);
+
const char* session_type_to_string(SessionType t);
SessionType session_type_from_string(const char *s);