|
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17 System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64 User : nobody ( 99) PHP Version : 5.2.17 Disable Function : NONE Directory : /usr/share/devhelp/books/dbus/api/ |
Upload File : |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>D-Bus: DBusMessage</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="pages.html"><span>Related Pages</span></a></li>
</ul></div>
<h1>DBusMessage<br>
<small>
[<a class="el" href="group__DBus.html">D-Bus low-level public API</a>]</small>
</h1>Message to be sent or received over a <a class="el" href="structDBusConnection.html">DBusConnection</a>.
<a href="#_details">More...</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> struct; contains no public fields. <a href="structDBusMessageIter.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1c4e61fd8bcfe1160354cb578dc1731a"></a><!-- doxytag: member="DBusMessage::DBusMessage" ref="g1c4e61fd8bcfe1160354cb578dc1731a" args="" -->
typedef <a class="el" href="structDBusMessage.html">DBusMessage</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g1c4e61fd8bcfe1160354cb578dc1731a">DBusMessage</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Opaque data type representing a message received from or to be sent to another application. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g3c1fed733a5a3fd2a4376ce4f645b5ff">DBusMessageIter</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Opaque type representing a message iterator. <a href="#g3c1fed733a5a3fd2a4376ce4f645b5ff"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#gf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g89b6eb41aed10c6d5f4a3bc0fe018a6b">dbus_message_get_serial</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the serial of a message or 0 if none has been specified. <a href="#g89b6eb41aed10c6d5f4a3bc0fe018a6b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gbaf9939d2ea5f1a4949e64a8737de815">dbus_message_set_reply_serial</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, <a class="el" href="group__DBusTypes.html#gf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a> reply_serial)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the reply serial of a message (the serial of the message this is a reply to). <a href="#gbaf9939d2ea5f1a4949e64a8737de815"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#gf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g1d7466805d255a82109d4f71b1008ff2">dbus_message_get_reply_serial</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the serial that the message is a reply to or 0 if none. <a href="#g1d7466805d255a82109d4f71b1008ff2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g4b4e9fad4eb4ceda24488ab67d9f34b0">dbus_message_new</a> (int message_type)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructs a new message of the given message type. <a href="#g4b4e9fad4eb4ceda24488ab67d9f34b0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g1989f2ba4a7ec15fc0ac3c308310a180">dbus_message_new_method_call</a> (const char *destination, const char *path, const char *interface, const char *method)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructs a new message to invoke a method on a remote object. <a href="#g1989f2ba4a7ec15fc0ac3c308310a180"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gcd04d0109686b8c0d8c1416aa62dee05">dbus_message_new_method_return</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *method_call)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructs a message that is a reply to a method call. <a href="#gcd04d0109686b8c0d8c1416aa62dee05"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g9b9306115efd0fd720fc9b912f108bca">dbus_message_new_signal</a> (const char *path, const char *interface, const char *name)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructs a new message representing a signal emission. <a href="#g9b9306115efd0fd720fc9b912f108bca"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g4b650525068ff3af73d22f803e70f494">dbus_message_new_error</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *reply_to, const char *error_name, const char *error_message)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a new message that is an error reply to another message. <a href="#g4b650525068ff3af73d22f803e70f494"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g9a992b09b92e7d98e6e70197735eb7db">dbus_message_new_error_printf</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *reply_to, const char *error_name, const char *error_format,...)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a new message that is an error reply to another message, allowing you to use printf formatting. <a href="#g9a992b09b92e7d98e6e70197735eb7db"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g282ce1f3bd3f4bc0a5651fd03f11ae95">dbus_message_copy</a> (const <a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a new message that is an exact replica of the message specified, except that its refcount is set to 1, its message serial is reset to 0, and if the original message was "locked" (in the outgoing message queue and thus not modifiable) the new message will not be locked. <a href="#g282ce1f3bd3f4bc0a5651fd03f11ae95"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g984ff98c7d031a9ea9e90ede2140d395">dbus_message_ref</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Increments the reference count of a <a class="el" href="structDBusMessage.html">DBusMessage</a>. <a href="#g984ff98c7d031a9ea9e90ede2140d395"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g84f8b6931de993dc0ae8c69d63bdee29">dbus_message_unref</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Decrements the reference count of a <a class="el" href="structDBusMessage.html">DBusMessage</a>, freeing the message if the count reaches 0. <a href="#g84f8b6931de993dc0ae8c69d63bdee29"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g35fbb5a1cc616426f71e6ae8a0499f6f">dbus_message_get_type</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the type of a message. <a href="#g35fbb5a1cc616426f71e6ae8a0499f6f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g019a46208b411e1fc8a3a311e8f7f943">dbus_message_append_args</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, int first_arg_type,...)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Appends fields to a message given a variable argument list. <a href="#g019a46208b411e1fc8a3a311e8f7f943"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga27c07bbddad40d025a222fb9c1edc48">dbus_message_append_args_valist</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, int first_arg_type, va_list var_args)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Like <a class="el" href="group__DBusMessage.html#g019a46208b411e1fc8a3a311e8f7f943">dbus_message_append_args()</a> but takes a va_list for use by language bindings. <a href="#ga27c07bbddad40d025a222fb9c1edc48"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gaa5e339a728a7baa786e6c30e3b840b7">dbus_message_get_args</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, <a class="el" href="structDBusError.html">DBusError</a> *error, int first_arg_type,...)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets arguments from a message given a variable argument list. <a href="#gaa5e339a728a7baa786e6c30e3b840b7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga0c3255d3cb8dc40e0e478f163889e4f">dbus_message_get_args_valist</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, <a class="el" href="structDBusError.html">DBusError</a> *error, int first_arg_type, va_list var_args)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Like dbus_message_get_args but takes a va_list for use by language bindings. <a href="#ga0c3255d3cb8dc40e0e478f163889e4f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g974a0f898df186afc6b61c976b4d84b5">dbus_message_iter_init</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, <a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *iter)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Initializes a <a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> for reading the arguments of the message passed in. <a href="#g974a0f898df186afc6b61c976b4d84b5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ge64e076a12dbf61e3806b90ece202031">dbus_message_iter_has_next</a> (<a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *iter)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Checks if an iterator has any more fields. <a href="#ge64e076a12dbf61e3806b90ece202031"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g3995194302ab3c81e2e058796a62b9ab">dbus_message_iter_next</a> (<a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *iter)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Moves the iterator to the next field, if any. <a href="#g3995194302ab3c81e2e058796a62b9ab"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g72703026e43a44ed341ff58ef03c6a4f">dbus_message_iter_get_arg_type</a> (<a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *iter)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the argument type of the argument that the message iterator points to. <a href="#g72703026e43a44ed341ff58ef03c6a4f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g48b97dced0e9d7f9794337cad953b30d">dbus_message_iter_get_element_type</a> (<a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *iter)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the element type of the array that the message iterator points to. <a href="#g48b97dced0e9d7f9794337cad953b30d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gb4d9f88a33467735ad8b466f97dca16d">dbus_message_iter_recurse</a> (<a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *iter, <a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *sub)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Recurses into a container value when reading values from a message, initializing a sub-iterator to use for traversing the child values of the container. <a href="#gb4d9f88a33467735ad8b466f97dca16d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gaa7e45dbfa7e722ec2337cb3e070e491">dbus_message_iter_get_signature</a> (<a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *iter)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the current signature of a message iterator. <a href="#gaa7e45dbfa7e722ec2337cb3e070e491"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g4b250c5093870ca2b74958d73f996fe4">dbus_message_iter_get_basic</a> (<a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *iter, void *value)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Reads a basic-typed value from the message iterator. <a href="#g4b250c5093870ca2b74958d73f996fe4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gf7b41787068f957d0914c492635b1235">dbus_message_iter_get_array_len</a> (<a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *iter)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of bytes in the array as marshaled in the wire protocol. <a href="#gf7b41787068f957d0914c492635b1235"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gae8493b610544a9c155fdeab63a8e102">dbus_message_iter_get_fixed_array</a> (<a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *iter, void *value, int *n_elements)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Reads a block of fixed-length values from the message iterator. <a href="#gae8493b610544a9c155fdeab63a8e102"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g46f26e9d5553b739c7fa0a702f174917">dbus_message_iter_init_append</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, <a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *iter)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Initializes a <a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> for appending arguments to the end of a message. <a href="#g46f26e9d5553b739c7fa0a702f174917"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g65eaa4a195e6c77ccfb1bf522fe3ab2e">dbus_message_iter_append_basic</a> (<a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *iter, int type, const void *value)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Appends a basic-typed value to the message. <a href="#g65eaa4a195e6c77ccfb1bf522fe3ab2e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g4f172ebd964e0f698f63295a9eccf520">dbus_message_iter_append_fixed_array</a> (<a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *iter, int element_type, const void *value, int n_elements)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Appends a block of fixed-length values to an array. <a href="#g4f172ebd964e0f698f63295a9eccf520"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gde4dacfedb6a33c8a2ab6fc2db3cf665">dbus_message_iter_open_container</a> (<a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *iter, int type, const char *contained_signature, <a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *sub)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Appends a container-typed value to the message; you are required to append the contents of the container using the returned sub-iterator, and then call <a class="el" href="group__DBusMessage.html#geae534bd1e513d527c9650f9c884e1d5">dbus_message_iter_close_container()</a>. <a href="#gde4dacfedb6a33c8a2ab6fc2db3cf665"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#geae534bd1e513d527c9650f9c884e1d5">dbus_message_iter_close_container</a> (<a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *iter, <a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *sub)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Closes a container-typed value appended to the message; may write out more information to the message known only after the entire container is written, and may free resources created by <a class="el" href="group__DBusMessage.html#gde4dacfedb6a33c8a2ab6fc2db3cf665">dbus_message_iter_open_container()</a>. <a href="#geae534bd1e513d527c9650f9c884e1d5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g3a94b84b3c3a5d37911dffca75b631aa">dbus_message_set_no_reply</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, <a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> no_reply)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets a flag indicating that the message does not want a reply; if this flag is set, the other end of the connection may (but is not required to) optimize by not sending method return or error replies. <a href="#g3a94b84b3c3a5d37911dffca75b631aa"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g4b64da1ca7dd2e95698b8da0f57a6182">dbus_message_get_no_reply</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the message does not expect a reply. <a href="#g4b64da1ca7dd2e95698b8da0f57a6182"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g4661483ba92680738ae2cdf6f21cbccf">dbus_message_set_auto_start</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, <a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> auto_start)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets a flag indicating that an owner for the destination name will be automatically started before the message is delivered. <a href="#g4661483ba92680738ae2cdf6f21cbccf"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gb258a310afec2bb6b592f70f304d49be">dbus_message_get_auto_start</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the message will cause an owner for destination name to be auto-started. <a href="#gb258a310afec2bb6b592f70f304d49be"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g45528c050c738412a25abfe4aea3233e">dbus_message_set_path</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *object_path)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the object path this message is being sent to (for DBUS_MESSAGE_TYPE_METHOD_CALL) or the one a signal is being emitted from (for DBUS_MESSAGE_TYPE_SIGNAL). <a href="#g45528c050c738412a25abfe4aea3233e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gc14b5439d9cde712a8e1fd19a4c7dae0">dbus_message_get_path</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the object path this message is being sent to (for DBUS_MESSAGE_TYPE_METHOD_CALL) or being emitted from (for DBUS_MESSAGE_TYPE_SIGNAL). <a href="#gc14b5439d9cde712a8e1fd19a4c7dae0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g15c844ad4190adbae2ac80f088af1b36">dbus_message_has_path</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *path)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Checks if the message has a particular object path. <a href="#g15c844ad4190adbae2ac80f088af1b36"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gfae53bd88e154e18e2db6cb7578a9b36">dbus_message_get_path_decomposed</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, char ***path)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the object path this message is being sent to (for DBUS_MESSAGE_TYPE_METHOD_CALL) or being emitted from (for DBUS_MESSAGE_TYPE_SIGNAL) in a decomposed format (one array element per path component). <a href="#gfae53bd88e154e18e2db6cb7578a9b36"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g119b1f7c80d5944dc9ba6a6463827d26">dbus_message_set_interface</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *interface)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the interface this message is being sent to (for DBUS_MESSAGE_TYPE_METHOD_CALL) or the interface a signal is being emitted from (for DBUS_MESSAGE_TYPE_SIGNAL). <a href="#g119b1f7c80d5944dc9ba6a6463827d26"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g1463c97dbfa03e7ab878094c66128a77">dbus_message_get_interface</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the interface this message is being sent to (for DBUS_MESSAGE_TYPE_METHOD_CALL) or being emitted from (for DBUS_MESSAGE_TYPE_SIGNAL). <a href="#g1463c97dbfa03e7ab878094c66128a77"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gfc99645ba3dfb1e8b231d5ec3ed77fa1">dbus_message_has_interface</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *interface)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Checks if the message has an interface. <a href="#gfc99645ba3dfb1e8b231d5ec3ed77fa1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gbfb965617a3d550f70713bc78cdcbb61">dbus_message_set_member</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *member)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the interface member being invoked (DBUS_MESSAGE_TYPE_METHOD_CALL) or emitted (DBUS_MESSAGE_TYPE_SIGNAL). <a href="#gbfb965617a3d550f70713bc78cdcbb61"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g60744ad914e162c6fc91abe4f4e7249a">dbus_message_get_member</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the interface member being invoked (DBUS_MESSAGE_TYPE_METHOD_CALL) or emitted (DBUS_MESSAGE_TYPE_SIGNAL). <a href="#g60744ad914e162c6fc91abe4f4e7249a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g5641f9abfc624a8d18a270d28b875443">dbus_message_has_member</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *member)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Checks if the message has an interface member. <a href="#g5641f9abfc624a8d18a270d28b875443"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gc2adeb77803c00de2b2f1a824c30287f">dbus_message_set_error_name</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *error_name)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the name of the error (DBUS_MESSAGE_TYPE_ERROR). <a href="#gc2adeb77803c00de2b2f1a824c30287f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gba0bbcddac374137d56c49129d61af84">dbus_message_get_error_name</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the error name (DBUS_MESSAGE_TYPE_ERROR only) or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if none. <a href="#gba0bbcddac374137d56c49129d61af84"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gdf72a8cd11d1cb1460c40433a233c8ef">dbus_message_set_destination</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *destination)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the message's destination. <a href="#gdf72a8cd11d1cb1460c40433a233c8ef"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g3def34b29d7b3bbb06235e04046e8236">dbus_message_get_destination</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the destination of a message or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if there is none set. <a href="#g3def34b29d7b3bbb06235e04046e8236"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g6f213386d912b334848db9c2efc26309">dbus_message_set_sender</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *sender)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the message sender. <a href="#g6f213386d912b334848db9c2efc26309"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g293b1a56f01173db32602344208c6271">dbus_message_get_sender</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the unique name of the connection which originated this message, or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if unknown or inapplicable. <a href="#g293b1a56f01173db32602344208c6271"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g7ee1a53a1aa27764b6088179d8f5ec86">dbus_message_get_signature</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the type signature of the message, i.e. <a href="#g7ee1a53a1aa27764b6088179d8f5ec86"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gcc67b43672cf42042d28b9ee9236cf9b">dbus_message_is_method_call</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *interface, const char *method)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Checks whether the message is a method call with the given interface and member fields. <a href="#gcc67b43672cf42042d28b9ee9236cf9b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gf35ecf35c463650dad01fa33f6300fac">dbus_message_is_signal</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *interface, const char *signal_name)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Checks whether the message is a signal with the given interface and member fields. <a href="#gf35ecf35c463650dad01fa33f6300fac"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g809a628a76726414c6d693f04c3d3792">dbus_message_is_error</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *error_name)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Checks whether the message is an error reply with the given error name. <a href="#g809a628a76726414c6d693f04c3d3792"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gd048df7b9bb1ec72a3a289dc2a1ee968">dbus_message_has_destination</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *name)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Checks whether the message was sent to the given name. <a href="#gd048df7b9bb1ec72a3a289dc2a1ee968"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g2b5f88f322230bed0f94695b802b7a4e">dbus_message_has_sender</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *name)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Checks whether the message has the given unique name as its sender. <a href="#g2b5f88f322230bed0f94695b802b7a4e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g1259ec02737317f47efad01d159f8643">dbus_message_has_signature</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *signature)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Checks whether the message has the given signature; see <a class="el" href="group__DBusMessage.html#g7ee1a53a1aa27764b6088179d8f5ec86">dbus_message_get_signature()</a> for more details on what the signature looks like. <a href="#g1259ec02737317f47efad01d159f8643"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gea5de0b66799aa0baebde2ca41f640b9">dbus_set_error_from_message</a> (<a class="el" href="structDBusError.html">DBusError</a> *error, <a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets a <a class="el" href="structDBusError.html">DBusError</a> based on the contents of the given message. <a href="#gea5de0b66799aa0baebde2ca41f640b9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g537b3456202fdd9f305666504bde98fb">dbus_message_allocate_data_slot</a> (<a class="el" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> *slot_p)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Allocates an integer ID to be used for storing application-specific data on any <a class="el" href="structDBusMessage.html">DBusMessage</a>. <a href="#g537b3456202fdd9f305666504bde98fb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gc7a5ba135e1aec4ad8c7b43752af02e1">dbus_message_free_data_slot</a> (<a class="el" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> *slot_p)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Deallocates a global ID for message data slots. <a href="#gc7a5ba135e1aec4ad8c7b43752af02e1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g69d0bc701f9ca935e6de8a3f3e376c0a">dbus_message_set_data</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, <a class="el" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> slot, void *data, <a class="el" href="group__DBusMemory.html#g8792ec2b2b8626ca28022faf51ec415a">DBusFreeFunction</a> free_data_func)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Stores a pointer on a <a class="el" href="structDBusMessage.html">DBusMessage</a>, along with an optional function to be used for freeing the data when the data is set again, or when the message is finalized. <a href="#g69d0bc701f9ca935e6de8a3f3e376c0a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g62769bfaf8f1b2edc7922c579bc0649d">dbus_message_get_data</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, <a class="el" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> slot)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieves data previously set with <a class="el" href="group__DBusMessageInternals.html#g69d0bc701f9ca935e6de8a3f3e376c0a">dbus_message_set_data()</a>. <a href="#g62769bfaf8f1b2edc7922c579bc0649d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g40412bdfc6ba9cf9e167db4c23df0a7e">dbus_message_type_from_string</a> (const char *type_str)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Utility function to convert a machine-readable (not translated) string into a D-Bus message type. <a href="#g40412bdfc6ba9cf9e167db4c23df0a7e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g75bcb613a291eb7e427f77f2f3635b8f">dbus_message_type_to_string</a> (int type)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Utility function to convert a D-Bus message type into a machine-readable string (not translated). <a href="#g75bcb613a291eb7e427f77f2f3635b8f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gd85c737f9e7d03005d6028d6bbae7e87">dbus_message_marshal</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *msg, char **marshalled_data_p, int *len_p)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Turn a <a class="el" href="structDBusMessage.html">DBusMessage</a> into the marshalled form as described in the D-Bus specification. <a href="#gd85c737f9e7d03005d6028d6bbae7e87"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#g776fe8b5cd935d642875efa1d13a31b3">dbus_message_demarshal</a> (const char *str, int len, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Demarshal a D-Bus message from the format described in the D-Bus specification. <a href="#g776fe8b5cd935d642875efa1d13a31b3"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Message to be sent or received over a <a class="el" href="structDBusConnection.html">DBusConnection</a>.
<p>
A <a class="el" href="structDBusMessage.html">DBusMessage</a> is the most basic unit of communication over a <a class="el" href="structDBusConnection.html">DBusConnection</a>. A <a class="el" href="structDBusConnection.html">DBusConnection</a> represents a stream of messages received from a remote application, and a stream of messages sent to a remote application.<p>
A message has a message type, returned from <a class="el" href="group__DBusMessage.html#g35fbb5a1cc616426f71e6ae8a0499f6f">dbus_message_get_type()</a>. This indicates whether the message is a method call, a reply to a method call, a signal, or an error reply.<p>
A message has header fields such as the sender, destination, method or signal name, and so forth. <a class="el" href="structDBusMessage.html">DBusMessage</a> has accessor functions for these, such as <a class="el" href="group__DBusMessage.html#g60744ad914e162c6fc91abe4f4e7249a">dbus_message_get_member()</a>.<p>
Convenience functions <a class="el" href="group__DBusMessage.html#gcc67b43672cf42042d28b9ee9236cf9b">dbus_message_is_method_call()</a>, <a class="el" href="group__DBusMessage.html#gf35ecf35c463650dad01fa33f6300fac">dbus_message_is_signal()</a>, and <a class="el" href="group__DBusMessage.html#g809a628a76726414c6d693f04c3d3792">dbus_message_is_error()</a> check several header fields at once and are slightly more efficient than checking the header fields with individual accessor functions.<p>
Finally, a message has arguments. The number and types of arguments are in the message's signature header field (accessed with <a class="el" href="group__DBusMessage.html#g7ee1a53a1aa27764b6088179d8f5ec86">dbus_message_get_signature()</a>). Simple argument values are usually retrieved with <a class="el" href="group__DBusMessage.html#gaa5e339a728a7baa786e6c30e3b840b7">dbus_message_get_args()</a> but more complex values such as structs may require the use of <a class="el" href="structDBusMessageIter.html">DBusMessageIter</a>.<p>
The D-Bus specification goes into some more detail about header fields and message types. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g3c1fed733a5a3fd2a4376ce4f645b5ff"></a><!-- doxytag: member="dbus-message.h::DBusMessageIter" ref="g3c1fed733a5a3fd2a4376ce4f645b5ff" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> <a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Opaque type representing a message iterator.
<p>
Can be copied by value, and contains no allocated memory so never needs to be freed and can be allocated on the stack.
<p>
Definition at line <a class="el" href="dbus-message_8h-source.html#l00046">46</a> of file <a class="el" href="dbus-message_8h-source.html">dbus-message.h</a>.
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g537b3456202fdd9f305666504bde98fb"></a><!-- doxytag: member="dbus-message.h::dbus_message_allocate_data_slot" ref="g537b3456202fdd9f305666504bde98fb" args="(dbus_int32_t *slot_p)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_allocate_data_slot </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> * </td>
<td class="paramname"> <em>slot_p</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Allocates an integer ID to be used for storing application-specific data on any <a class="el" href="structDBusMessage.html">DBusMessage</a>.
<p>
The allocated ID may then be used with <a class="el" href="group__DBusMessageInternals.html#g69d0bc701f9ca935e6de8a3f3e376c0a">dbus_message_set_data()</a> and <a class="el" href="group__DBusMessageInternals.html#g62769bfaf8f1b2edc7922c579bc0649d">dbus_message_get_data()</a>. The passed-in slot must be initialized to -1, and is filled in with the slot ID. If the passed-in slot is not -1, it's assumed to be already allocated, and its refcount is incremented.<p>
The allocated slot is global, i.e. all <a class="el" href="structDBusMessage.html">DBusMessage</a> objects will have a slot with the given integer ID reserved.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>slot_p</em> </td><td>address of a global variable storing the slot </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> on failure (no memory) </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03770">3770</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-dataslot_8c-source.html#l00067">_dbus_data_slot_allocator_alloc()</a>, and <a class="el" href="dbus-internals_8h-source.html#l00284">_DBUS_LOCK_NAME</a>.
</div>
</div><p>
<a class="anchor" name="g019a46208b411e1fc8a3a311e8f7f943"></a><!-- doxytag: member="dbus-message.c::dbus_message_append_args" ref="g019a46208b411e1fc8a3a311e8f7f943" args="(DBusMessage *message, int first_arg_type,...)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_append_args </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>first_arg_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"> </td>
<td class="paramname"> <em>...</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Appends fields to a message given a variable argument list.
<p>
The variable argument list should contain the type of each argument followed by the value to append. Appendable types are basic types, and arrays of fixed-length basic types. To append variable-length basic types, or any more complex value, you have to use an iterator rather than this function.<p>
To append a basic type, specify its type code followed by the address of the value. For example:<p>
<div class="fragment"><pre class="fragment"> <a class="code" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> v_INT32 = 42;
<span class="keyword">const</span> <span class="keywordtype">char</span> *v_STRING = <span class="stringliteral">"Hello World"</span>;
<a class="code" href="group__DBusMessage.html#g019a46208b411e1fc8a3a311e8f7f943">dbus_message_append_args</a> (message,
<a class="code" href="group__DBusProtocol.html#g5943b497db2e1dec04fae60584a294bb">DBUS_TYPE_INT32</a>, &v_INT32,
<a class="code" href="group__DBusProtocol.html#g7eb77066dadf5415896b44c56d93acce">DBUS_TYPE_STRING</a>, &v_STRING,
<a class="code" href="group__DBusProtocol.html#ga9588da889743b2119dc6664712ae51e">DBUS_TYPE_INVALID</a>);
</pre></div><p>
To append an array of fixed-length basic types, pass in the DBUS_TYPE_ARRAY typecode, the element typecode, the address of the array pointer, and a 32-bit integer giving the number of elements in the array. So for example: <div class="fragment"><pre class="fragment"> <span class="keyword">const</span> <a class="code" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> array[] = { 1, 2, 3 };
<span class="keyword">const</span> <a class="code" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> *v_ARRAY = array;
<a class="code" href="group__DBusMessage.html#g019a46208b411e1fc8a3a311e8f7f943">dbus_message_append_args</a> (message,
<a class="code" href="group__DBusProtocol.html#g8912f600f81a773066ca03d9163613a9">DBUS_TYPE_ARRAY</a>, <a class="code" href="group__DBusProtocol.html#g5943b497db2e1dec04fae60584a294bb">DBUS_TYPE_INT32</a>, &v_ARRAY, 3,
<a class="code" href="group__DBusProtocol.html#ga9588da889743b2119dc6664712ae51e">DBUS_TYPE_INVALID</a>);
</pre></div><p>
<dl compact><dt><b>Warning:</b></dt><dd>in C, given "int array[]", "&array == array" (the comp.lang.c FAQ says otherwise, but gcc and the FAQ don't agree). So if you're using an array instead of a pointer you have to create a pointer variable, assign the array to it, then take the address of the pointer variable. For strings it works to write const char *array = "Hello" and then use &array though.</dd></dl>
The last argument to this function must be <a class="el" href="group__DBusProtocol.html#ga9588da889743b2119dc6664712ae51e">DBUS_TYPE_INVALID</a>, marking the end of the argument list. If you don't do this then libdbus won't know to stop and will read invalid memory.<p>
String/signature/path arrays should be passed in as "const char*** address_of_array" and "int n_elements"<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000027">Todo:</a></b></dt><dd>support DBUS_TYPE_STRUCT and DBUS_TYPE_VARIANT and complex arrays</dd></dl>
<dl compact><dt><b><a class="el" href="todo.html#_todo000027">Todo:</a></b></dt><dd>If this fails due to lack of memory, the message is hosed and you have to start over building the whole message.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>first_arg_type</em> </td><td>type of the first argument </td></tr>
<tr><td valign="top"></td><td valign="top"><em>...</em> </td><td>value of first argument, list of additional type-value pairs </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l01482">1482</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l01514">dbus_message_append_args_valist()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-bus_8c-source.html#l01452">dbus_bus_add_match()</a>, <a class="el" href="dbus-bus_8c-source.html#l00804">dbus_bus_get_unix_user()</a>, <a class="el" href="dbus-bus_8c-source.html#l01219">dbus_bus_name_has_owner()</a>, <a class="el" href="dbus-bus_8c-source.html#l01137">dbus_bus_release_name()</a>, <a class="el" href="dbus-bus_8c-source.html#l01502">dbus_bus_remove_match()</a>, <a class="el" href="dbus-bus_8c-source.html#l01051">dbus_bus_request_name()</a>, and <a class="el" href="dbus-bus_8c-source.html#l01295">dbus_bus_start_service_by_name()</a>.
</div>
</div><p>
<a class="anchor" name="ga27c07bbddad40d025a222fb9c1edc48"></a><!-- doxytag: member="dbus-message.c::dbus_message_append_args_valist" ref="ga27c07bbddad40d025a222fb9c1edc48" args="(DBusMessage *message, int first_arg_type, va_list var_args)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_append_args_valist </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>first_arg_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">va_list </td>
<td class="paramname"> <em>var_args</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Like <a class="el" href="group__DBusMessage.html#g019a46208b411e1fc8a3a311e8f7f943">dbus_message_append_args()</a> but takes a va_list for use by language bindings.
<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000029">Todo:</a></b></dt><dd>for now, if this function fails due to OOM it will leave the message half-written and you have to discard the message and start over.</dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group__DBusMessage.html#g019a46208b411e1fc8a3a311e8f7f943">dbus_message_append_args</a>. </dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>first_arg_type</em> </td><td>type of first argument </td></tr>
<tr><td valign="top"></td><td valign="top"><em>var_args</em> </td><td>value of first argument, then list of type/value pairs </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l01514">1514</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-basic_8c-source.html#l01257">_dbus_type_to_string()</a>, <a class="el" href="dbus-internals_8c-source.html#l00238">_dbus_warn()</a>, <a class="el" href="dbus-message_8c-source.html#l02232">dbus_message_iter_append_basic()</a>, <a class="el" href="dbus-message_8c-source.html#l02291">dbus_message_iter_append_fixed_array()</a>, <a class="el" href="dbus-message_8c-source.html#l02405">dbus_message_iter_close_container()</a>, <a class="el" href="dbus-message_8c-source.html#l02064">dbus_message_iter_init_append()</a>, <a class="el" href="dbus-message_8c-source.html#l02336">dbus_message_iter_open_container()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00116">DBUS_TYPE_ARRAY</a>, <a class="el" href="dbus-protocol_8h-source.html#l00060">DBUS_TYPE_INVALID</a>, <a class="el" href="dbus-signature_8c-source.html#l00306">dbus_type_is_basic()</a>, <a class="el" href="dbus-signature_8c-source.html#l00335">dbus_type_is_fixed()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00106">DBUS_TYPE_OBJECT_PATH</a>, <a class="el" href="dbus-protocol_8h-source.html#l00110">DBUS_TYPE_SIGNATURE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00102">DBUS_TYPE_STRING</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l01482">dbus_message_append_args()</a>.
</div>
</div><p>
<a class="anchor" name="g282ce1f3bd3f4bc0a5651fd03f11ae95"></a><!-- doxytag: member="dbus-message.c::dbus_message_copy" ref="g282ce1f3bd3f4bc0a5651fd03f11ae95" args="(const DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusMessage.html">DBusMessage</a> * dbus_message_copy </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Creates a new message that is an exact replica of the message specified, except that its refcount is set to 1, its message serial is reset to 0, and if the original message was "locked" (in the outgoing message queue and thus not modifiable) the new message will not be locked.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the new message.or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if not enough memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l01311">1311</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-header_8c-source.html#l00477">_dbus_header_copy()</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00463">_dbus_header_free()</a>, <a class="el" href="dbus-string_8c-source.html#l01472">_dbus_string_copy()</a>, <a class="el" href="dbus-string_8c-source.html#l00262">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c-source.html#l00131">_dbus_string_init_preallocated()</a>, <a class="el" href="dbus-message-private_8h-source.html#l00094">body</a>, <a class="el" href="dbus-message-private_8h-source.html#l00096">byte_order</a>, <a class="el" href="dbus-memory_8c-source.html#l00617">dbus_free()</a>, <a class="el" href="dbus-memory_8h-source.html#l00047">dbus_new0</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h-source.html#l00112">generation</a>, <a class="el" href="dbus-message-private_8h-source.html#l00092">header</a>, <a class="el" href="dbus-message-private_8h-source.html#l00098">locked</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-message-private_8h-source.html#l00090">refcount</a>, and <a class="el" href="dbus-sysdeps_8h-source.html#l00198">DBusAtomic::value</a>.
</div>
</div><p>
<a class="anchor" name="g776fe8b5cd935d642875efa1d13a31b3"></a><!-- doxytag: member="dbus-message.h::dbus_message_demarshal" ref="g776fe8b5cd935d642875efa1d13a31b3" args="(const char *str, int len, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusMessage.html">DBusMessage</a>* dbus_message_demarshal </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> * </td>
<td class="paramname"> <em>error</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Demarshal a D-Bus message from the format described in the D-Bus specification.
<p>
Generally, this function is only useful for encapsulating D-Bus messages in a different protocol.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the marshalled <a class="el" href="structDBusMessage.html">DBusMessage</a> </td></tr>
<tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>the length of str </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>the location to save errors to </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if there was an error </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03979">3979</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l03387">_dbus_message_loader_get_buffer()</a>, <a class="el" href="dbus-message_8c-source.html#l03714">_dbus_message_loader_get_is_corrupted()</a>, <a class="el" href="dbus-message_8c-source.html#l03304">_dbus_message_loader_new()</a>, <a class="el" href="dbus-message_8c-source.html#l03672">_dbus_message_loader_pop_message()</a>, <a class="el" href="dbus-message_8c-source.html#l03592">_dbus_message_loader_queue_messages()</a>, <a class="el" href="dbus-message_8c-source.html#l03408">_dbus_message_loader_return_buffer()</a>, <a class="el" href="dbus-message_8c-source.html#l03354">_dbus_message_loader_unref()</a>, <a class="el" href="dbus-string_8c-source.html#l01253">_dbus_string_append_len()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00366">DBUS_ERROR_INVALID_ARGS</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="gc7a5ba135e1aec4ad8c7b43752af02e1"></a><!-- doxytag: member="dbus-message.h::dbus_message_free_data_slot" ref="gc7a5ba135e1aec4ad8c7b43752af02e1" args="(dbus_int32_t *slot_p)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void dbus_message_free_data_slot </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> * </td>
<td class="paramname"> <em>slot_p</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Deallocates a global ID for message data slots.
<p>
<a class="el" href="group__DBusMessageInternals.html#g62769bfaf8f1b2edc7922c579bc0649d">dbus_message_get_data()</a> and <a class="el" href="group__DBusMessageInternals.html#g69d0bc701f9ca935e6de8a3f3e376c0a">dbus_message_set_data()</a> may no longer be used with this slot. Existing data stored on existing <a class="el" href="structDBusMessage.html">DBusMessage</a> objects will be freed when the message is finalized, but may not be retrieved (and may only be replaced if someone else reallocates the slot). When the refcount on the passed-in slot reaches 0, it is set to -1.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>slot_p</em> </td><td>address storing the slot to deallocate </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03789">3789</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-dataslot_8c-source.html#l00163">_dbus_data_slot_allocator_free()</a>.
</div>
</div><p>
<a class="anchor" name="gaa5e339a728a7baa786e6c30e3b840b7"></a><!-- doxytag: member="dbus-message.c::dbus_message_get_args" ref="gaa5e339a728a7baa786e6c30e3b840b7" args="(DBusMessage *message, DBusError *error, int first_arg_type,...)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_get_args </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> * </td>
<td class="paramname"> <em>error</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>first_arg_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"> </td>
<td class="paramname"> <em>...</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets arguments from a message given a variable argument list.
<p>
The supported types include those supported by <a class="el" href="group__DBusMessage.html#g019a46208b411e1fc8a3a311e8f7f943">dbus_message_append_args()</a>; that is, basic types and arrays of fixed-length basic types. The arguments are the same as they would be for <a class="el" href="group__DBusMessage.html#g4b250c5093870ca2b74958d73f996fe4">dbus_message_iter_get_basic()</a> or <a class="el" href="group__DBusMessage.html#gae8493b610544a9c155fdeab63a8e102">dbus_message_iter_get_fixed_array()</a>.<p>
In addition to those types, arrays of string, object path, and signature are supported; but these are returned as allocated memory and must be freed with <a class="el" href="group__DBusMemory.html#g6d4674de64d806d238ffd309a486754e">dbus_free_string_array()</a>, while the other types are returned as const references. To get a string array pass in "char ***array_location" and "int *n_elements"<p>
The variable argument list should contain the type of the argument followed by a pointer to where the value should be stored. The list is terminated with <a class="el" href="group__DBusProtocol.html#ga9588da889743b2119dc6664712ae51e">DBUS_TYPE_INVALID</a>.<p>
Except for string arrays, the returned values are constant; do not free them. They point into the <a class="el" href="structDBusMessage.html">DBusMessage</a>.<p>
If the requested arguments are not present, or do not have the requested types, then an error will be set.<p>
If more arguments than requested are present, the requested arguments are returned and the extra arguments are ignored.<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000030">Todo:</a></b></dt><dd>support DBUS_TYPE_STRUCT and DBUS_TYPE_VARIANT and complex arrays</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>error to be filled in on failure </td></tr>
<tr><td valign="top"></td><td valign="top"><em>first_arg_type</em> </td><td>the first argument type </td></tr>
<tr><td valign="top"></td><td valign="top"><em>...</em> </td><td>location for first argument value, then list of type-location pairs </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if the error was set </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l01658">1658</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l01687">dbus_message_get_args_valist()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-bus_8c-source.html#l00887">dbus_bus_get_id()</a>, <a class="el" href="dbus-bus_8c-source.html#l00804">dbus_bus_get_unix_user()</a>, <a class="el" href="dbus-bus_8c-source.html#l01219">dbus_bus_name_has_owner()</a>, <a class="el" href="dbus-bus_8c-source.html#l00600">dbus_bus_register()</a>, <a class="el" href="dbus-bus_8c-source.html#l01137">dbus_bus_release_name()</a>, <a class="el" href="dbus-bus_8c-source.html#l01051">dbus_bus_request_name()</a>, <a class="el" href="dbus-bus_8c-source.html#l01295">dbus_bus_start_service_by_name()</a>, and <a class="el" href="dbus-message_8c-source.html#l03255">dbus_set_error_from_message()</a>.
</div>
</div><p>
<a class="anchor" name="ga0c3255d3cb8dc40e0e478f163889e4f"></a><!-- doxytag: member="dbus-message.c::dbus_message_get_args_valist" ref="ga0c3255d3cb8dc40e0e478f163889e4f" args="(DBusMessage *message, DBusError *error, int first_arg_type, va_list var_args)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_get_args_valist </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> * </td>
<td class="paramname"> <em>error</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>first_arg_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">va_list </td>
<td class="paramname"> <em>var_args</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Like dbus_message_get_args but takes a va_list for use by language bindings.
<p>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group__DBusMessage.html#gaa5e339a728a7baa786e6c30e3b840b7">dbus_message_get_args</a> </dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>error to be filled in </td></tr>
<tr><td valign="top"></td><td valign="top"><em>first_arg_type</em> </td><td>type of the first argument </td></tr>
<tr><td valign="top"></td><td valign="top"><em>var_args</em> </td><td>return location for first argument, followed by list of type/location pairs </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if error was set </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l01687">1687</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l00641">_dbus_message_iter_get_args_valist()</a>, <a class="el" href="dbus-message_8c-source.html#l01742">dbus_message_iter_init()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l01658">dbus_message_get_args()</a>.
</div>
</div><p>
<a class="anchor" name="gb258a310afec2bb6b592f70f304d49be"></a><!-- doxytag: member="dbus-message.c::dbus_message_get_auto_start" ref="gb258a310afec2bb6b592f70f304d49be" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_get_auto_start </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the message will cause an owner for destination name to be auto-started.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the message will use auto-start </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l02504">2504</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-header_8c-source.html#l01445">_dbus_header_get_flag()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00242">DBUS_HEADER_FLAG_NO_AUTO_START</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h-source.html#l00092">header</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="g62769bfaf8f1b2edc7922c579bc0649d"></a><!-- doxytag: member="dbus-message.h::dbus_message_get_data" ref="g62769bfaf8f1b2edc7922c579bc0649d" args="(DBusMessage *message, dbus_int32_t slot)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* dbus_message_get_data </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> </td>
<td class="paramname"> <em>slot</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Retrieves data previously set with <a class="el" href="group__DBusMessageInternals.html#g69d0bc701f9ca935e6de8a3f3e376c0a">dbus_message_set_data()</a>.
<p>
The slot must still be allocated (must not have been freed).<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>slot</em> </td><td>the slot to get data from </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the data, or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if not found </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03846">3846</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-dataslot_8c-source.html#l00296">_dbus_data_slot_list_get()</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-message-private_8h-source.html#l00109">slot_list</a>.
</div>
</div><p>
<a class="anchor" name="g3def34b29d7b3bbb06235e04046e8236"></a><!-- doxytag: member="dbus-message.c::dbus_message_get_destination" ref="g3def34b29d7b3bbb06235e04046e8236" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char * dbus_message_get_destination </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the destination of a message or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if there is none set.
<p>
The returned string becomes invalid if the message is modified, since it points into the wire-marshaled message data.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the message destination (should not be freed) or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l02909">2909</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-header_8c-source.html#l01317">_dbus_header_get_field_basic()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00269">DBUS_HEADER_FIELD_DESTINATION</a>, <a class="el" href="dbus-protocol_8h-source.html#l00102">DBUS_TYPE_STRING</a>, <a class="el" href="dbus-message-private_8h-source.html#l00092">header</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l03149">dbus_message_has_destination()</a>.
</div>
</div><p>
<a class="anchor" name="gba0bbcddac374137d56c49129d61af84"></a><!-- doxytag: member="dbus-message.c::dbus_message_get_error_name" ref="gba0bbcddac374137d56c49129d61af84" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char * dbus_message_get_error_name </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the error name (DBUS_MESSAGE_TYPE_ERROR only) or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if none.
<p>
The returned string becomes invalid if the message is modified, since it points into the wire-marshaled message data.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the error name (should not be freed) or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l02856">2856</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-header_8c-source.html#l01317">_dbus_header_get_field_basic()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00261">DBUS_HEADER_FIELD_ERROR_NAME</a>, <a class="el" href="dbus-protocol_8h-source.html#l00102">DBUS_TYPE_STRING</a>, <a class="el" href="dbus-message-private_8h-source.html#l00092">header</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l03116">dbus_message_is_error()</a>, and <a class="el" href="dbus-message_8c-source.html#l03255">dbus_set_error_from_message()</a>.
</div>
</div><p>
<a class="anchor" name="g1463c97dbfa03e7ab878094c66128a77"></a><!-- doxytag: member="dbus-message.c::dbus_message_get_interface" ref="g1463c97dbfa03e7ab878094c66128a77" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char * dbus_message_get_interface </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the interface this message is being sent to (for DBUS_MESSAGE_TYPE_METHOD_CALL) or being emitted from (for DBUS_MESSAGE_TYPE_SIGNAL).
<p>
The interface name is fully-qualified (namespaced). Returns <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if none.<p>
The returned string becomes invalid if the message is modified, since it points into the wire-marshaled message data.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the message interface (should not be freed) or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l02686">2686</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-header_8c-source.html#l01317">_dbus_header_get_field_basic()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00255">DBUS_HEADER_FIELD_INTERFACE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00102">DBUS_TYPE_STRING</a>, <a class="el" href="dbus-message-private_8h-source.html#l00092">header</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-connection_8c-source.html#l00585">_dbus_connection_message_sent()</a>, <a class="el" href="dbus-connection_8c-source.html#l00447">_dbus_connection_queue_received_message_link()</a>, <a class="el" href="dbus-connection_8c-source.html#l04220">dbus_connection_dispatch()</a>, <a class="el" href="dbus-connection_8c-source.html#l02982">dbus_connection_send_preallocated()</a>, and <a class="el" href="dbus-message_8c-source.html#l02708">dbus_message_has_interface()</a>.
</div>
</div><p>
<a class="anchor" name="g60744ad914e162c6fc91abe4f4e7249a"></a><!-- doxytag: member="dbus-message.c::dbus_message_get_member" ref="g60744ad914e162c6fc91abe4f4e7249a" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char * dbus_message_get_member </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the interface member being invoked (DBUS_MESSAGE_TYPE_METHOD_CALL) or emitted (DBUS_MESSAGE_TYPE_SIGNAL).
<p>
Returns <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if none.<p>
The returned string becomes invalid if the message is modified, since it points into the wire-marshaled message data.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the member name (should not be freed) or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l02772">2772</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-header_8c-source.html#l01317">_dbus_header_get_field_basic()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00257">DBUS_HEADER_FIELD_MEMBER</a>, <a class="el" href="dbus-protocol_8h-source.html#l00102">DBUS_TYPE_STRING</a>, <a class="el" href="dbus-message-private_8h-source.html#l00092">header</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-connection_8c-source.html#l00585">_dbus_connection_message_sent()</a>, <a class="el" href="dbus-connection_8c-source.html#l00447">_dbus_connection_queue_received_message_link()</a>, <a class="el" href="dbus-connection_8c-source.html#l04220">dbus_connection_dispatch()</a>, <a class="el" href="dbus-connection_8c-source.html#l02982">dbus_connection_send_preallocated()</a>, and <a class="el" href="dbus-message_8c-source.html#l02794">dbus_message_has_member()</a>.
</div>
</div><p>
<a class="anchor" name="g4b64da1ca7dd2e95698b8da0f57a6182"></a><!-- doxytag: member="dbus-message.c::dbus_message_get_no_reply" ref="g4b64da1ca7dd2e95698b8da0f57a6182" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_get_no_reply </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the message does not expect a reply.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the message sender isn't waiting for a reply </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l02462">2462</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-header_8c-source.html#l01445">_dbus_header_get_flag()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00235">DBUS_HEADER_FLAG_NO_REPLY_EXPECTED</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h-source.html#l00092">header</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="gc14b5439d9cde712a8e1fd19a4c7dae0"></a><!-- doxytag: member="dbus-message.c::dbus_message_get_path" ref="gc14b5439d9cde712a8e1fd19a4c7dae0" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char * dbus_message_get_path </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the object path this message is being sent to (for DBUS_MESSAGE_TYPE_METHOD_CALL) or being emitted from (for DBUS_MESSAGE_TYPE_SIGNAL).
<p>
Returns <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if none.<p>
See also <a class="el" href="group__DBusMessage.html#gfae53bd88e154e18e2db6cb7578a9b36">dbus_message_get_path_decomposed()</a>.<p>
The returned string becomes invalid if the message is modified, since it points into the wire-marshaled message data.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the path (should not be freed) or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l02555">2555</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-header_8c-source.html#l01317">_dbus_header_get_field_basic()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00251">DBUS_HEADER_FIELD_PATH</a>, <a class="el" href="dbus-protocol_8h-source.html#l00106">DBUS_TYPE_OBJECT_PATH</a>, <a class="el" href="dbus-message-private_8h-source.html#l00092">header</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-connection_8c-source.html#l00585">_dbus_connection_message_sent()</a>, <a class="el" href="dbus-connection_8c-source.html#l00447">_dbus_connection_queue_received_message_link()</a>, <a class="el" href="dbus-message_8c-source.html#l02623">dbus_message_get_path_decomposed()</a>, and <a class="el" href="dbus-message_8c-source.html#l02579">dbus_message_has_path()</a>.
</div>
</div><p>
<a class="anchor" name="gfae53bd88e154e18e2db6cb7578a9b36"></a><!-- doxytag: member="dbus-message.c::dbus_message_get_path_decomposed" ref="gfae53bd88e154e18e2db6cb7578a9b36" args="(DBusMessage *message, char ***path)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_get_path_decomposed </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *** </td>
<td class="paramname"> <em>path</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the object path this message is being sent to (for DBUS_MESSAGE_TYPE_METHOD_CALL) or being emitted from (for DBUS_MESSAGE_TYPE_SIGNAL) in a decomposed format (one array element per path component).
<p>
Free the returned array with <a class="el" href="group__DBusMemory.html#g6d4674de64d806d238ffd309a486754e">dbus_free_string_array()</a>.<p>
An empty but non-NULL path array means the path "/". So the path "/foo/bar" becomes { "foo", "bar", NULL } and the path "/" becomes { NULL }.<p>
See also <a class="el" href="group__DBusMessage.html#gc14b5439d9cde712a8e1fd19a4c7dae0">dbus_message_get_path()</a>.<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000037">Todo:</a></b></dt><dd>this could be optimized by using the len from the message instead of calling strlen() again</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>path</em> </td><td>place to store allocated array of path components; <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> set here if no path field exists </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory to allocate the array </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l02623">2623</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-object-tree_8c-source.html#l01058">_dbus_decompose_path()</a>, <a class="el" href="dbus-message_8c-source.html#l02555">dbus_message_get_path()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-object-tree_8c-source.html#l00731">_dbus_object_tree_dispatch_and_unlock()</a>.
</div>
</div><p>
<a class="anchor" name="g1d7466805d255a82109d4f71b1008ff2"></a><!-- doxytag: member="dbus-message.c::dbus_message_get_reply_serial" ref="g1d7466805d255a82109d4f71b1008ff2" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#gf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a> dbus_message_get_reply_serial </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns the serial that the message is a reply to or 0 if none.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the reply serial </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l00912">912</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-header_8c-source.html#l01317">_dbus_header_get_field_basic()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00265">DBUS_HEADER_FIELD_REPLY_SERIAL</a>, <a class="el" href="dbus-protocol_8h-source.html#l00086">DBUS_TYPE_UINT32</a>, <a class="el" href="dbus-message-private_8h-source.html#l00092">header</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-connection_8c-source.html#l00447">_dbus_connection_queue_received_message_link()</a>, <a class="el" href="dbus-pending-call_8c-source.html#l00154">_dbus_pending_call_set_reply_unlocked()</a>, and <a class="el" href="dbus-connection_8c-source.html#l04220">dbus_connection_dispatch()</a>.
</div>
</div><p>
<a class="anchor" name="g293b1a56f01173db32602344208c6271"></a><!-- doxytag: member="dbus-message.c::dbus_message_get_sender" ref="g293b1a56f01173db32602344208c6271" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char * dbus_message_get_sender </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the unique name of the connection which originated this message, or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if unknown or inapplicable.
<p>
The sender is filled in by the message bus.<p>
Note, the returned sender is always the unique bus name. Connections may own multiple other bus names, but those are not found in the sender field.<p>
The returned string becomes invalid if the message is modified, since it points into the wire-marshaled message data.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the unique name of the sender or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l02969">2969</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-header_8c-source.html#l01317">_dbus_header_get_field_basic()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00274">DBUS_HEADER_FIELD_SENDER</a>, <a class="el" href="dbus-protocol_8h-source.html#l00102">DBUS_TYPE_STRING</a>, <a class="el" href="dbus-message-private_8h-source.html#l00092">header</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l03184">dbus_message_has_sender()</a>, <a class="el" href="dbus-message_8c-source.html#l01197">dbus_message_new_error()</a>, and <a class="el" href="dbus-message_8c-source.html#l01102">dbus_message_new_method_return()</a>.
</div>
</div><p>
<a class="anchor" name="g89b6eb41aed10c6d5f4a3bc0fe018a6b"></a><!-- doxytag: member="dbus-message.c::dbus_message_get_serial" ref="g89b6eb41aed10c6d5f4a3bc0fe018a6b" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#gf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a> dbus_message_get_serial </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns the serial of a message or 0 if none has been specified.
<p>
The message's serial number is provided by the application sending the message and is used to identify replies to this message.<p>
All messages received on a connection will have a serial provided by the remote application.<p>
For messages you're sending, <a class="el" href="group__DBusConnection.html#g579fe70c804800df3786e50319521970">dbus_connection_send()</a> will assign a serial and return it to you.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the serial </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l00876">876</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-header_8c-source.html#l00409">_dbus_header_get_serial()</a>, <a class="el" href="dbus-message-private_8h-source.html#l00092">header</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l00170">_dbus_message_set_serial()</a>, <a class="el" href="dbus-connection_8c-source.html#l03122">dbus_connection_send_with_reply()</a>, <a class="el" href="dbus-message_8c-source.html#l01197">dbus_message_new_error()</a>, and <a class="el" href="dbus-message_8c-source.html#l01102">dbus_message_new_method_return()</a>.
</div>
</div><p>
<a class="anchor" name="g7ee1a53a1aa27764b6088179d8f5ec86"></a><!-- doxytag: member="dbus-message.c::dbus_message_get_signature" ref="g7ee1a53a1aa27764b6088179d8f5ec86" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char * dbus_message_get_signature </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the type signature of the message, i.e.
<p>
the arguments in the message payload. The signature includes only "in" arguments for <a class="el" href="group__DBusProtocol.html#g09416afd76b65139eddd31e1085d9ebf">DBUS_MESSAGE_TYPE_METHOD_CALL</a> and only "out" arguments for <a class="el" href="group__DBusProtocol.html#g4a9012edd7f22342f845e98150aeb858">DBUS_MESSAGE_TYPE_METHOD_RETURN</a>, so is slightly different from what you might expect (that is, it does not include the signature of the entire C++-style method).<p>
The signature is a string made up of type codes such as <a class="el" href="group__DBusProtocol.html#g5943b497db2e1dec04fae60584a294bb">DBUS_TYPE_INT32</a>. The string is terminated with nul (nul is also the value of <a class="el" href="group__DBusProtocol.html#ga9588da889743b2119dc6664712ae51e">DBUS_TYPE_INVALID</a>).<p>
The returned string becomes invalid if the message is modified, since it points into the wire-marshaled message data.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the type signature </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03002">3002</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message-private_8h-source.html#l00092">header</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-connection_8c-source.html#l00585">_dbus_connection_message_sent()</a>, <a class="el" href="dbus-connection_8c-source.html#l00447">_dbus_connection_queue_received_message_link()</a>, <a class="el" href="dbus-message_8c-source.html#l00285">_dbus_message_lock()</a>, <a class="el" href="dbus-connection_8c-source.html#l04220">dbus_connection_dispatch()</a>, and <a class="el" href="dbus-message_8c-source.html#l03213">dbus_message_has_signature()</a>.
</div>
</div><p>
<a class="anchor" name="g35fbb5a1cc616426f71e6ae8a0499f6f"></a><!-- doxytag: member="dbus-message.c::dbus_message_get_type" ref="g35fbb5a1cc616426f71e6ae8a0499f6f" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int dbus_message_get_type </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the type of a message.
<p>
Types include <a class="el" href="group__DBusProtocol.html#g09416afd76b65139eddd31e1085d9ebf">DBUS_MESSAGE_TYPE_METHOD_CALL</a>, <a class="el" href="group__DBusProtocol.html#g4a9012edd7f22342f845e98150aeb858">DBUS_MESSAGE_TYPE_METHOD_RETURN</a>, <a class="el" href="group__DBusProtocol.html#g2b9423d95066313d73eeea8eeaf86812">DBUS_MESSAGE_TYPE_ERROR</a>, <a class="el" href="group__DBusProtocol.html#g728d893ff0c00e126517ba39835220a5">DBUS_MESSAGE_TYPE_SIGNAL</a>, but other types are allowed and all code must silently ignore messages of unknown type. <a class="el" href="group__DBusProtocol.html#gc975525a6ce258a7a70c583c9741b516">DBUS_MESSAGE_TYPE_INVALID</a> will never be returned.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the type of the message </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l01417">1417</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-header_8c-source.html#l00368">_dbus_header_get_message_type()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00220">DBUS_MESSAGE_TYPE_INVALID</a>, <a class="el" href="dbus-message-private_8h-source.html#l00092">header</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-connection_8c-source.html#l00585">_dbus_connection_message_sent()</a>, <a class="el" href="dbus-connection_8c-source.html#l00447">_dbus_connection_queue_received_message_link()</a>, <a class="el" href="dbus-pending-call_8c-source.html#l00154">_dbus_pending_call_set_reply_unlocked()</a>, <a class="el" href="dbus-connection_8c-source.html#l04220">dbus_connection_dispatch()</a>, <a class="el" href="dbus-connection_8c-source.html#l02982">dbus_connection_send_preallocated()</a>, <a class="el" href="dbus-message_8c-source.html#l03116">dbus_message_is_error()</a>, and <a class="el" href="dbus-message_8c-source.html#l03255">dbus_set_error_from_message()</a>.
</div>
</div><p>
<a class="anchor" name="gd048df7b9bb1ec72a3a289dc2a1ee968"></a><!-- doxytag: member="dbus-message.c::dbus_message_has_destination" ref="gd048df7b9bb1ec72a3a289dc2a1ee968" args="(DBusMessage *message, const char *name)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_has_destination </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>name</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Checks whether the message was sent to the given name.
<p>
If the message has no destination specified or has a different destination, returns <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>the name to check (must not be <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the message has the given destination name </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03149">3149</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l02909">dbus_message_get_destination()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="gfc99645ba3dfb1e8b231d5ec3ed77fa1"></a><!-- doxytag: member="dbus-message.c::dbus_message_has_interface" ref="gfc99645ba3dfb1e8b231d5ec3ed77fa1" args="(DBusMessage *message, const char *interface)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_has_interface </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>interface</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Checks if the message has an interface.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>interface</em> </td><td>the interface name </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the interface field in the header matches </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l02708">2708</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l02686">dbus_message_get_interface()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g5641f9abfc624a8d18a270d28b875443"></a><!-- doxytag: member="dbus-message.c::dbus_message_has_member" ref="g5641f9abfc624a8d18a270d28b875443" args="(DBusMessage *message, const char *member)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_has_member </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>member</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Checks if the message has an interface member.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>member</em> </td><td>the member name </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if there is a member field in the header </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l02794">2794</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l02772">dbus_message_get_member()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g15c844ad4190adbae2ac80f088af1b36"></a><!-- doxytag: member="dbus-message.c::dbus_message_has_path" ref="g15c844ad4190adbae2ac80f088af1b36" args="(DBusMessage *message, const char *path)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_has_path </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>path</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Checks if the message has a particular object path.
<p>
The object path is the destination object for a method call or the emitting object for a signal.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>path</em> </td><td>the path name </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if there is a path field in the header </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l02579">2579</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l02555">dbus_message_get_path()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g2b5f88f322230bed0f94695b802b7a4e"></a><!-- doxytag: member="dbus-message.c::dbus_message_has_sender" ref="g2b5f88f322230bed0f94695b802b7a4e" args="(DBusMessage *message, const char *name)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_has_sender </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>name</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Checks whether the message has the given unique name as its sender.
<p>
If the message has no sender specified or has a different sender, returns <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>. Note that a peer application will always have the unique name of the connection as the sender. So you can't use this function to see whether a sender owned a well-known name.<p>
Messages from the bus itself will have <a class="el" href="group__DBusShared.html#g9e017e829e575bdc5c554fd4d07d7355">DBUS_SERVICE_DBUS</a> as the sender.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>the name to check (must not be <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the message has the given sender </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03184">3184</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l02969">dbus_message_get_sender()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g1259ec02737317f47efad01d159f8643"></a><!-- doxytag: member="dbus-message.c::dbus_message_has_signature" ref="g1259ec02737317f47efad01d159f8643" args="(DBusMessage *message, const char *signature)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_has_signature </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>signature</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Checks whether the message has the given signature; see <a class="el" href="group__DBusMessage.html#g7ee1a53a1aa27764b6088179d8f5ec86">dbus_message_get_signature()</a> for more details on what the signature looks like.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>signature</em> </td><td>typecode array </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if message has the given signature </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03213">3213</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l03002">dbus_message_get_signature()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g809a628a76726414c6d693f04c3d3792"></a><!-- doxytag: member="dbus-message.c::dbus_message_is_error" ref="g809a628a76726414c6d693f04c3d3792" args="(DBusMessage *message, const char *error_name)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_is_error </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>error_name</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Checks whether the message is an error reply with the given error name.
<p>
If the message is not <a class="el" href="group__DBusProtocol.html#g2b9423d95066313d73eeea8eeaf86812">DBUS_MESSAGE_TYPE_ERROR</a>, or has a different name, returns <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error_name</em> </td><td>the name to check (must not be <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the message is the specified error </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03116">3116</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l02856">dbus_message_get_error_name()</a>, <a class="el" href="dbus-message_8c-source.html#l01417">dbus_message_get_type()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00226">DBUS_MESSAGE_TYPE_ERROR</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="gcc67b43672cf42042d28b9ee9236cf9b"></a><!-- doxytag: member="dbus-message.c::dbus_message_is_method_call" ref="gcc67b43672cf42042d28b9ee9236cf9b" args="(DBusMessage *message, const char *interface, const char *method)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_is_method_call </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>interface</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>method</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Checks whether the message is a method call with the given interface and member fields.
<p>
If the message is not <a class="el" href="group__DBusProtocol.html#g09416afd76b65139eddd31e1085d9ebf">DBUS_MESSAGE_TYPE_METHOD_CALL</a>, or has a different interface or member field, returns <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>. If the interface field is missing, then it will be assumed equal to the provided interface. The D-Bus protocol allows method callers to leave out the interface name.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>interface</em> </td><td>the name to check (must not be <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) </td></tr>
<tr><td valign="top"></td><td valign="top"><em>method</em> </td><td>the name to check (must not be <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the message is the specified method call </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03061">3061</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-protocol_8h-source.html#l00222">DBUS_MESSAGE_TYPE_METHOD_CALL</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="gf35ecf35c463650dad01fa33f6300fac"></a><!-- doxytag: member="dbus-message.c::dbus_message_is_signal" ref="gf35ecf35c463650dad01fa33f6300fac" args="(DBusMessage *message, const char *interface, const char *signal_name)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_is_signal </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>interface</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>signal_name</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Checks whether the message is a signal with the given interface and member fields.
<p>
If the message is not <a class="el" href="group__DBusProtocol.html#g728d893ff0c00e126517ba39835220a5">DBUS_MESSAGE_TYPE_SIGNAL</a>, or has a different interface or member field, returns <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>interface</em> </td><td>the name to check (must not be <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) </td></tr>
<tr><td valign="top"></td><td valign="top"><em>signal_name</em> </td><td>the name to check (must not be <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the message is the specified signal </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03089">3089</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-protocol_8h-source.html#l00228">DBUS_MESSAGE_TYPE_SIGNAL</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="g65eaa4a195e6c77ccfb1bf522fe3ab2e"></a><!-- doxytag: member="dbus-message.c::dbus_message_iter_append_basic" ref="g65eaa4a195e6c77ccfb1bf522fe3ab2e" args="(DBusMessageIter *iter, int type, const void *value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_iter_append_basic </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> * </td>
<td class="paramname"> <em>iter</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const void * </td>
<td class="paramname"> <em>value</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Appends a basic-typed value to the message.
<p>
The basic types are the non-container types such as integer and string.<p>
The "value" argument should be the address of a basic-typed value. So for string, const char**. For integer, dbus_int32_t*.<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000033">Todo:</a></b></dt><dd>If this fails due to lack of memory, the message is hosed and you have to start over building the whole message.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>iter</em> </td><td>the append iterator </td></tr>
<tr><td valign="top"></td><td valign="top"><em>type</em> </td><td>the type of the value </td></tr>
<tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>the address of the value </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l02232">2232</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-recursive_8c-source.html#l02293">_dbus_type_writer_write_basic()</a>, <a class="el" href="dbus-signature_8c-source.html#l00306">dbus_type_is_basic()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l01514">dbus_message_append_args_valist()</a>, and <a class="el" href="dbus-message_8c-source.html#l01197">dbus_message_new_error()</a>.
</div>
</div><p>
<a class="anchor" name="g4f172ebd964e0f698f63295a9eccf520"></a><!-- doxytag: member="dbus-message.c::dbus_message_iter_append_fixed_array" ref="g4f172ebd964e0f698f63295a9eccf520" args="(DBusMessageIter *iter, int element_type, const void *value, int n_elements)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_iter_append_fixed_array </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> * </td>
<td class="paramname"> <em>iter</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>element_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const void * </td>
<td class="paramname"> <em>value</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>n_elements</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Appends a block of fixed-length values to an array.
<p>
The fixed-length types are all basic types that are not string-like. So int32, double, bool, etc. You must call <a class="el" href="group__DBusMessage.html#gde4dacfedb6a33c8a2ab6fc2db3cf665">dbus_message_iter_open_container()</a> to open an array of values before calling this function. You may call this function multiple times (and intermixed with calls to <a class="el" href="group__DBusMessage.html#g65eaa4a195e6c77ccfb1bf522fe3ab2e">dbus_message_iter_append_basic()</a>) for the same array.<p>
The "value" argument should be the address of the array. So for integer, "dbus_int32_t**" is expected for example.<p>
<dl compact><dt><b>Warning:</b></dt><dd>in C, given "int array[]", "&array == array" (the comp.lang.c FAQ says otherwise, but gcc and the FAQ don't agree). So if you're using an array instead of a pointer you have to create a pointer variable, assign the array to it, then take the address of the pointer variable. <div class="fragment"><pre class="fragment"> <span class="keyword">const</span> <a class="code" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> array[] = { 1, 2, 3 };
<span class="keyword">const</span> <a class="code" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> *v_ARRAY = array;
<span class="keywordflow">if</span> (!<a class="code" href="group__DBusMessage.html#g4f172ebd964e0f698f63295a9eccf520">dbus_message_iter_append_fixed_array</a> (&iter, <a class="code" href="group__DBusProtocol.html#g5943b497db2e1dec04fae60584a294bb">DBUS_TYPE_INT32</a>, &v_ARRAY, 3))
fprintf (stderr, <span class="stringliteral">"No memory!\n"</span>);
</pre></div> For strings it works to write const char *array = "Hello" and then use &array though.</dd></dl>
<dl compact><dt><b><a class="el" href="todo.html#_todo000034">Todo:</a></b></dt><dd>If this fails due to lack of memory, the message is hosed and you have to start over building the whole message.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>iter</em> </td><td>the append iterator </td></tr>
<tr><td valign="top"></td><td valign="top"><em>element_type</em> </td><td>the type of the array elements </td></tr>
<tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>the address of the array </td></tr>
<tr><td valign="top"></td><td valign="top"><em>n_elements</em> </td><td>the number of elements to append </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l02291">2291</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-basic_8c-source.html#l01175">_dbus_type_get_alignment()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l02341">_dbus_type_writer_write_fixed_multi()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00199">DBUS_MAXIMUM_ARRAY_LENGTH</a>, <a class="el" href="dbus-protocol_8h-source.html#l00116">DBUS_TYPE_ARRAY</a>, <a class="el" href="dbus-signature_8c-source.html#l00335">dbus_type_is_fixed()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l01514">dbus_message_append_args_valist()</a>.
</div>
</div><p>
<a class="anchor" name="geae534bd1e513d527c9650f9c884e1d5"></a><!-- doxytag: member="dbus-message.c::dbus_message_iter_close_container" ref="geae534bd1e513d527c9650f9c884e1d5" args="(DBusMessageIter *iter, DBusMessageIter *sub)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_iter_close_container </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> * </td>
<td class="paramname"> <em>iter</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> * </td>
<td class="paramname"> <em>sub</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Closes a container-typed value appended to the message; may write out more information to the message known only after the entire container is written, and may free resources created by <a class="el" href="group__DBusMessage.html#gde4dacfedb6a33c8a2ab6fc2db3cf665">dbus_message_iter_open_container()</a>.
<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000036">Todo:</a></b></dt><dd>If this fails due to lack of memory, the message is hosed and you have to start over building the whole message.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>iter</em> </td><td>the append iterator </td></tr>
<tr><td valign="top"></td><td valign="top"><em>sub</em> </td><td>sub-iterator to close </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l02405">2405</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-recursive_8c-source.html#l02161">_dbus_type_writer_unrecurse()</a>, and <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l01514">dbus_message_append_args_valist()</a>.
</div>
</div><p>
<a class="anchor" name="g72703026e43a44ed341ff58ef03c6a4f"></a><!-- doxytag: member="dbus-message.c::dbus_message_iter_get_arg_type" ref="g72703026e43a44ed341ff58ef03c6a4f" args="(DBusMessageIter *iter)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int dbus_message_iter_get_arg_type </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> * </td>
<td class="paramname"> <em>iter</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns the argument type of the argument that the message iterator points to.
<p>
If the iterator is at the end of the message, returns <a class="el" href="group__DBusProtocol.html#ga9588da889743b2119dc6664712ae51e">DBUS_TYPE_INVALID</a>. You can thus write a loop as follows:<p>
<div class="fragment"><pre class="fragment"> <a class="code" href="group__DBusMessage.html#g974a0f898df186afc6b61c976b4d84b5">dbus_message_iter_init</a> (&iter);
<span class="keywordflow">while</span> ((current_type = <a class="code" href="group__DBusMessage.html#g72703026e43a44ed341ff58ef03c6a4f">dbus_message_iter_get_arg_type</a> (&iter)) != <a class="code" href="group__DBusProtocol.html#ga9588da889743b2119dc6664712ae51e">DBUS_TYPE_INVALID</a>)
<a class="code" href="group__DBusMessage.html#g3995194302ab3c81e2e058796a62b9ab">dbus_message_iter_next</a> (&iter);
</pre></div><p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>iter</em> </td><td>the message iter </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the argument type </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l01817">1817</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-recursive_8c-source.html#l00770">_dbus_type_reader_get_current_type()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00060">DBUS_TYPE_INVALID</a>, and <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l00641">_dbus_message_iter_get_args_valist()</a>, and <a class="el" href="dbus-message_8c-source.html#l01836">dbus_message_iter_get_element_type()</a>.
</div>
</div><p>
<a class="anchor" name="gf7b41787068f957d0914c492635b1235"></a><!-- doxytag: member="dbus-message.c::dbus_message_iter_get_array_len" ref="gf7b41787068f957d0914c492635b1235" args="(DBusMessageIter *iter)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">DBUS_DEPRECATED int dbus_message_iter_get_array_len </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> * </td>
<td class="paramname"> <em>iter</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns the number of bytes in the array as marshaled in the wire protocol.
<p>
The iterator must currently be inside an array-typed value.<p>
This function is deprecated on the grounds that it is stupid. Why would you want to know how many bytes are in the array as marshaled in the wire protocol? For now, use the n_elements returned from <a class="el" href="group__DBusMessage.html#gae8493b610544a9c155fdeab63a8e102">dbus_message_iter_get_fixed_array()</a> instead, or iterate over the array values and count them.<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000031">Todo:</a></b></dt><dd>introduce a variant of this get_n_elements that returns the number of elements, though with a non-fixed array it will not be very efficient, so maybe it's not good.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>iter</em> </td><td>the iterator </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the number of bytes in the array </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l01995">1995</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-recursive_8c-source.html#l00884">_dbus_type_reader_get_array_length()</a>.
</div>
</div><p>
<a class="anchor" name="g4b250c5093870ca2b74958d73f996fe4"></a><!-- doxytag: member="dbus-message.c::dbus_message_iter_get_basic" ref="g4b250c5093870ca2b74958d73f996fe4" args="(DBusMessageIter *iter, void *value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void dbus_message_iter_get_basic </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> * </td>
<td class="paramname"> <em>iter</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void * </td>
<td class="paramname"> <em>value</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Reads a basic-typed value from the message iterator.
<p>
Basic types are the non-containers such as integer and string.<p>
The value argument should be the address of a location to store the returned value. So for int32 it should be a "dbus_int32_t*" and for string a "const char**". The returned value is by reference and should not be freed.<p>
Be sure you have somehow checked that <a class="el" href="group__DBusMessage.html#g72703026e43a44ed341ff58ef03c6a4f">dbus_message_iter_get_arg_type()</a> matches the type you are expecting, or you'll crash when you try to use an integer as a string or something.<p>
To read any container type (array, struct, dict) you will need to recurse into the container with <a class="el" href="group__DBusMessage.html#gb4d9f88a33467735ad8b466f97dca16d">dbus_message_iter_recurse()</a>. If the container is an array of fixed-length values, you can get all the array elements at once with <a class="el" href="group__DBusMessage.html#gae8493b610544a9c155fdeab63a8e102">dbus_message_iter_get_fixed_array()</a>. Otherwise, you have to iterate over the container's contents one value at a time.<p>
All basic-typed values are guaranteed to fit in 8 bytes. So you can write code like this:<p>
<div class="fragment"><pre class="fragment"> <a class="code" href="group__DBusTypes.html#g0a7c275002dbafa34536a76db079a950">dbus_uint64_t</a> value;
<span class="keywordtype">int</span> type;
<a class="code" href="group__DBusMessage.html#g4b250c5093870ca2b74958d73f996fe4">dbus_message_iter_get_basic</a> (&read_iter, &value);
type = <a class="code" href="group__DBusMessage.html#g72703026e43a44ed341ff58ef03c6a4f">dbus_message_iter_get_arg_type</a> (&read_iter);
<a class="code" href="group__DBusMessage.html#g65eaa4a195e6c77ccfb1bf522fe3ab2e">dbus_message_iter_append_basic</a> (&write_iter, type, &value);
</pre></div><p>
On some really obscure platforms dbus_uint64_t might not exist, if you need to worry about this you will know. dbus_uint64_t is just one example of a type that's large enough to hold any possible value, you could use a struct or char[8] instead if you like.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>iter</em> </td><td>the iterator </td></tr>
<tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>location to store the value </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l01964">1964</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-recursive_8c-source.html#l00854">_dbus_type_reader_read_basic()</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="g48b97dced0e9d7f9794337cad953b30d"></a><!-- doxytag: member="dbus-message.c::dbus_message_iter_get_element_type" ref="g48b97dced0e9d7f9794337cad953b30d" args="(DBusMessageIter *iter)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int dbus_message_iter_get_element_type </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> * </td>
<td class="paramname"> <em>iter</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns the element type of the array that the message iterator points to.
<p>
Note that you need to check that the iterator points to an array prior to using this function.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>iter</em> </td><td>the message iter </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the array element type </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l01836">1836</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-recursive_8c-source.html#l00805">_dbus_type_reader_get_element_type()</a>, <a class="el" href="dbus-message_8c-source.html#l01817">dbus_message_iter_get_arg_type()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00116">DBUS_TYPE_ARRAY</a>, and <a class="el" href="dbus-protocol_8h-source.html#l00060">DBUS_TYPE_INVALID</a>.
</div>
</div><p>
<a class="anchor" name="gae8493b610544a9c155fdeab63a8e102"></a><!-- doxytag: member="dbus-message.c::dbus_message_iter_get_fixed_array" ref="gae8493b610544a9c155fdeab63a8e102" args="(DBusMessageIter *iter, void *value, int *n_elements)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void dbus_message_iter_get_fixed_array </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> * </td>
<td class="paramname"> <em>iter</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void * </td>
<td class="paramname"> <em>value</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int * </td>
<td class="paramname"> <em>n_elements</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Reads a block of fixed-length values from the message iterator.
<p>
Fixed-length values are those basic types that are not string-like, such as integers, bool, double. The returned block will be from the current position in the array until the end of the array.<p>
The message iter should be "in" the array (that is, you recurse into the array, and then you call <a class="el" href="group__DBusMessage.html#gae8493b610544a9c155fdeab63a8e102">dbus_message_iter_get_fixed_array()</a> on the "sub-iterator" created by <a class="el" href="group__DBusMessage.html#gb4d9f88a33467735ad8b466f97dca16d">dbus_message_iter_recurse()</a>).<p>
The value argument should be the address of a location to store the returned array. So for int32 it should be a "const dbus_int32_t**" The returned value is by reference and should not be freed.<p>
This function should only be used if <a class="el" href="group__DBusSignature.html#g435ffc74ae015cc193175f5b864872bc">dbus_type_is_fixed()</a> returns <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> for the element type.<p>
If an array's elements are not fixed in size, you have to recurse into the array with <a class="el" href="group__DBusMessage.html#gb4d9f88a33467735ad8b466f97dca16d">dbus_message_iter_recurse()</a> and read the elements one by one.<p>
Because the array is not copied, this function runs in constant time and is fast; it's much preferred over walking the entire array with an iterator. (However, you can always use <a class="el" href="group__DBusMessage.html#gb4d9f88a33467735ad8b466f97dca16d">dbus_message_iter_recurse()</a>, even for fixed-length types; <a class="el" href="group__DBusMessage.html#gae8493b610544a9c155fdeab63a8e102">dbus_message_iter_get_fixed_array()</a> is just an optimization.)<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>iter</em> </td><td>the iterator </td></tr>
<tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>location to store the block </td></tr>
<tr><td valign="top"></td><td valign="top"><em>n_elements</em> </td><td>number of elements in the block </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l02036">2036</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-recursive_8c-source.html#l00770">_dbus_type_reader_get_current_type()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00908">_dbus_type_reader_read_fixed_multi()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00060">DBUS_TYPE_INVALID</a>, <a class="el" href="dbus-signature_8c-source.html#l00335">dbus_type_is_fixed()</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-message_8c-source.html#l00080">DBusMessageRealIter::reader</a>, and <a class="el" href="structDBusMessageRealIter.html#c9c3ce5775bc9f5f0720b65093345ec6">DBusMessageRealIter::u</a>.
</div>
</div><p>
<a class="anchor" name="gaa7e45dbfa7e722ec2337cb3e070e491"></a><!-- doxytag: member="dbus-message.c::dbus_message_iter_get_signature" ref="gaa7e45dbfa7e722ec2337cb3e070e491" args="(DBusMessageIter *iter)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char * dbus_message_iter_get_signature </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> * </td>
<td class="paramname"> <em>iter</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns the current signature of a message iterator.
<p>
This is useful primarily for dealing with variants; one can recurse into a variant and determine the signature of the variant's value.<p>
The returned string must be freed with <a class="el" href="group__DBusMemory.html#g488c6b08cc8c1ddf0203243c4b27a13c">dbus_free()</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>iter</em> </td><td>the message iterator </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the contained signature, or NULL if out of memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l01898">1898</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l01253">_dbus_string_append_len()</a>, <a class="el" href="dbus-string_8c-source.html#l00262">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c-source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-string_8c-source.html#l00608">_dbus_string_steal_data()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l01107">_dbus_type_reader_get_signature()</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="ge64e076a12dbf61e3806b90ece202031"></a><!-- doxytag: member="dbus-message.c::dbus_message_iter_has_next" ref="ge64e076a12dbf61e3806b90ece202031" args="(DBusMessageIter *iter)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_iter_has_next </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> * </td>
<td class="paramname"> <em>iter</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Checks if an iterator has any more fields.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>iter</em> </td><td>the message iter </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if there are more fields following </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l01773">1773</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-recursive_8c-source.html#l01076">_dbus_type_reader_has_next()</a>, and <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>.
</div>
</div><p>
<a class="anchor" name="g974a0f898df186afc6b61c976b4d84b5"></a><!-- doxytag: member="dbus-message.c::dbus_message_iter_init" ref="g974a0f898df186afc6b61c976b4d84b5" args="(DBusMessage *message, DBusMessageIter *iter)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_iter_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> * </td>
<td class="paramname"> <em>iter</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Initializes a <a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> for reading the arguments of the message passed in.
<p>
When possible, <a class="el" href="group__DBusMessage.html#gaa5e339a728a7baa786e6c30e3b840b7">dbus_message_get_args()</a> is much more convenient. Some types of argument can only be read with <a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> however.<p>
The easiest way to iterate is like this: <div class="fragment"><pre class="fragment"> <a class="code" href="group__DBusMessage.html#g974a0f898df186afc6b61c976b4d84b5">dbus_message_iter_init</a> (&iter);
<span class="keywordflow">while</span> ((current_type = <a class="code" href="group__DBusMessage.html#g72703026e43a44ed341ff58ef03c6a4f">dbus_message_iter_get_arg_type</a> (&iter)) != <a class="code" href="group__DBusProtocol.html#ga9588da889743b2119dc6664712ae51e">DBUS_TYPE_INVALID</a>)
<a class="code" href="group__DBusMessage.html#g3995194302ab3c81e2e058796a62b9ab">dbus_message_iter_next</a> (&iter);
</pre></div><p>
<a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> contains no allocated memory; it need not be freed, and can be copied by assignment or memcpy().<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>iter</em> </td><td>pointer to an iterator to initialize </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if the message has no arguments </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l01742">1742</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-recursive_8c-source.html#l00770">_dbus_type_reader_get_current_type()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00717">_dbus_type_reader_init()</a>, <a class="el" href="dbus-message-private_8h-source.html#l00094">body</a>, <a class="el" href="dbus-message-private_8h-source.html#l00096">byte_order</a>, <a class="el" href="dbus-protocol_8h-source.html#l00060">DBUS_TYPE_INVALID</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h-source.html#l00092">header</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-message_8c-source.html#l00080">DBusMessageRealIter::reader</a>, and <a class="el" href="structDBusMessageRealIter.html#c9c3ce5775bc9f5f0720b65093345ec6">DBusMessageRealIter::u</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l01687">dbus_message_get_args_valist()</a>.
</div>
</div><p>
<a class="anchor" name="g46f26e9d5553b739c7fa0a702f174917"></a><!-- doxytag: member="dbus-message.c::dbus_message_iter_init_append" ref="g46f26e9d5553b739c7fa0a702f174917" args="(DBusMessage *message, DBusMessageIter *iter)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void dbus_message_iter_init_append </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> * </td>
<td class="paramname"> <em>iter</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Initializes a <a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> for appending arguments to the end of a message.
<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000032">Todo:</a></b></dt><dd>If appending any of the arguments fails due to lack of memory, the message is hosed and you have to start over building the whole message.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>iter</em> </td><td>pointer to an iterator to initialize </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l02064">2064</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-recursive_8c-source.html#l01510">_dbus_type_writer_init_types_delayed()</a>, <a class="el" href="dbus-message-private_8h-source.html#l00094">body</a>, <a class="el" href="dbus-message-private_8h-source.html#l00096">byte_order</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="structDBusMessageRealIter.html#c9c3ce5775bc9f5f0720b65093345ec6">DBusMessageRealIter::u</a>, and <a class="el" href="dbus-message_8c-source.html#l00079">DBusMessageRealIter::writer</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l01514">dbus_message_append_args_valist()</a>, and <a class="el" href="dbus-message_8c-source.html#l01197">dbus_message_new_error()</a>.
</div>
</div><p>
<a class="anchor" name="g3995194302ab3c81e2e058796a62b9ab"></a><!-- doxytag: member="dbus-message.c::dbus_message_iter_next" ref="g3995194302ab3c81e2e058796a62b9ab" args="(DBusMessageIter *iter)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_iter_next </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> * </td>
<td class="paramname"> <em>iter</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Moves the iterator to the next field, if any.
<p>
If there's no next field, returns <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>. If the iterator moves forward, returns <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>iter</em> </td><td>the message iter </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the iterator was moved to the next field </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l01792">1792</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-recursive_8c-source.html#l01036">_dbus_type_reader_next()</a>, and <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>.
</div>
</div><p>
<a class="anchor" name="gde4dacfedb6a33c8a2ab6fc2db3cf665"></a><!-- doxytag: member="dbus-message.c::dbus_message_iter_open_container" ref="gde4dacfedb6a33c8a2ab6fc2db3cf665" args="(DBusMessageIter *iter, int type, const char *contained_signature, DBusMessageIter *sub)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_iter_open_container </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> * </td>
<td class="paramname"> <em>iter</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>contained_signature</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> * </td>
<td class="paramname"> <em>sub</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Appends a container-typed value to the message; you are required to append the contents of the container using the returned sub-iterator, and then call <a class="el" href="group__DBusMessage.html#geae534bd1e513d527c9650f9c884e1d5">dbus_message_iter_close_container()</a>.
<p>
Container types are for example struct, variant, and array. For variants, the contained_signature should be the type of the single value inside the variant. For structs and dict entries, contained_signature should be <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>; it will be set to whatever types you write into the struct. For arrays, contained_signature should be the type of the array elements.<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000035">Todo:</a></b></dt><dd>If this fails due to lack of memory, the message is hosed and you have to start over building the whole message.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>iter</em> </td><td>the append iterator </td></tr>
<tr><td valign="top"></td><td valign="top"><em>type</em> </td><td>the type of the value </td></tr>
<tr><td valign="top"></td><td valign="top"><em>contained_signature</em> </td><td>the type of container contents </td></tr>
<tr><td valign="top"></td><td valign="top"><em>sub</em> </td><td>sub-iterator to initialize </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l02336">2336</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l00209">_dbus_string_init_const()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l02091">_dbus_type_writer_recurse()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00160">DBUS_DICT_ENTRY_BEGIN_CHAR</a>, <a class="el" href="dbus-protocol_8h-source.html#l00116">DBUS_TYPE_ARRAY</a>, <a class="el" href="dbus-protocol_8h-source.html#l00139">DBUS_TYPE_DICT_ENTRY</a>, <a class="el" href="dbus-signature_8c-source.html#l00284">dbus_type_is_container()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00132">DBUS_TYPE_STRUCT</a>, <a class="el" href="dbus-protocol_8h-source.html#l00120">DBUS_TYPE_VARIANT</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="structDBusMessageRealIter.html#c9c3ce5775bc9f5f0720b65093345ec6">DBusMessageRealIter::u</a>, and <a class="el" href="dbus-message_8c-source.html#l00079">DBusMessageRealIter::writer</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l01514">dbus_message_append_args_valist()</a>.
</div>
</div><p>
<a class="anchor" name="gb4d9f88a33467735ad8b466f97dca16d"></a><!-- doxytag: member="dbus-message.c::dbus_message_iter_recurse" ref="gb4d9f88a33467735ad8b466f97dca16d" args="(DBusMessageIter *iter, DBusMessageIter *sub)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void dbus_message_iter_recurse </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> * </td>
<td class="paramname"> <em>iter</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> * </td>
<td class="paramname"> <em>sub</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Recurses into a container value when reading values from a message, initializing a sub-iterator to use for traversing the child values of the container.
<p>
Note that this recurses into a value, not a type, so you can only recurse if the value exists. The main implication of this is that if you have for example an empty array of array of int32, you can recurse into the outermost array, but it will have no values, so you won't be able to recurse further. There's no array of int32 to recurse into.<p>
If a container is an array of fixed-length types, it is much more efficient to use <a class="el" href="group__DBusMessage.html#gae8493b610544a9c155fdeab63a8e102">dbus_message_iter_get_fixed_array()</a> to get the whole array in one shot, rather than individually walking over the array elements.<p>
Be sure you have somehow checked that <a class="el" href="group__DBusMessage.html#g72703026e43a44ed341ff58ef03c6a4f">dbus_message_iter_get_arg_type()</a> matches the type you are expecting to recurse into. Results of this function are undefined if there is no container to recurse into at the current iterator position.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>iter</em> </td><td>the message iterator </td></tr>
<tr><td valign="top"></td><td valign="top"><em>sub</em> </td><td>the sub-iterator to initialize </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l01873">1873</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-recursive_8c-source.html#l00973">_dbus_type_reader_recurse()</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-message_8c-source.html#l00080">DBusMessageRealIter::reader</a>, and <a class="el" href="structDBusMessageRealIter.html#c9c3ce5775bc9f5f0720b65093345ec6">DBusMessageRealIter::u</a>.
</div>
</div><p>
<a class="anchor" name="gd85c737f9e7d03005d6028d6bbae7e87"></a><!-- doxytag: member="dbus-message.h::dbus_message_marshal" ref="gd85c737f9e7d03005d6028d6bbae7e87" args="(DBusMessage *msg, char **marshalled_data_p, int *len_p)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_marshal </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>msg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char ** </td>
<td class="paramname"> <em>marshalled_data_p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int * </td>
<td class="paramname"> <em>len_p</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Turn a <a class="el" href="structDBusMessage.html">DBusMessage</a> into the marshalled form as described in the D-Bus specification.
<p>
Generally, this function is only useful for encapsulating D-Bus messages in a different protocol.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>msg</em> </td><td>the <a class="el" href="structDBusMessage.html">DBusMessage</a> </td></tr>
<tr><td valign="top"></td><td valign="top"><em>marshalled_data_p</em> </td><td>the location to save the marshalled form to </td></tr>
<tr><td valign="top"></td><td valign="top"><em>len_p</em> </td><td>the location to save the length of the marshalled form to </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if there was not enough memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03932">3932</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l01472">_dbus_string_copy()</a>, <a class="el" href="dbus-string_8c-source.html#l00262">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c-source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-string_8c-source.html#l00608">_dbus_string_steal_data()</a>, <a class="el" href="dbus-message-private_8h-source.html#l00094">body</a>, <a class="el" href="dbus-marshal-header_8h-source.html#l00054">DBusHeader::data</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h-source.html#l00092">header</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g4b4e9fad4eb4ceda24488ab67d9f34b0"></a><!-- doxytag: member="dbus-message.c::dbus_message_new" ref="g4b4e9fad4eb4ceda24488ab67d9f34b0" args="(int message_type)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusMessage.html">DBusMessage</a> * dbus_message_new </td>
<td>(</td>
<td class="paramtype">int </td>
<td class="paramname"> <em>message_type</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Constructs a new message of the given message type.
<p>
Types include <a class="el" href="group__DBusProtocol.html#g09416afd76b65139eddd31e1085d9ebf">DBUS_MESSAGE_TYPE_METHOD_CALL</a>, <a class="el" href="group__DBusProtocol.html#g728d893ff0c00e126517ba39835220a5">DBUS_MESSAGE_TYPE_SIGNAL</a>, and so forth.<p>
Usually you want to use <a class="el" href="group__DBusMessage.html#g1989f2ba4a7ec15fc0ac3c308310a180">dbus_message_new_method_call()</a>, <a class="el" href="group__DBusMessage.html#gcd04d0109686b8c0d8c1416aa62dee05">dbus_message_new_method_return()</a>, <a class="el" href="group__DBusMessage.html#g9b9306115efd0fd720fc9b912f108bca">dbus_message_new_signal()</a>, or <a class="el" href="group__DBusMessage.html#g4b650525068ff3af73d22f803e70f494">dbus_message_new_error()</a> instead.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message_type</em> </td><td>type of message </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>new message or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if no memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l01020">1020</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-header_8c-source.html#l00514">_dbus_header_create()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00220">DBUS_MESSAGE_TYPE_INVALID</a>, <a class="el" href="dbus-message_8c-source.html#l01387">dbus_message_unref()</a>, <a class="el" href="dbus-message-private_8h-source.html#l00092">header</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="g4b650525068ff3af73d22f803e70f494"></a><!-- doxytag: member="dbus-message.c::dbus_message_new_error" ref="g4b650525068ff3af73d22f803e70f494" args="(DBusMessage *reply_to, const char *error_name, const char *error_message)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusMessage.html">DBusMessage</a> * dbus_message_new_error </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>reply_to</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>error_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>error_message</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Creates a new message that is an error reply to another message.
<p>
Error replies are most common in response to method calls, but can be returned in reply to any message.<p>
The error name must be a valid error name according to the syntax given in the D-Bus specification. If you don't want to make up an error name just use <a class="el" href="group__DBusProtocol.html#gbb62fd6340d0787fbd56ff8dd2f326c7">DBUS_ERROR_FAILED</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>reply_to</em> </td><td>the message we're replying to </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error_name</em> </td><td>the error name </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error_message</em> </td><td>the error message string (or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> for none, but please give a message) </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>a new error message object, free with <a class="el" href="group__DBusMessage.html#g84f8b6931de993dc0ae8c69d63bdee29">dbus_message_unref()</a> </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l01197">1197</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-header_8c-source.html#l00514">_dbus_header_create()</a>, <a class="el" href="dbus-message_8c-source.html#l02969">dbus_message_get_sender()</a>, <a class="el" href="dbus-message_8c-source.html#l00876">dbus_message_get_serial()</a>, <a class="el" href="dbus-message_8c-source.html#l02232">dbus_message_iter_append_basic()</a>, <a class="el" href="dbus-message_8c-source.html#l02064">dbus_message_iter_init_append()</a>, <a class="el" href="dbus-message_8c-source.html#l02443">dbus_message_set_no_reply()</a>, <a class="el" href="dbus-message_8c-source.html#l00892">dbus_message_set_reply_serial()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00226">DBUS_MESSAGE_TYPE_ERROR</a>, <a class="el" href="dbus-message_8c-source.html#l01387">dbus_message_unref()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00102">DBUS_TYPE_STRING</a>, <a class="el" href="dbus-message-private_8h-source.html#l00092">header</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-pending-call_8c-source.html#l00336">_dbus_pending_call_set_timeout_error_unlocked()</a>, <a class="el" href="dbus-connection_8c-source.html#l04220">dbus_connection_dispatch()</a>, and <a class="el" href="dbus-message_8c-source.html#l01268">dbus_message_new_error_printf()</a>.
</div>
</div><p>
<a class="anchor" name="g9a992b09b92e7d98e6e70197735eb7db"></a><!-- doxytag: member="dbus-message.c::dbus_message_new_error_printf" ref="g9a992b09b92e7d98e6e70197735eb7db" args="(DBusMessage *reply_to, const char *error_name, const char *error_format,...)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusMessage.html">DBusMessage</a> * dbus_message_new_error_printf </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>reply_to</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>error_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>error_format</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"> </td>
<td class="paramname"> <em>...</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Creates a new message that is an error reply to another message, allowing you to use printf formatting.
<p>
See <a class="el" href="group__DBusMessage.html#g4b650525068ff3af73d22f803e70f494">dbus_message_new_error()</a> for details - this function is the same aside from the printf formatting.<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000026">Todo:</a></b></dt><dd>add _DBUS_GNUC_PRINTF to this (requires moving _DBUS_GNUC_PRINTF to public header, see DBUS_DEPRECATED for an example)</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>reply_to</em> </td><td>the original message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error_name</em> </td><td>the error name </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error_format</em> </td><td>the error message format as with printf </td></tr>
<tr><td valign="top"></td><td valign="top"><em>...</em> </td><td>format string arguments </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>a new error message </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l01268">1268</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l01192">_dbus_string_append_printf_valist()</a>, <a class="el" href="dbus-string_8c-source.html#l00262">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c-source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-message_8c-source.html#l01197">dbus_message_new_error()</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="g1989f2ba4a7ec15fc0ac3c308310a180"></a><!-- doxytag: member="dbus-message.c::dbus_message_new_method_call" ref="g1989f2ba4a7ec15fc0ac3c308310a180" args="(const char *destination, const char *path, const char *interface, const char *method)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusMessage.html">DBusMessage</a> * dbus_message_new_method_call </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>destination</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>interface</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>method</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Constructs a new message to invoke a method on a remote object.
<p>
Returns <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if memory can't be allocated for the message. The destination may be <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> in which case no destination is set; this is appropriate when using D-Bus in a peer-to-peer context (no message bus). The interface may be <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, which means that if multiple methods with the given name exist it is undefined which one will be invoked.<p>
The path and method names may not be <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.<p>
Destination, path, interface, and method name can't contain any invalid characters (see the D-Bus specification).<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>destination</em> </td><td>name that the message should be sent to or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </td></tr>
<tr><td valign="top"></td><td valign="top"><em>path</em> </td><td>object path the message should be sent to </td></tr>
<tr><td valign="top"></td><td valign="top"><em>interface</em> </td><td>interface to invoke method on, or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </td></tr>
<tr><td valign="top"></td><td valign="top"><em>method</em> </td><td>method to invoke</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>a new <a class="el" href="structDBusMessage.html">DBusMessage</a>, free with <a class="el" href="group__DBusMessage.html#g84f8b6931de993dc0ae8c69d63bdee29">dbus_message_unref()</a> </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l01063">1063</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-header_8c-source.html#l00514">_dbus_header_create()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00222">DBUS_MESSAGE_TYPE_METHOD_CALL</a>, <a class="el" href="dbus-message_8c-source.html#l01387">dbus_message_unref()</a>, <a class="el" href="dbus-message-private_8h-source.html#l00092">header</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-bus_8c-source.html#l01452">dbus_bus_add_match()</a>, <a class="el" href="dbus-bus_8c-source.html#l00887">dbus_bus_get_id()</a>, <a class="el" href="dbus-bus_8c-source.html#l00804">dbus_bus_get_unix_user()</a>, <a class="el" href="dbus-bus_8c-source.html#l01219">dbus_bus_name_has_owner()</a>, <a class="el" href="dbus-bus_8c-source.html#l00600">dbus_bus_register()</a>, <a class="el" href="dbus-bus_8c-source.html#l01137">dbus_bus_release_name()</a>, <a class="el" href="dbus-bus_8c-source.html#l01502">dbus_bus_remove_match()</a>, <a class="el" href="dbus-bus_8c-source.html#l01051">dbus_bus_request_name()</a>, and <a class="el" href="dbus-bus_8c-source.html#l01295">dbus_bus_start_service_by_name()</a>.
</div>
</div><p>
<a class="anchor" name="gcd04d0109686b8c0d8c1416aa62dee05"></a><!-- doxytag: member="dbus-message.c::dbus_message_new_method_return" ref="gcd04d0109686b8c0d8c1416aa62dee05" args="(DBusMessage *method_call)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusMessage.html">DBusMessage</a> * dbus_message_new_method_return </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>method_call</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Constructs a message that is a reply to a method call.
<p>
Returns <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if memory can't be allocated for the message.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>method_call</em> </td><td>the message being replied to </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>a new <a class="el" href="structDBusMessage.html">DBusMessage</a>, free with <a class="el" href="group__DBusMessage.html#g84f8b6931de993dc0ae8c69d63bdee29">dbus_message_unref()</a> </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l01102">1102</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-header_8c-source.html#l00514">_dbus_header_create()</a>, <a class="el" href="dbus-message_8c-source.html#l02969">dbus_message_get_sender()</a>, <a class="el" href="dbus-message_8c-source.html#l00876">dbus_message_get_serial()</a>, <a class="el" href="dbus-message_8c-source.html#l02443">dbus_message_set_no_reply()</a>, <a class="el" href="dbus-message_8c-source.html#l00892">dbus_message_set_reply_serial()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00224">DBUS_MESSAGE_TYPE_METHOD_RETURN</a>, <a class="el" href="dbus-message_8c-source.html#l01387">dbus_message_unref()</a>, <a class="el" href="dbus-message-private_8h-source.html#l00092">header</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g9b9306115efd0fd720fc9b912f108bca"></a><!-- doxytag: member="dbus-message.c::dbus_message_new_signal" ref="g9b9306115efd0fd720fc9b912f108bca" args="(const char *path, const char *interface, const char *name)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusMessage.html">DBusMessage</a> * dbus_message_new_signal </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>interface</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>name</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Constructs a new message representing a signal emission.
<p>
Returns <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if memory can't be allocated for the message. A signal is identified by its originating object path, interface, and the name of the signal.<p>
Path, interface, and signal name must all be valid (the D-Bus specification defines the syntax of these fields).<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>path</em> </td><td>the path to the object emitting the signal </td></tr>
<tr><td valign="top"></td><td valign="top"><em>interface</em> </td><td>the interface the signal is emitted from </td></tr>
<tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>name of the signal </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>a new <a class="el" href="structDBusMessage.html">DBusMessage</a>, free with <a class="el" href="group__DBusMessage.html#g84f8b6931de993dc0ae8c69d63bdee29">dbus_message_unref()</a> </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l01152">1152</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-header_8c-source.html#l00514">_dbus_header_create()</a>, <a class="el" href="dbus-message_8c-source.html#l02443">dbus_message_set_no_reply()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00228">DBUS_MESSAGE_TYPE_SIGNAL</a>, <a class="el" href="dbus-message_8c-source.html#l01387">dbus_message_unref()</a>, <a class="el" href="dbus-message-private_8h-source.html#l00092">header</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-connection_8c-source.html#l01163">_dbus_connection_new_for_transport()</a>.
</div>
</div><p>
<a class="anchor" name="g984ff98c7d031a9ea9e90ede2140d395"></a><!-- doxytag: member="dbus-message.c::dbus_message_ref" ref="g984ff98c7d031a9ea9e90ede2140d395" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusMessage.html">DBusMessage</a> * dbus_message_ref </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Increments the reference count of a <a class="el" href="structDBusMessage.html">DBusMessage</a>.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the message </dd></dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group__DBusMessage.html#g84f8b6931de993dc0ae8c69d63bdee29">dbus_message_unref</a> </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l01365">1365</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01769">_dbus_atomic_inc()</a>, <a class="el" href="dbus-memory_8c-source.html#l00687">_dbus_current_generation</a>, <a class="el" href="dbus-message-private_8h-source.html#l00112">generation</a>, <a class="el" href="dbus-message-private_8h-source.html#l00101">in_cache</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-message-private_8h-source.html#l00090">refcount</a>.
<p>
Referenced by <a class="el" href="dbus-pending-call_8c-source.html#l00154">_dbus_pending_call_set_reply_unlocked()</a>.
</div>
</div><p>
<a class="anchor" name="g4661483ba92680738ae2cdf6f21cbccf"></a><!-- doxytag: member="dbus-message.c::dbus_message_set_auto_start" ref="g4661483ba92680738ae2cdf6f21cbccf" args="(DBusMessage *message, dbus_bool_t auto_start)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void dbus_message_set_auto_start </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td>
<td class="paramname"> <em>auto_start</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets a flag indicating that an owner for the destination name will be automatically started before the message is delivered.
<p>
When this flag is set, the message is held until a name owner finishes starting up, or fails to start up. In case of failure, the reply will be an error.<p>
The flag is set to <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> by default, i.e. auto starting is the default.<p>
On the protocol level this toggles <a class="el" href="group__DBusProtocol.html#g8699fad5ce9ff93fe3f3471ba463dd40">DBUS_HEADER_FLAG_NO_AUTO_START</a><p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>auto_start</em> </td><td><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if auto-starting is desired </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l02485">2485</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-header_8c-source.html#l01423">_dbus_header_toggle_flag()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00242">DBUS_HEADER_FLAG_NO_AUTO_START</a>, <a class="el" href="dbus-message-private_8h-source.html#l00092">header</a>, <a class="el" href="dbus-message-private_8h-source.html#l00098">locked</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="g69d0bc701f9ca935e6de8a3f3e376c0a"></a><!-- doxytag: member="dbus-message.h::dbus_message_set_data" ref="g69d0bc701f9ca935e6de8a3f3e376c0a" args="(DBusMessage *message, dbus_int32_t slot, void *data, DBusFreeFunction free_data_func)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_set_data </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> </td>
<td class="paramname"> <em>slot</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void * </td>
<td class="paramname"> <em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusMemory.html#g8792ec2b2b8626ca28022faf51ec415a">DBusFreeFunction</a> </td>
<td class="paramname"> <em>free_data_func</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Stores a pointer on a <a class="el" href="structDBusMessage.html">DBusMessage</a>, along with an optional function to be used for freeing the data when the data is set again, or when the message is finalized.
<p>
The slot number must have been allocated with <a class="el" href="group__DBusMessageInternals.html#g537b3456202fdd9f305666504bde98fb">dbus_message_allocate_data_slot()</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>slot</em> </td><td>the slot number </td></tr>
<tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>the data to store </td></tr>
<tr><td valign="top"></td><td valign="top"><em>free_data_func</em> </td><td>finalizer function for the data </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if there was enough memory to store the data </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03810">3810</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-dataslot_8c-source.html#l00235">_dbus_data_slot_list_set()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-message-private_8h-source.html#l00109">slot_list</a>.
</div>
</div><p>
<a class="anchor" name="gdf72a8cd11d1cb1460c40433a233c8ef"></a><!-- doxytag: member="dbus-message.c::dbus_message_set_destination" ref="gdf72a8cd11d1cb1460c40433a233c8ef" args="(DBusMessage *message, const char *destination)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_set_destination </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>destination</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the message's destination.
<p>
The destination is the name of another connection on the bus and may be either the unique name assigned by the bus to each connection, or a well-known name specified in advance.<p>
The destination name must contain only valid characters as defined in the D-Bus specification.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>destination</em> </td><td>the destination name or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> to unset </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l02884">2884</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-protocol_8h-source.html#l00269">DBUS_HEADER_FIELD_DESTINATION</a>, <a class="el" href="dbus-protocol_8h-source.html#l00102">DBUS_TYPE_STRING</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h-source.html#l00098">locked</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="gc2adeb77803c00de2b2f1a824c30287f"></a><!-- doxytag: member="dbus-message.c::dbus_message_set_error_name" ref="gc2adeb77803c00de2b2f1a824c30287f" args="(DBusMessage *message, const char *error_name)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_set_error_name </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>error_name</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the name of the error (DBUS_MESSAGE_TYPE_ERROR).
<p>
The name is fully-qualified (namespaced).<p>
The error name must contain only valid characters as defined in the D-Bus specification.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error_name</em> </td><td>the name or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> to unset </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l02830">2830</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-protocol_8h-source.html#l00261">DBUS_HEADER_FIELD_ERROR_NAME</a>, <a class="el" href="dbus-protocol_8h-source.html#l00102">DBUS_TYPE_STRING</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h-source.html#l00098">locked</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="g119b1f7c80d5944dc9ba6a6463827d26"></a><!-- doxytag: member="dbus-message.c::dbus_message_set_interface" ref="g119b1f7c80d5944dc9ba6a6463827d26" args="(DBusMessage *message, const char *interface)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_set_interface </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>interface</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the interface this message is being sent to (for DBUS_MESSAGE_TYPE_METHOD_CALL) or the interface a signal is being emitted from (for DBUS_MESSAGE_TYPE_SIGNAL).
<p>
The interface name must contain only valid characters as defined in the D-Bus specification.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>interface</em> </td><td>the interface or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> to unset </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l02657">2657</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-protocol_8h-source.html#l00255">DBUS_HEADER_FIELD_INTERFACE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00102">DBUS_TYPE_STRING</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h-source.html#l00098">locked</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="gbfb965617a3d550f70713bc78cdcbb61"></a><!-- doxytag: member="dbus-message.c::dbus_message_set_member" ref="gbfb965617a3d550f70713bc78cdcbb61" args="(DBusMessage *message, const char *member)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_set_member </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>member</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the interface member being invoked (DBUS_MESSAGE_TYPE_METHOD_CALL) or emitted (DBUS_MESSAGE_TYPE_SIGNAL).
<p>
The member name must contain only valid characters as defined in the D-Bus specification.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>member</em> </td><td>the member or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> to unset </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l02745">2745</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-protocol_8h-source.html#l00257">DBUS_HEADER_FIELD_MEMBER</a>, <a class="el" href="dbus-protocol_8h-source.html#l00102">DBUS_TYPE_STRING</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h-source.html#l00098">locked</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="g3a94b84b3c3a5d37911dffca75b631aa"></a><!-- doxytag: member="dbus-message.c::dbus_message_set_no_reply" ref="g3a94b84b3c3a5d37911dffca75b631aa" args="(DBusMessage *message, dbus_bool_t no_reply)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void dbus_message_set_no_reply </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td>
<td class="paramname"> <em>no_reply</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets a flag indicating that the message does not want a reply; if this flag is set, the other end of the connection may (but is not required to) optimize by not sending method return or error replies.
<p>
If this flag is set, there is no way to know whether the message successfully arrived at the remote end. Normally you know a message was received when you receive the reply to it.<p>
The flag is <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> by default, that is by default the other end is required to reply.<p>
On the protocol level this toggles <a class="el" href="group__DBusProtocol.html#g0dcac038284250b3b0bff49cb4990626">DBUS_HEADER_FLAG_NO_REPLY_EXPECTED</a><p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>no_reply</em> </td><td><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if no reply is desired </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l02443">2443</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-header_8c-source.html#l01423">_dbus_header_toggle_flag()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00235">DBUS_HEADER_FLAG_NO_REPLY_EXPECTED</a>, <a class="el" href="dbus-message-private_8h-source.html#l00092">header</a>, <a class="el" href="dbus-message-private_8h-source.html#l00098">locked</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l01197">dbus_message_new_error()</a>, <a class="el" href="dbus-message_8c-source.html#l01102">dbus_message_new_method_return()</a>, and <a class="el" href="dbus-message_8c-source.html#l01152">dbus_message_new_signal()</a>.
</div>
</div><p>
<a class="anchor" name="g45528c050c738412a25abfe4aea3233e"></a><!-- doxytag: member="dbus-message.c::dbus_message_set_path" ref="g45528c050c738412a25abfe4aea3233e" args="(DBusMessage *message, const char *object_path)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_set_path </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>object_path</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the object path this message is being sent to (for DBUS_MESSAGE_TYPE_METHOD_CALL) or the one a signal is being emitted from (for DBUS_MESSAGE_TYPE_SIGNAL).
<p>
The path must contain only valid characters as defined in the D-Bus specification.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>object_path</em> </td><td>the path or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> to unset </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l02526">2526</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-protocol_8h-source.html#l00251">DBUS_HEADER_FIELD_PATH</a>, <a class="el" href="dbus-protocol_8h-source.html#l00106">DBUS_TYPE_OBJECT_PATH</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h-source.html#l00098">locked</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="gbaf9939d2ea5f1a4949e64a8737de815"></a><!-- doxytag: member="dbus-message.c::dbus_message_set_reply_serial" ref="gbaf9939d2ea5f1a4949e64a8737de815" args="(DBusMessage *message, dbus_uint32_t reply_serial)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_set_reply_serial </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusTypes.html#gf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a> </td>
<td class="paramname"> <em>reply_serial</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the reply serial of a message (the serial of the message this is a reply to).
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>reply_serial</em> </td><td>the serial we're replying to </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l00892">892</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-marshal-header_8c-source.html#l01239">_dbus_header_set_field_basic()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00265">DBUS_HEADER_FIELD_REPLY_SERIAL</a>, <a class="el" href="dbus-protocol_8h-source.html#l00086">DBUS_TYPE_UINT32</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h-source.html#l00092">header</a>, <a class="el" href="dbus-message-private_8h-source.html#l00098">locked</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l01197">dbus_message_new_error()</a>, and <a class="el" href="dbus-message_8c-source.html#l01102">dbus_message_new_method_return()</a>.
</div>
</div><p>
<a class="anchor" name="g6f213386d912b334848db9c2efc26309"></a><!-- doxytag: member="dbus-message.c::dbus_message_set_sender" ref="g6f213386d912b334848db9c2efc26309" args="(DBusMessage *message, const char *sender)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_set_sender </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>sender</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the message sender.
<p>
The sender must be a valid bus name as defined in the D-Bus specification.<p>
Usually you don't want to call this. The message bus daemon will call it to set the origin of each message. If you aren't implementing a message bus daemon you shouldn't need to set the sender.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>sender</em> </td><td>the sender or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> to unset </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l02938">2938</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-protocol_8h-source.html#l00274">DBUS_HEADER_FIELD_SENDER</a>, <a class="el" href="dbus-protocol_8h-source.html#l00102">DBUS_TYPE_STRING</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h-source.html#l00098">locked</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="g40412bdfc6ba9cf9e167db4c23df0a7e"></a><!-- doxytag: member="dbus-message.h::dbus_message_type_from_string" ref="g40412bdfc6ba9cf9e167db4c23df0a7e" args="(const char *type_str)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int dbus_message_type_from_string </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>type_str</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Utility function to convert a machine-readable (not translated) string into a D-Bus message type.
<p>
<div class="fragment"><pre class="fragment"> <span class="stringliteral">"method_call"</span> -> <a class="code" href="group__DBusProtocol.html#g09416afd76b65139eddd31e1085d9ebf">DBUS_MESSAGE_TYPE_METHOD_CALL</a>
<span class="stringliteral">"method_return"</span> -> <a class="code" href="group__DBusProtocol.html#g4a9012edd7f22342f845e98150aeb858">DBUS_MESSAGE_TYPE_METHOD_RETURN</a>
<span class="stringliteral">"signal"</span> -> <a class="code" href="group__DBusProtocol.html#g728d893ff0c00e126517ba39835220a5">DBUS_MESSAGE_TYPE_SIGNAL</a>
<span class="stringliteral">"error"</span> -> <a class="code" href="group__DBusProtocol.html#g2b9423d95066313d73eeea8eeaf86812">DBUS_MESSAGE_TYPE_ERROR</a>
anything <span class="keywordflow">else</span> -> <a class="code" href="group__DBusProtocol.html#gc975525a6ce258a7a70c583c9741b516">DBUS_MESSAGE_TYPE_INVALID</a>
</pre></div>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03874">3874</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-protocol_8h-source.html#l00226">DBUS_MESSAGE_TYPE_ERROR</a>, <a class="el" href="dbus-protocol_8h-source.html#l00220">DBUS_MESSAGE_TYPE_INVALID</a>, <a class="el" href="dbus-protocol_8h-source.html#l00222">DBUS_MESSAGE_TYPE_METHOD_CALL</a>, <a class="el" href="dbus-protocol_8h-source.html#l00224">DBUS_MESSAGE_TYPE_METHOD_RETURN</a>, and <a class="el" href="dbus-protocol_8h-source.html#l00228">DBUS_MESSAGE_TYPE_SIGNAL</a>.
</div>
</div><p>
<a class="anchor" name="g75bcb613a291eb7e427f77f2f3635b8f"></a><!-- doxytag: member="dbus-message.h::dbus_message_type_to_string" ref="g75bcb613a291eb7e427f77f2f3635b8f" args="(int type)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* dbus_message_type_to_string </td>
<td>(</td>
<td class="paramtype">int </td>
<td class="paramname"> <em>type</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Utility function to convert a D-Bus message type into a machine-readable string (not translated).
<p>
<div class="fragment"><pre class="fragment"> <a class="code" href="group__DBusProtocol.html#g09416afd76b65139eddd31e1085d9ebf">DBUS_MESSAGE_TYPE_METHOD_CALL</a> -> <span class="stringliteral">"method_call"</span>
<a class="code" href="group__DBusProtocol.html#g4a9012edd7f22342f845e98150aeb858">DBUS_MESSAGE_TYPE_METHOD_RETURN</a> -> <span class="stringliteral">"method_return"</span>
<a class="code" href="group__DBusProtocol.html#g728d893ff0c00e126517ba39835220a5">DBUS_MESSAGE_TYPE_SIGNAL</a> -> <span class="stringliteral">"signal"</span>
<a class="code" href="group__DBusProtocol.html#g2b9423d95066313d73eeea8eeaf86812">DBUS_MESSAGE_TYPE_ERROR</a> -> <span class="stringliteral">"error"</span>
<a class="code" href="group__DBusProtocol.html#gc975525a6ce258a7a70c583c9741b516">DBUS_MESSAGE_TYPE_INVALID</a> -> <span class="stringliteral">"invalid"</span>
</pre></div>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03902">3902</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-protocol_8h-source.html#l00226">DBUS_MESSAGE_TYPE_ERROR</a>, <a class="el" href="dbus-protocol_8h-source.html#l00222">DBUS_MESSAGE_TYPE_METHOD_CALL</a>, <a class="el" href="dbus-protocol_8h-source.html#l00224">DBUS_MESSAGE_TYPE_METHOD_RETURN</a>, and <a class="el" href="dbus-protocol_8h-source.html#l00228">DBUS_MESSAGE_TYPE_SIGNAL</a>.
</div>
</div><p>
<a class="anchor" name="g84f8b6931de993dc0ae8c69d63bdee29"></a><!-- doxytag: member="dbus-message.c::dbus_message_unref" ref="g84f8b6931de993dc0ae8c69d63bdee29" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void dbus_message_unref </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Decrements the reference count of a <a class="el" href="structDBusMessage.html">DBusMessage</a>, freeing the message if the count reaches 0.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
</table>
</dl>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group__DBusMessage.html#g984ff98c7d031a9ea9e90ede2140d395">dbus_message_ref</a> </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l01387">1387</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01792">_dbus_atomic_dec()</a>, <a class="el" href="dbus-memory_8c-source.html#l00687">_dbus_current_generation</a>, <a class="el" href="dbus-message-private_8h-source.html#l00112">generation</a>, <a class="el" href="dbus-message-private_8h-source.html#l00101">in_cache</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-message-private_8h-source.html#l00090">refcount</a>.
<p>
Referenced by <a class="el" href="dbus-connection_8c-source.html#l00585">_dbus_connection_message_sent()</a>, <a class="el" href="dbus-connection_8c-source.html#l01163">_dbus_connection_new_for_transport()</a>, <a class="el" href="dbus-message_8c-source.html#l03592">_dbus_message_loader_queue_messages()</a>, <a class="el" href="dbus-message_8c-source.html#l03354">_dbus_message_loader_unref()</a>, <a class="el" href="dbus-pending-call_8c-source.html#l00336">_dbus_pending_call_set_timeout_error_unlocked()</a>, <a class="el" href="dbus-bus_8c-source.html#l01452">dbus_bus_add_match()</a>, <a class="el" href="dbus-bus_8c-source.html#l00887">dbus_bus_get_id()</a>, <a class="el" href="dbus-bus_8c-source.html#l00804">dbus_bus_get_unix_user()</a>, <a class="el" href="dbus-bus_8c-source.html#l01219">dbus_bus_name_has_owner()</a>, <a class="el" href="dbus-bus_8c-source.html#l00600">dbus_bus_register()</a>, <a class="el" href="dbus-bus_8c-source.html#l01137">dbus_bus_release_name()</a>, <a class="el" href="dbus-bus_8c-source.html#l01502">dbus_bus_remove_match()</a>, <a class="el" href="dbus-bus_8c-source.html#l01051">dbus_bus_request_name()</a>, <a class="el" href="dbus-bus_8c-source.html#l01295">dbus_bus_start_service_by_name()</a>, <a class="el" href="dbus-connection_8c-source.html#l04220">dbus_connection_dispatch()</a>, <a class="el" href="dbus-connection_8c-source.html#l03243">dbus_connection_send_with_reply_and_block()</a>, <a class="el" href="dbus-message_8c-source.html#l01020">dbus_message_new()</a>, <a class="el" href="dbus-message_8c-source.html#l01197">dbus_message_new_error()</a>, <a class="el" href="dbus-message_8c-source.html#l01063">dbus_message_new_method_call()</a>, <a class="el" href="dbus-message_8c-source.html#l01102">dbus_message_new_method_return()</a>, and <a class="el" href="dbus-message_8c-source.html#l01152">dbus_message_new_signal()</a>.
</div>
</div><p>
<a class="anchor" name="gea5de0b66799aa0baebde2ca41f640b9"></a><!-- doxytag: member="dbus-message.c::dbus_set_error_from_message" ref="gea5de0b66799aa0baebde2ca41f640b9" args="(DBusError *error, DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_set_error_from_message </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> * </td>
<td class="paramname"> <em>error</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets a <a class="el" href="structDBusError.html">DBusError</a> based on the contents of the given message.
<p>
The error is only set if the message is an error message, as in <a class="el" href="group__DBusProtocol.html#g2b9423d95066313d73eeea8eeaf86812">DBUS_MESSAGE_TYPE_ERROR</a>. The name of the error is set to the name of the message, and the error message is set to the first argument if the argument exists and is a string.<p>
The return value indicates whether the error was set (the error is set if and only if the message is an error message). So you can check for an error reply and convert it to <a class="el" href="structDBusError.html">DBusError</a> in one go: <div class="fragment"><pre class="fragment"> <span class="keywordflow">if</span> (<a class="code" href="group__DBusMessage.html#gea5de0b66799aa0baebde2ca41f640b9">dbus_set_error_from_message</a> (error, reply))
<span class="keywordflow">return</span> error;
<span class="keywordflow">else</span>
process reply;
</pre></div><p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>the error to set </td></tr>
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message to set it from </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the message had type <a class="el" href="group__DBusProtocol.html#g2b9423d95066313d73eeea8eeaf86812">DBUS_MESSAGE_TYPE_ERROR</a> </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03255">3255</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l01658">dbus_message_get_args()</a>, <a class="el" href="dbus-message_8c-source.html#l02856">dbus_message_get_error_name()</a>, <a class="el" href="dbus-message_8c-source.html#l01417">dbus_message_get_type()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00226">DBUS_MESSAGE_TYPE_ERROR</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00060">DBUS_TYPE_INVALID</a>, <a class="el" href="dbus-protocol_8h-source.html#l00102">DBUS_TYPE_STRING</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-bus_8c-source.html#l00887">dbus_bus_get_id()</a>, <a class="el" href="dbus-bus_8c-source.html#l00804">dbus_bus_get_unix_user()</a>, <a class="el" href="dbus-bus_8c-source.html#l00600">dbus_bus_register()</a>, <a class="el" href="dbus-bus_8c-source.html#l01137">dbus_bus_release_name()</a>, <a class="el" href="dbus-bus_8c-source.html#l01051">dbus_bus_request_name()</a>, <a class="el" href="dbus-bus_8c-source.html#l01295">dbus_bus_start_service_by_name()</a>, and <a class="el" href="dbus-connection_8c-source.html#l03243">dbus_connection_send_with_reply_and_block()</a>.
</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 14 22:26:14 2009 for D-Bus by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>