<refnamediv>
<refname>sd_bus_close</refname>
<refname>sd_bus_flush</refname>
+ <refname>sd_bus_default_flush_close</refname>
<refpurpose>Close and flush a bus connection</refpurpose>
</refnamediv>
<funcdef>int <function>sd_bus_flush</function></funcdef>
<paramdef>sd_bus *<parameter>bus</parameter></paramdef>
</funcprototype>
+
+ <funcprototype>
+ <funcdef>void <function>sd_bus_default_flush_close</function></funcdef>
+ <paramdef>void</paramdef>
+ </funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
- <para><function>sd_bus_close()</function> disconnects the specified bus connection. When this call is invoked and
- the specified bus object refers to an active connection it is immediately terminated. No further messages may be
- sent or receieved on it. Any messages queued in the bus object (both incoming and outgoing) are released. If
- invoked on <constant>NULL</constant> bus object or when the bus connection is already closed this function executes
- no operation. This call does not free or unreference the bus object itself. Use
- <citerefentry><refentrytitle>sd_bus_unref</refentrytitle><manvolnum>3</manvolnum></citerefentry> for that.</para>
+ <para><function>sd_bus_close()</function> disconnects the specified bus connection. When this
+ call is invoked and the specified bus object refers to an active connection it is immediately
+ terminated. No further messages may be sent or received on it. Any messages queued in the bus
+ object (both incoming and outgoing) are released. If invoked on <constant>NULL</constant> bus
+ object or when the bus connection is already closed this function executes no operation. This
+ call does not free or unreference the bus object itself. Use
+ <citerefentry><refentrytitle>sd_bus_unref</refentrytitle><manvolnum>3</manvolnum></citerefentry>
+ for that.</para>
- <para><function>sd_bus_flush()</function> synchronously writes out all outgoing queued message on a bus connection
- if there are any. This function call may block if the peer is not processing bus messages quickly.</para>
+ <para><function>sd_bus_flush()</function> synchronously writes out all outgoing queued message
+ on a bus connection if there are any. This function call may block if the peer is not processing
+ bus messages quickly.</para>
<para>Before a program exits it is usually a good idea to flush any pending messages with
- <function>sd_bus_flush()</function> and then close connections with <function>sd_bus_close()</function> to ensure
- that no unwritten messages are lost, no further messages may be queued and all incoming but unprocessed messages
- are released. After both operations have been done, it is a good idea to also drop any remaining references to the
- bus object so that it may be freed. Since these three operations are frequently done together a helper call
- <citerefentry><refentrytitle>sd_bus_flush_close_unref</refentrytitle><manvolnum>3</manvolnum></citerefentry> is
- provided that combines them into one.</para>
+ <function>sd_bus_flush()</function> and then close connections with
+ <function>sd_bus_close()</function> to ensure that no unwritten messages are lost, no further
+ messages may be queued and all incoming but unprocessed messages are released. After both
+ operations have been done, it is a good idea to also drop any remaining references to the bus
+ object so that it may be freed. Since these three operations are frequently done together a
+ helper call
+ <citerefentry><refentrytitle>sd_bus_flush_close_unref</refentrytitle><manvolnum>3</manvolnum></citerefentry>
+ is provided that combines them into one.</para>
+
+ <para><function>sd_bus_default_flush_close()</function> is similar to
+ <function>sd_bus_flush_close_unref</function>, but does not take a bus pointer argument and
+ instead iterates over any of the "default" buses opened by
+ <citerefentry><refentrytitle>sd_bus_default</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>sd_bus_default_user</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>sd_bus_default_system</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ and similar calls. <function>sd_bus_default_flush_close()</function> is particularly useful to
+ clean up any buses opened using those calls before the program exits.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
- <para>On success, <function>sd_bus_flush()</function> returns 0 or a positive integer. On failure, it returns a
- negative errno-style error code.</para>
+ <para>On success, <function>sd_bus_flush()</function> returns a non-negative integer. On
+ failure, it returns a negative errno-style error code.</para>
<refsect2>
<title>Errors</title>
<varlistentry>
<term><constant>-ECHILD</constant></term>
- <listitem><para>The bus connection has been created in a different process.</para></listitem>
+ <listitem><para>The bus connection has been created in a different process.</para>
+ </listitem>
</varlistentry>
</variablelist>
</refsect2>