13#include <systemd/sd-bus.h>
15#include "linkedlist.h"
17#define CRTX_DBUS_OBJECT_MANAGER_INTERFACE "org.freedesktop.DBus.ObjectManager"
20 CRTX_SDBUS_TYPE_DEFAULT = 0,
22 CRTX_SDBUS_TYPE_SYSTEM,
23 CRTX_SDBUS_TYPE_SYSTEM_REMOTE,
24 CRTX_SDBUS_TYPE_SYSTEM_MACHINE,
25 CRTX_SDBUS_TYPE_CUSTOM,
37 sd_bus_message_handler_t callback;
48 void (*appear_cb)(
struct crtx_sdbus_track *track,
char *peer,
char *new_name,
void *userdata);
49 void (*disappear_cb)(
struct crtx_sdbus_track *track,
char *peer,
char *new_name,
void *userdata);
56 enum crtx_sdbus_type bus_type;
60 int connection_signals;
62 sd_bus_message_handler_t connected_cb;
63 void *connected_cb_data;
66 unsigned int process_max_per_run;
68 const char *unique_name;
70 struct crtx_dll *matches;
72 void (*error_cb)(
void *connected_cb_data);
76int crtx_sdbus_call(
struct crtx_sdbus_listener *lstnr, sd_bus_message *msg, sd_bus_message **reply, uint64_t timeout_us);
77int crtx_sdbus_get_property_async(sd_bus *bus,
const char *service,
const char *object_path,
const char *interface,
const char *name, sd_bus_message_handler_t callback,
void *userdata, uint64_t usec);
78int crtx_sdbus_get_property_async_print_response(sd_bus_message *m,
void *userdata, sd_bus_error *ret_error);
80int crtx_sd_bus_message_read_string(sd_bus_message *m,
char **p);
81char crtx_sdbus_open_bus(sd_bus **bus,
enum crtx_sdbus_type bus_type,
char *name);
82void crtx_sdbus_print_msg(sd_bus_message *m,
const char *sig);
83int crtx_sdbus_next_to_dict_item(sd_bus_message *msg,
struct crtx_dict_item *ditem,
char no_reduce);
90struct crtx_sdbus_listener *crtx_sdbus_get_default_listener(
enum crtx_sdbus_type sdbus_type);
91int crtx_sdbus_get_objects_msg_async(
struct crtx_sdbus_listener *lstnr,
const char *service, sd_bus_message_handler_t callback,
void *userdata, uint64_t timeout_us);
95CRTX_DECLARE_ALLOC_FUNCTION(sdbus)
97void crtx_sdbus_init();
98void crtx_sdbus_finish();
base structure of a listener
Definition core.h:186