/* TODO:
*
* recreate VTs when disallocated
- * udev rules
- * PAM rewrite
* spawn user systemd
- * dbus API
- * don't allow everybody to take logind name
+ * direct client API
+ * D-Bus method: AttachDevice(seat, device);
+ * D-Bus method: SetLinger(user, bool b);
*
* non-local X11 server
* reboot/shutdown halt management
int bus_fd;
int epoll_fd;
- int n_autovts;
+ unsigned n_autovts;
Seat *vtconsole;
char *cgroup_path;
- char **controllers, **reset_controllers;
+ char **controllers;
- char **kill_only_users, **kill_exlude_users;
+ char **kill_only_users, **kill_exclude_users;
bool kill_user_processes;
+
+ unsigned long session_counter;
+
+ Hashmap *cgroups;
+ Hashmap *pipe_fds;
+};
+
+enum {
+ FD_UDEV,
+ FD_CONSOLE,
+ FD_BUS,
+ FD_PIPE_BASE
};
Manager *manager_new(void);
int manager_run(Manager *m);
int manager_spawn_autovt(Manager *m, int vtnr);
+void manager_cgroup_notify_empty(Manager *m, const char *cgroup);
+
void manager_gc(Manager *m);
+int manager_get_idle_hint(Manager *m, dual_timestamp *t);
+
bool x11_display_is_local(const char *display);
+extern const DBusObjectPathVTable bus_manager_vtable;
+
+DBusHandlerResult bus_message_filter(DBusConnection *c, DBusMessage *message, void *userdata);
+
+int manager_send_changed(Manager *manager, const char *properties);
+
#endif