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);
+int user_check_gc(User *u, bool drop_not_started);
void user_add_to_gc_queue(User *u);
int user_start(User *u);
int user_stop(User *u);
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);