dual_timestamp timestamp;
+ bool in_gc_queue:1;
+ bool started:1;
+
LIST_HEAD(Session, sessions);
+ LIST_FIELDS(User, gc_queue);
};
User* user_new(Manager *m, uid_t uid, gid_t gid, const char *name);
void user_free(User *u);
+int user_check_gc(User *u);
+void user_add_to_gc_queue(User *u);
int user_start(User *u);
int user_stop(User *u);
-int user_check_gc(User *u);
UserState user_get_state(User *u);
+int user_get_idle_hint(User *u, dual_timestamp *t);
int user_save(User *u);
int user_load(User *u);
+char *user_bus_path(User *s);
+
+extern const DBusObjectPathVTable bus_user_vtable;
+
+int user_send_signal(User *u, bool new_user);
+int user_send_changed(User *u, const char *properties);
+
const char* user_state_to_string(UserState s);
UserState user_state_from_string(const char *s);