2 <!DOCTYPE refentry PUBLIC
"-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
4 <!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
6 <refentry id=
"sd_bus_set_property"
7 xmlns:
xi=
"http://www.w3.org/2001/XInclude">
10 <title>sd_bus_set_property
</title>
11 <productname>systemd
</productname>
15 <refentrytitle>sd_bus_set_property
</refentrytitle>
16 <manvolnum>3</manvolnum>
20 <refname>sd_bus_set_property
</refname>
21 <refname>sd_bus_set_propertyv
</refname>
22 <refname>sd_bus_get_property
</refname>
23 <refname>sd_bus_get_property_trivial
</refname>
24 <refname>sd_bus_get_property_string
</refname>
25 <refname>sd_bus_get_property_strv
</refname>
27 <refpurpose>Set or query D-Bus service properties
</refpurpose>
32 <funcsynopsisinfo>#include
<systemd/sd-bus.h
></funcsynopsisinfo>
35 <funcdef>int
<function>sd_bus_set_property
</function></funcdef>
36 <paramdef>sd_bus *
<parameter>bus
</parameter></paramdef>
37 <paramdef>const char *
<parameter>destination
</parameter></paramdef>
38 <paramdef>const char *
<parameter>path
</parameter></paramdef>
39 <paramdef>const char *
<parameter>interface
</parameter></paramdef>
40 <paramdef>const char *
<parameter>member
</parameter></paramdef>
41 <paramdef>sd_bus_error *
<parameter>ret_error
</parameter></paramdef>
42 <paramdef>sd_bus_message **
<parameter>reply
</parameter></paramdef>
43 <paramdef>const char *
<parameter>type
</parameter></paramdef>
44 <paramdef>...
</paramdef>
48 <funcdef>int
<function>sd_bus_set_propertyv
</function></funcdef>
49 <paramdef>sd_bus *
<parameter>bus
</parameter></paramdef>
50 <paramdef>const char *
<parameter>destination
</parameter></paramdef>
51 <paramdef>const char *
<parameter>path
</parameter></paramdef>
52 <paramdef>const char *
<parameter>interface
</parameter></paramdef>
53 <paramdef>const char *
<parameter>member
</parameter></paramdef>
54 <paramdef>sd_bus_error *
<parameter>ret_error
</parameter></paramdef>
55 <paramdef>sd_bus_message **
<parameter>reply
</parameter></paramdef>
56 <paramdef>const char *
<parameter>type
</parameter></paramdef>
57 <paramdef>va_list
<parameter>ap
</parameter></paramdef>
61 <funcdef>int
<function>sd_bus_get_property
</function></funcdef>
62 <paramdef>sd_bus *
<parameter>bus
</parameter></paramdef>
63 <paramdef>const char *
<parameter>destination
</parameter></paramdef>
64 <paramdef>const char *
<parameter>path
</parameter></paramdef>
65 <paramdef>const char *
<parameter>interface
</parameter></paramdef>
66 <paramdef>const char *
<parameter>member
</parameter></paramdef>
67 <paramdef>sd_bus_error *
<parameter>ret_error
</parameter></paramdef>
68 <paramdef>sd_bus_message **
<parameter>reply
</parameter></paramdef>
69 <paramdef>const char *
<parameter>type
</parameter></paramdef>
73 <funcdef>int
<function>sd_bus_get_property_trivial
</function></funcdef>
74 <paramdef>sd_bus *
<parameter>bus
</parameter></paramdef>
75 <paramdef>const char *
<parameter>destination
</parameter></paramdef>
76 <paramdef>const char *
<parameter>path
</parameter></paramdef>
77 <paramdef>const char *
<parameter>interface
</parameter></paramdef>
78 <paramdef>const char *
<parameter>member
</parameter></paramdef>
79 <paramdef>sd_bus_error *
<parameter>ret_error
</parameter></paramdef>
80 <paramdef>char
<parameter>type
</parameter></paramdef>
81 <paramdef>void *
<parameter>ret_ptr
</parameter></paramdef>
85 <funcdef>int
<function>sd_bus_get_property_string
</function></funcdef>
86 <paramdef>sd_bus *
<parameter>bus
</parameter></paramdef>
87 <paramdef>const char *
<parameter>destination
</parameter></paramdef>
88 <paramdef>const char *
<parameter>path
</parameter></paramdef>
89 <paramdef>const char *
<parameter>interface
</parameter></paramdef>
90 <paramdef>const char *
<parameter>member
</parameter></paramdef>
91 <paramdef>sd_bus_error *
<parameter>ret_error
</parameter></paramdef>
92 <paramdef>char **
<parameter>ret
</parameter></paramdef>
96 <funcdef>int
<function>sd_bus_get_property_strv
</function></funcdef>
97 <paramdef>sd_bus *
<parameter>bus
</parameter></paramdef>
98 <paramdef>const char *
<parameter>destination
</parameter></paramdef>
99 <paramdef>const char *
<parameter>path
</parameter></paramdef>
100 <paramdef>const char *
<parameter>interface
</parameter></paramdef>
101 <paramdef>const char *
<parameter>member
</parameter></paramdef>
102 <paramdef>sd_bus_error *
<parameter>ret_error
</parameter></paramdef>
103 <paramdef>char ***
<parameter>ret
</parameter></paramdef>
109 <title>Description
</title>
111 <para>These functions set or query D-Bus properties. D-Bus properties are service fields exposed
112 via the
<constant>org.freedesktop.DBus.Properties
</constant> interface. Under the hood, these
113 functions call methods of the
<constant>org.freedesktop.DBus.Properties
</constant> interface and
114 as a result their semantics are similar to
115 <citerefentry><refentrytitle>sd_bus_call_method
</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
118 <para><function>sd_bus_set_property()
</function> sets a D-Bus property. On success, the response
119 is stored in
<parameter>reply
</parameter>. If setting the property fails or an internal error
120 occurs, an error is returned and an extended description of the error is optionally stored in
121 <parameter>ret_error
</parameter> if it is not
<constant>NULL
</constant>.
122 <parameter>type
</parameter> and the arguments that follow it describe the new value of the
123 property and must follow the format described in
124 <citerefentry><refentrytitle>sd_bus_message_append
</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
127 <para><function>sd_bus_set_propertyv()
</function> is equivalent to
128 <function>sd_bus_set_property()
</function>, except that it is called with a
129 <literal>va_list
</literal> instead of a variable number of arguments.
</para>
131 <para><function>sd_bus_get_property()
</function> queries a D-Bus property. If retrieving the
132 property fails or an internal error occurs, an error is returned and an extended description of
133 the error is optionally stored in
<parameter>ret_error
</parameter> if it is not
134 <constant>NULL
</constant>. On success, the property is stored in
<parameter>reply
</parameter>.
135 <parameter>type
</parameter> describes the property type and must follow the format described in
136 <citerefentry><refentrytitle>sd_bus_message_append
</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
139 <para><function>sd_bus_get_property_trivial()
</function>,
140 <function>sd_bus_get_property_string()
</function> and
141 <function>sd_bus_get_property_strv()
</function> are shorthands for
142 <function>sd_bus_get_property()
</function> that are used to query basic, string and string
143 vector properties respectively. The caller is responsible for freeing the string and string
144 vector results stored in
<parameter>ret
</parameter> by
145 <function>sd_bus_get_property_string()
</function> and
146 <function>sd_bus_get_property_strv()
</function>.
</para>
150 <title>Return Value
</title>
152 <para>On success, these functions return a non-negative integer. On failure, they return a
153 negative errno-style error code.
</para>
155 <refsect2 id='errors'
>
156 <title>Errors
</title>
159 <citerefentry><refentrytitle>sd_bus_call_method
</refentrytitle><manvolnum>3</manvolnum></citerefentry>
160 man page for a list of possible errors.
</para>
164 <xi:include href=
"libsystemd-pkgconfig.xml" />
167 <title>See Also
</title>
170 <citerefentry><refentrytitle>systemd
</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
171 <citerefentry><refentrytitle>sd-bus
</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
172 <citerefentry><refentrytitle>sd_bus_call_method
</refentrytitle><manvolnum>3</manvolnum></citerefentry>