#include <systemd/sd-bus.h>
sd_bus_set_server()
sd_bus_is_server() returns whether the server mode is enabled for the given bus object.
sd_bus_get_bus_id() stores the D-Bus server id configured using sd_bus_set_server() (for server bus objects) or received during D-Bus authentication (for client bus objects) in id.
sd_bus_set_bus_client() configures the bus object as a D-Bus daemon client. b enables/disables the client mode. If zero, the client mode is disabled and the bus object should connect directly to a D-Bus server. Otherwise, the client mode is enabled and the bus object should connect to a D-Bus daemon. When connecting to an existing bus using any of the functions in the sd_bus_open(3) family of functions or any of the functions in the sd_bus_default(3) family of functions, the bus object is automatically configured as a bus client. However, when connecting to a D-Bus daemon by calling sd_bus_set_address(3) followed by sd_bus_start(3), the bus object should be manually configured as a bus client using sd_bus_set_bus_client(). By default, a bus object is not configured as a D-Bus daemon client.
sd_bus_is_bus_client() returns whether the client mode is enabled/disabled for the given bus object.
sd_bus_set_monitor() configures the bus object as a D-Bus monitor object. b enables/disables the monitor mode. If zero, the monitor mode is disabled. If non-zero, the monitor mode is enabled. When the monitor mode is enabled, no messages may be sent via the bus object and it may not expose any objects on the bus. To start monitoring messages, call the org.freedesktop.DBus.Monitoring.BecomeMonitor method of the D-Bus daemon and pass a list of matches indicating which messages to intercept. See m[blue]The D-Bus specificationm[][1] for more information.
sd_bus_is_monitor() returns whether the monitor mode is enabled/disabled for the given bus object.
On success, sd_bus_set_server(), sd_bus_get_bus_id(), sd_bus_set_bus_client() and sd_bus_set_monitor() return a non-negative integer. On failure, they return a negative errno-style error code.
sd_bus_is_server(), sd_bus_is_bus_client() and sd_bus_is_monitor() return a positive integer when the server or client mode is enabled, respectively. Otherwise, they return zero.
Returned errors may indicate the following problems:
-ECHILD
-EPERM
-ENOPKG
-EINVAL
-ENOTCONN
These APIs are implemented as a shared library, which can be compiled and linked to with the libsystemd pkg-config(1) file.