X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fmachine%2Fmachined.h;h=c47a4688302294eac9b88f62ddf589090d6353a5;hp=32a15fe1ab62ba96ecaa47050542ebc82cd8885a;hb=04d39279245834494baccfdb9349db8bf80abd13;hpb=1ee306e1248866617c96ed9f4263f375588ad838 diff --git a/src/machine/machined.h b/src/machine/machined.h index 32a15fe1a..c47a46883 100644 --- a/src/machine/machined.h +++ b/src/machine/machined.h @@ -23,21 +23,20 @@ #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; @@ -45,10 +44,6 @@ struct Manager { LIST_HEAD(Machine, machine_gc_queue); }; -enum { - FD_BUS -}; - Manager *manager_new(void); void manager_free(Manager *m); @@ -63,11 +58,17 @@ 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[]; + +int machine_node_enumerator(sd_bus *bus, const char *path, char ***nodes, void *userdata); -DBusHandlerResult bus_message_filter(DBusConnection *c, DBusMessage *message, void *userdata); +int match_reloading(sd_bus *bus, sd_bus_message *message, void *userdata); +int match_unit_removed(sd_bus *bus, sd_bus_message *message, void *userdata); +int match_properties_changed(sd_bus *bus, sd_bus_message *message, void *userdata); +int match_job_removed(sd_bus *bus, sd_bus_message *message, void *userdata); -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);