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 <elogind/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.
See the sd_bus_call_method(3) man page for a list of possible errors.
These APIs are implemented as a shared library, which can be compiled and linked to with the libelogind pkg-config(1) file.
elogind(8), sd-bus(3), sd_bus_call_method(3)