X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fshared%2Fdbus-common.h;h=9752f08c0536b661a30cb8f16cdbe6afafd56cb4;hb=b32ff512191bf873266ee8067f6f6c8a30c96a5e;hp=e141c9ec9003e681b13b0c32bef88a0d030f1d15;hpb=71645acac27da55d510f2e4d61cc61b4e5b93035;p=elogind.git diff --git a/src/shared/dbus-common.h b/src/shared/dbus-common.h index e141c9ec9..9752f08c0 100644 --- a/src/shared/dbus-common.h +++ b/src/shared/dbus-common.h @@ -25,6 +25,8 @@ #include #include +#include "macro.h" + #ifndef DBUS_ERROR_UNKNOWN_OBJECT #define DBUS_ERROR_UNKNOWN_OBJECT "org.freedesktop.DBus.Error.UnknownObject" #endif @@ -92,7 +94,7 @@ int bus_connect_system_ssh(const char *user, const char *host, DBusConnection ** int bus_connect_system_polkit(DBusConnection **_bus, DBusError *error); const char *bus_error_message(const DBusError *error); -const char *bus_error_message_or_strerror(const DBusError *error, int err); +const char *bus_error(const DBusError *e, int r); typedef int (*BusPropertyCallback)(DBusMessageIter *iter, const char *property, void *data); typedef int (*BusPropertySetCallback)(DBusMessageIter *iter, const char *property, void *data); @@ -187,18 +189,33 @@ int bus_property_set_uint64(DBusMessageIter *i, const char *property, void *data return 0; \ } -const char *bus_errno_to_dbus(int error); +const char *bus_errno_to_dbus(int error) _const_; DBusMessage* bus_properties_changed_new(const char *path, const char *interface, const char *properties); DBusMessage* bus_properties_changed_one_new(const char *path, const char *interface, const char *property); -uint32_t bus_flags_to_events(DBusWatch *bus_watch); -unsigned bus_events_to_flags(uint32_t events); +uint32_t bus_flags_to_events(DBusWatch *bus_watch) _pure_; +unsigned bus_events_to_flags(uint32_t events) _const_; int bus_parse_strv(DBusMessage *m, char ***_l); int bus_parse_strv_iter(DBusMessageIter *iter, char ***_l); int bus_parse_strv_pairs_iter(DBusMessageIter *iter, char ***_l); +struct unit_info { + const char *id; + const char *description; + const char *load_state; + const char *active_state; + const char *sub_state; + const char *following; + const char *unit_path; + uint32_t job_id; + const char *job_type; + const char *job_path; +}; + +int bus_parse_unit_info(DBusMessageIter *iter, struct unit_info *u); + int bus_append_strv_iter(DBusMessageIter *iter, char **l); int bus_iter_get_basic_and_next(DBusMessageIter *iter, int type, void *data, bool next);