X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fmachine%2Fmachined.h;h=d4b581be7a9c4ed3c83de4e85e89ce8ce9c9f51c;hp=32a15fe1ab62ba96ecaa47050542ebc82cd8885a;hb=eca7a27add5aa3ec85c272fc4cef287fdca034ce;hpb=1ee306e1248866617c96ed9f4263f375588ad838 diff --git a/src/machine/machined.h b/src/machine/machined.h index 32a15fe1a..d4b581be7 100644 --- a/src/machine/machined.h +++ b/src/machine/machined.h @@ -23,37 +23,32 @@ #include #include -#include #include "util.h" #include "list.h" #include "hashmap.h" +#include "sd-event.h" +#include "sd-bus.h" typedef struct Manager Manager; #include "machine.h" struct Manager { - DBusConnection *bus; - - int bus_fd; - int epoll_fd; + sd_event *event; + sd_bus *bus; Hashmap *machines; Hashmap *machine_units; + Hashmap *machine_leaders; LIST_HEAD(Machine, machine_gc_queue); }; -enum { - FD_BUS -}; - Manager *manager_new(void); void manager_free(Manager *m); int manager_add_machine(Manager *m, const char *name, Machine **_machine); - int manager_enumerate_machines(Manager *m); int manager_startup(Manager *m); @@ -63,11 +58,15 @@ void manager_gc(Manager *m, bool drop_not_started); int manager_get_machine_by_pid(Manager *m, pid_t pid, Machine **machine); -extern const DBusObjectPathVTable bus_manager_vtable; +extern const sd_bus_vtable manager_vtable[]; -DBusHandlerResult bus_message_filter(DBusConnection *c, DBusMessage *message, void *userdata); +int match_reloading(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error); +int match_unit_removed(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error); +int match_properties_changed(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error); +int match_job_removed(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error); -int manager_start_scope(Manager *manager, const char *scope, pid_t pid, const char *slice, const char *description, DBusError *error, char **job); -int manager_stop_unit(Manager *manager, const char *unit, DBusError *error, char **job); -int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo, DBusError *error); +int manager_start_scope(Manager *manager, const char *scope, pid_t pid, const char *slice, const char *description, sd_bus_message *more_properties, sd_bus_error *error, char **job); +int manager_stop_unit(Manager *manager, const char *unit, sd_bus_error *error, char **job); +int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo, sd_bus_error *error); int manager_unit_is_active(Manager *manager, const char *unit); +int manager_job_is_active(Manager *manager, const char *path);