meta: restructure project for a modular architechture for more interfaces
Signed-off-by: NotAShelf <raf@notashelf.dev> Change-Id: I16f88f649bddad572e0d44cee7e0edec6a6a6964
This commit is contained in:
parent
c89f4b5d02
commit
087f28d726
22 changed files with 2494 additions and 0 deletions
40
include/dbus-common.h
Normal file
40
include/dbus-common.h
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
#ifndef DBUS_COMMON_H
|
||||
#define DBUS_COMMON_H
|
||||
|
||||
#include "inhibit-interface.h"
|
||||
#include <stdarg.h>
|
||||
#include <systemd/sd-bus.h>
|
||||
|
||||
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
|
||||
Loading…
Add table
Add a link
Reference in a new issue