#ifndef DBUS_COMMON_H #define DBUS_COMMON_H #include "inhibit-interface.h" #include #include typedef enum { DBUS_MODE_NONE, DBUS_MODE_IMPLEMENT, // we own the D-Bus name DBUS_MODE_MONITOR // we monitor via BecomeMonitor } DBusMode; typedef struct { sd_bus *bus; DBusMode mode; char *bus_name; char *object_path; char *interface_name; sd_bus_slot *slot; InhibitInterface *parent; } DBusService; int dbus_service_init(DBusService *svc, const char *bus_name, const char *object_path, const char *interface_name); void dbus_service_cleanup(DBusService *svc); int dbus_service_detect_mode(DBusService *svc); int dbus_service_claim_name(DBusService *svc); int dbus_service_become_monitor(DBusService *svc, const char **match_rules, int num_rules); int dbus_service_poll(DBusService *svc); int dbus_parse_inhibit_request(sd_bus_message *m, char **app_name, char **reason); int dbus_send_signal(DBusService *svc, const char *signal_name, const char *signature, ...); #endif