X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fdbus.h;h=255b653376e9b924d2962bd31e498790232d461b;hp=af837f283f8f86a3cb582237c123ce52c4a67e33;hb=c826cda421f0272275342173e16250adcdf6fbd4;hpb=5e8d1c9a9f15b7453474dc4879bdb4021c3f50a1 diff --git a/src/dbus.h b/src/dbus.h index af837f283..255b65337 100644 --- a/src/dbus.h +++ b/src/dbus.h @@ -1,4 +1,4 @@ -/*-*- Mode: C; c-basic-offset: 8 -*-*/ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ #ifndef foodbushfoo #define foodbushfoo @@ -27,6 +27,7 @@ #include "manager.h" typedef int (*BusPropertyCallback)(Manager *m, DBusMessageIter *iter, const char *property, void *data); +typedef int (*BusPropertySetCallback)(Manager *m, DBusMessageIter *iter, const char *property); typedef struct BusProperty { const char *interface; /* interface of the property */ @@ -34,6 +35,7 @@ typedef struct BusProperty { BusPropertyCallback append; /* Function that is called to serialize this property */ const char *signature; const void *data; /* The data of this property */ + BusPropertySetCallback set; /* Function that is called to set this property */ } BusProperty; #define BUS_PROPERTIES_INTERFACE \ @@ -47,6 +49,16 @@ typedef struct BusProperty { " \n" \ " \n" \ " \n" \ + " \n" \ + " \n" \ + " \n" \ + " \n" \ + " \n" \ + " \n" \ + " \n" \ + " \n" \ + " \n" \ + " \n" \ " \n" #define BUS_INTROSPECTABLE_INTERFACE \ @@ -56,7 +68,15 @@ typedef struct BusProperty { " \n" \ " \n" -int bus_init(Manager *m); +#define BUS_PEER_INTERFACE \ + "\n" \ + " \n" \ + " \n" \ + " \n" \ + " \n" \ + "\n" + +int bus_init(Manager *m, bool try_bus_connect); void bus_done(Manager *m); unsigned bus_dispatch(Manager *m); @@ -77,6 +97,8 @@ int bus_property_append_bool(Manager *m, DBusMessageIter *i, const char *propert int bus_property_append_int32(Manager *m, DBusMessageIter *i, const char *property, void *data); int bus_property_append_uint32(Manager *m, DBusMessageIter *i, const char *property, void *data); int bus_property_append_uint64(Manager *m, DBusMessageIter *i, const char *property, void *data); +int bus_property_append_size(Manager *m, DBusMessageIter *i, const char *property, void *data); +int bus_property_append_ul(Manager *m, DBusMessageIter *i, const char *property, void *data); #define bus_property_append_int bus_property_append_int32 #define bus_property_append_pid bus_property_append_uint32 @@ -103,6 +125,14 @@ int bus_property_append_uint64(Manager *m, DBusMessageIter *i, const char *prope int bus_parse_strv(DBusMessage *m, char ***_l); +bool bus_has_subscriber(Manager *m); +bool bus_connection_has_subscriber(Manager *m, DBusConnection *c); + +DBusMessage* bus_properties_changed_new(const char *path, const char *interface, const char *properties); + +#define BUS_CONNECTION_SUBSCRIBED(m, c) dbus_connection_get_data((c), (m)->subscribed_data_slot) +#define BUS_PENDING_CALL_NAME(m, p) dbus_pending_call_get_data((p), (m)->name_data_slot) + extern const char * const bus_interface_table[]; #endif