sd_bus_set_property, sd_bus_set_propertyv, sd_bus_get_property, sd_bus_get_property_trivial, sd_bus_get_property_string, sd_bus_get_property_strv — Set or query D-Bus service properties
#include <systemd/sd-bus.h>
int sd_bus_set_property( | sd_bus *bus, |
| const char *destination, | |
| const char *path, | |
| const char *interface, | |
| const char *member, | |
| sd_bus_error *ret_error, | |
| const char *type, | |
...); |
int sd_bus_set_propertyv( | sd_bus *bus, |
| const char *destination, | |
| const char *path, | |
| const char *interface, | |
| const char *member, | |
| sd_bus_error *ret_error, | |
| const char *type, | |
va_list ap); |
int sd_bus_get_property( | sd_bus *bus, |
| const char *destination, | |
| const char *path, | |
| const char *interface, | |
| const char *member, | |
| sd_bus_error *ret_error, | |
| sd_bus_message **reply, | |
const char *type); |
int sd_bus_get_property_trivial( | sd_bus *bus, |
| const char *destination, | |
| const char *path, | |
| const char *interface, | |
| const char *member, | |
| sd_bus_error *ret_error, | |
| char type, | |
void *ret_ptr); |
int sd_bus_get_property_string( | sd_bus *bus, |
| const char *destination, | |
| const char *path, | |
| const char *interface, | |
| const char *member, | |
| sd_bus_error *ret_error, | |
char **ret); |
int sd_bus_get_property_strv( | sd_bus *bus, |
| const char *destination, | |
| const char *path, | |
| const char *interface, | |
| const char *member, | |
| sd_bus_error *ret_error, | |
char ***ret); |
These functions set or query D-Bus properties. D-Bus properties are service fields exposed
via the org.freedesktop.DBus.Properties interface. Under the hood, these
functions call methods of the org.freedesktop.DBus.Properties interface and
as a result their semantics are similar to
sd_bus_call_method(3).
sd_bus_set_property() sets a D-Bus property. If setting the property
fails or an internal error occurs, an error is returned and an extended description of the error
is optionally stored in ret_error if it is not NULL.
type and the arguments that follow it describe the new value of the
property and must follow the format described in
sd_bus_message_append(3).
sd_bus_set_propertyv() is equivalent to
sd_bus_set_property(), except that it is called with a
"va_list" instead of a variable number of arguments.
sd_bus_get_property() queries a D-Bus property. If retrieving the
property fails or an internal error occurs, an error is returned and an extended description of
the error is optionally stored in ret_error if it is not
NULL. On success, the property is stored in reply.
type describes the property type and must follow the format described in
sd_bus_message_append(3).
sd_bus_get_property_trivial(),
sd_bus_get_property_string() and
sd_bus_get_property_strv() are shorthands for
sd_bus_get_property() that are used to query basic, string and string
vector properties respectively. The caller is responsible for freeing the string and string
vector results stored in ret by
sd_bus_get_property_string() and
sd_bus_get_property_strv().
On success, these functions return a non-negative integer. On failure, they return a negative errno-style error code.
Functions described here are available as a shared
library, which can be compiled against and linked to with the
libsystemd pkg-config(1)
file.
The code described here uses
getenv(3),
which is declared to be not multi-thread-safe. This means that the code calling the functions described
here must not call
setenv(3)
from a parallel thread. It is recommended to only do calls to setenv()
from an early phase of the program when no other threads have been started.
sd_bus_set_property(),
sd_bus_set_propertyv(),
sd_bus_get_property(),
sd_bus_get_property_trivial(),
sd_bus_get_property_string(), and
sd_bus_get_property_strv() were added in version 246.