Current File : //usr/share/doc/dbus/api/group__DBusMessage.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>D-Bus: DBusMessage</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />



</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">D-Bus
   &#160;<span id="projectnumber">1.8.20</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">DBusMessage</div>  </div>
<div class="ingroups"><a class="el" href="group__DBus.html">D-Bus low-level public API</a></div></div><!--header-->
<div class="contents">

<p>Message to be sent or received over a <a class="el" href="structDBusConnection.html" title="Implementation details of DBusConnection.">DBusConnection</a>.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="structDBusMessageIter.html" title="DBusMessageIter struct; contains no public fields.">DBusMessageIter</a> struct; contains no public fields.  <a href="structDBusMessageIter.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1c4e61fd8bcfe1160354cb578dc1731a"></a><!-- doxytag: member="DBusMessage::DBusMessage" ref="ga1c4e61fd8bcfe1160354cb578dc1731a" args="" -->
typedef struct <a class="el" href="structDBusMessage.html">DBusMessage</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga1c4e61fd8bcfe1160354cb578dc1731a">DBusMessage</a></td></tr>
<tr><td class="mdescLeft">&#160;</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" align="right" valign="top">typedef struct <a class="el" href="structDBusMessageIter.html">DBusMessageIter</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga3c1fed733a5a3fd2a4376ce4f645b5ff">DBusMessageIter</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque type representing a message iterator.  <a href="#ga3c1fed733a5a3fd2a4376ce4f645b5ff"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#gaf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga390710c25564c80025a006c376da2030">dbus_message_get_serial</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the serial of a message or 0 if none has been specified.  <a href="#ga390710c25564c80025a006c376da2030"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gaec08603ff3d49bbcded67d25188a23f1">dbus_message_set_reply_serial</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, <a class="el" href="group__DBusTypes.html#gaf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a> reply_serial)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the reply serial of a message (the serial of the message this is a reply to).  <a href="#gaec08603ff3d49bbcded67d25188a23f1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#gaf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga94c43b2b237d842a6b91da6f94818d47">dbus_message_get_reply_serial</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the serial that the message is a reply to or 0 if none.  <a href="#ga94c43b2b237d842a6b91da6f94818d47"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gab9e5bf8d87a95c5ca7026a791148ebd4">dbus_message_new</a> (int message_type)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a new message of the given message type.  <a href="#gab9e5bf8d87a95c5ca7026a791148ebd4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga98ddc82450d818138ef326a284201ee0">dbus_message_new_method_call</a> (const char *destination, const char *path, const char *iface, const char *method)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a new message to invoke a method on a remote object.  <a href="#ga98ddc82450d818138ef326a284201ee0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga95142bd8288f397194ee0eefb1d27125">dbus_message_new_method_return</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *method_call)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a message that is a reply to a method call.  <a href="#ga95142bd8288f397194ee0eefb1d27125"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga6ce3213dfb17be7956affba40207a5a0">dbus_message_new_signal</a> (const char *path, const char *iface, const char *name)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a new message representing a signal emission.  <a href="#ga6ce3213dfb17be7956affba40207a5a0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga2ab896965aec97fb21293affeed36232">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">&#160;</td><td class="mdescRight">Creates a new message that is an error reply to another message.  <a href="#ga2ab896965aec97fb21293affeed36232"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga707a27881820f964e3606bc906a47978">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">&#160;</td><td class="mdescRight">Creates a new message that is an error reply to another message, allowing you to use printf formatting.  <a href="#ga707a27881820f964e3606bc906a47978"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga4bed3858b3b48ec7c86d9fc56a6ce372">dbus_message_copy</a> (const <a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft">&#160;</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="#ga4bed3858b3b48ec7c86d9fc56a6ce372"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga834035e4817acd64adc8ca584bdf3982">dbus_message_ref</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Increments the reference count of a <a class="el" href="structDBusMessage.html" title="Internals of DBusMessage.">DBusMessage</a>.  <a href="#ga834035e4817acd64adc8ca584bdf3982"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gab69441efe683918f6a82469c8763f464">dbus_message_unref</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Decrements the reference count of a <a class="el" href="structDBusMessage.html" title="Internals of DBusMessage.">DBusMessage</a>, freeing the message if the count reaches 0.  <a href="#gab69441efe683918f6a82469c8763f464"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga41cace31999105137772b6257ea540f9">dbus_message_get_type</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the type of a message.  <a href="#ga41cace31999105137772b6257ea540f9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga591f3aab5dd2c87e56e05423c2a671d9">dbus_message_append_args</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, int first_arg_type,...)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends fields to a message given a variable argument list.  <a href="#ga591f3aab5dd2c87e56e05423c2a671d9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga106e541001d6b884d1c3cea6044693ab">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">&#160;</td><td class="mdescRight">Like <a class="el" href="group__DBusMessage.html#ga591f3aab5dd2c87e56e05423c2a671d9" title="Appends fields to a message given a variable argument list.">dbus_message_append_args()</a> but takes a va_list for use by language bindings.  <a href="#ga106e541001d6b884d1c3cea6044693ab"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gad8953f53ceea7de81cde792e3edd0230">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">&#160;</td><td class="mdescRight">Gets arguments from a message given a variable argument list.  <a href="#gad8953f53ceea7de81cde792e3edd0230"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gab0f9bbe4f3d26bc9b5cf4f243c268aaa">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">&#160;</td><td class="mdescRight">Like dbus_message_get_args but takes a va_list for use by language bindings.  <a href="#gab0f9bbe4f3d26bc9b5cf4f243c268aaa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga9f98b47c84f0e401ea985e681de4e963">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">&#160;</td><td class="mdescRight">Initializes a <a class="el" href="structDBusMessageIter.html" title="DBusMessageIter struct; contains no public fields.">DBusMessageIter</a> for reading the arguments of the message passed in.  <a href="#ga9f98b47c84f0e401ea985e681de4e963"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gaaffc75a699c96ff6197287f166df2149">dbus_message_iter_has_next</a> (<a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *iter)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if an iterator has any more fields.  <a href="#gaaffc75a699c96ff6197287f166df2149"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga554e9fafd4dcc84cebe9da9344846a82">dbus_message_iter_next</a> (<a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *iter)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves the iterator to the next field, if any.  <a href="#ga554e9fafd4dcc84cebe9da9344846a82"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga5aae3c882a75aed953d8b3d489e9b271">dbus_message_iter_get_arg_type</a> (<a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *iter)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the argument type of the argument that the message iterator points to.  <a href="#ga5aae3c882a75aed953d8b3d489e9b271"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga868a7aeddb9b54b2805776b512f68cb4">dbus_message_iter_get_element_type</a> (<a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *iter)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the element type of the array that the message iterator points to.  <a href="#ga868a7aeddb9b54b2805776b512f68cb4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga7652e1208743da5dd4ecc5aef07bf207">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">&#160;</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="#ga7652e1208743da5dd4ecc5aef07bf207"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gab4579a88a1a7eaf648350466f585ef8b">dbus_message_iter_get_signature</a> (<a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *iter)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current signature of a message iterator.  <a href="#gab4579a88a1a7eaf648350466f585ef8b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga41c23a05e552d0574d0444d4693d18ab">dbus_message_iter_get_basic</a> (<a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *iter, void *value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a basic-typed value from the message iterator.  <a href="#ga41c23a05e552d0574d0444d4693d18ab"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gab8ff47649497b3e0b93a2289f5d3eb23">dbus_message_iter_get_array_len</a> (<a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *iter)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of bytes in the array as marshaled in the wire protocol.  <a href="#gab8ff47649497b3e0b93a2289f5d3eb23"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gae195a3312ae445e7ef0196854f3523f8">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">&#160;</td><td class="mdescRight">Reads a block of fixed-length values from the message iterator.  <a href="#gae195a3312ae445e7ef0196854f3523f8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gaf733047c467ce21f4a53b65a388f1e9d">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">&#160;</td><td class="mdescRight">Initializes a <a class="el" href="structDBusMessageIter.html" title="DBusMessageIter struct; contains no public fields.">DBusMessageIter</a> for appending arguments to the end of a message.  <a href="#gaf733047c467ce21f4a53b65a388f1e9d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga17491f3b75b3203f6fc47dcc2e3b221b">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">&#160;</td><td class="mdescRight">Appends a basic-typed value to the message.  <a href="#ga17491f3b75b3203f6fc47dcc2e3b221b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga6e2d1e936c3c61fe00d80a3f22fd5e76">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">&#160;</td><td class="mdescRight">Appends a block of fixed-length values to an array.  <a href="#ga6e2d1e936c3c61fe00d80a3f22fd5e76"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga943150f4e87fd8507da224d22c266100">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">&#160;</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#gaf00482f63d4af88b7851621d1f24087a" title="Closes a container-typed value appended to the message; may write out more information to the message...">dbus_message_iter_close_container()</a>.  <a href="#ga943150f4e87fd8507da224d22c266100"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gaf00482f63d4af88b7851621d1f24087a">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">&#160;</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#ga943150f4e87fd8507da224d22c266100" title="Appends a container-typed value to the message; you are required to append the contents of the contai...">dbus_message_iter_open_container()</a>.  <a href="#gaf00482f63d4af88b7851621d1f24087a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga6e62697ca11f0a57dbecc93d5721612c">dbus_message_iter_abandon_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">&#160;</td><td class="mdescRight">Abandons creation of a contained-typed value and frees resources created by <a class="el" href="group__DBusMessage.html#ga943150f4e87fd8507da224d22c266100" title="Appends a container-typed value to the message; you are required to append the contents of the contai...">dbus_message_iter_open_container()</a>.  <a href="#ga6e62697ca11f0a57dbecc93d5721612c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga0e86aeb2dc6831ccc9a21fcbf8cc16f7">dbus_message_set_no_reply</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> no_reply)</td></tr>
<tr><td class="mdescLeft">&#160;</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="#ga0e86aeb2dc6831ccc9a21fcbf8cc16f7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga622d051a2e5f578814116a958b240aa4">dbus_message_get_no_reply</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if the message does not expect a reply.  <a href="#ga622d051a2e5f578814116a958b240aa4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga1596d92a8d604f954b48c7410263d2f0">dbus_message_set_auto_start</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> auto_start)</td></tr>
<tr><td class="mdescLeft">&#160;</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="#ga1596d92a8d604f954b48c7410263d2f0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga85d396a3a774e15c3dbb7704aa173384">dbus_message_get_auto_start</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if the message will cause an owner for destination name to be auto-started.  <a href="#ga85d396a3a774e15c3dbb7704aa173384"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gaaf25da0ba1482266293d329314c21786">dbus_message_set_path</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *object_path)</td></tr>
<tr><td class="mdescLeft">&#160;</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="#gaaf25da0ba1482266293d329314c21786"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga18adf731bb42d324fe2624407319e4af">dbus_message_get_path</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft">&#160;</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="#ga18adf731bb42d324fe2624407319e4af"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gad2c87d3472bd3bfa8eca8a97f2db026b">dbus_message_has_path</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *path)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the message has a particular object path.  <a href="#gad2c87d3472bd3bfa8eca8a97f2db026b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gaf2b5b3319da838b1f1b360c04a33f153">dbus_message_get_path_decomposed</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, char ***path)</td></tr>
<tr><td class="mdescLeft">&#160;</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="#gaf2b5b3319da838b1f1b360c04a33f153"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga02b754855e4d9a1cade8e4fc17a3f5c7">dbus_message_set_interface</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *iface)</td></tr>
<tr><td class="mdescLeft">&#160;</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="#ga02b754855e4d9a1cade8e4fc17a3f5c7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga1ad192bd4538cae556121a71b4e09d42">dbus_message_get_interface</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft">&#160;</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="#ga1ad192bd4538cae556121a71b4e09d42"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga0d1debd1c101a80c386d6ec92cdb1d93">dbus_message_has_interface</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *iface)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the message has an interface.  <a href="#ga0d1debd1c101a80c386d6ec92cdb1d93"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga3afdda6016816cc70b451d8657065208">dbus_message_set_member</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *member)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the interface member being invoked (DBUS_MESSAGE_TYPE_METHOD_CALL) or emitted (DBUS_MESSAGE_TYPE_SIGNAL).  <a href="#ga3afdda6016816cc70b451d8657065208"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gaf5c6b705c53db07a5ae2c6b76f230cf9">dbus_message_get_member</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the interface member being invoked (DBUS_MESSAGE_TYPE_METHOD_CALL) or emitted (DBUS_MESSAGE_TYPE_SIGNAL).  <a href="#gaf5c6b705c53db07a5ae2c6b76f230cf9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gad7021a30bf930f8090bc38f862f19adb">dbus_message_has_member</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *member)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the message has an interface member.  <a href="#gad7021a30bf930f8090bc38f862f19adb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga892f9857707371c2a53cec6b54c843c7">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">&#160;</td><td class="mdescRight">Sets the name of the error (DBUS_MESSAGE_TYPE_ERROR).  <a href="#ga892f9857707371c2a53cec6b54c843c7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga4e98b2283707a8e0313fc7c6fe3b1b5f">dbus_message_get_error_name</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the error name (DBUS_MESSAGE_TYPE_ERROR only) or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> if none.  <a href="#ga4e98b2283707a8e0313fc7c6fe3b1b5f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gacc47c1af23addfc4198b70084ba068fc">dbus_message_set_destination</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *destination)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the message's destination.  <a href="#gacc47c1af23addfc4198b70084ba068fc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gaac65c926e6253e49aa689b4f032fad45">dbus_message_get_destination</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the destination of a message or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> if there is none set.  <a href="#gaac65c926e6253e49aa689b4f032fad45"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gaa2170744c2c19217d9df02551f16bc92">dbus_message_set_sender</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *sender)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the message sender.  <a href="#gaa2170744c2c19217d9df02551f16bc92"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga13ce514ceb2d1598751f3a7760cf1375">dbus_message_get_sender</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the unique name of the connection which originated this message, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> if unknown or inapplicable.  <a href="#ga13ce514ceb2d1598751f3a7760cf1375"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gaed63e4c2baaa50d782e8ebb7643def19">dbus_message_get_signature</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the type signature of the message, i.e.  <a href="#gaed63e4c2baaa50d782e8ebb7643def19"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gad8bd4730941af47d8d0f9c9b00562a44">dbus_message_is_method_call</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *iface, const char *method)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether the message is a method call with the given interface and member fields.  <a href="#gad8bd4730941af47d8d0f9c9b00562a44"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gaed0e32329f142cc246662227c81d5d1f">dbus_message_is_signal</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *iface, const char *signal_name)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether the message is a signal with the given interface and member fields.  <a href="#gaed0e32329f142cc246662227c81d5d1f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga70ef9d7fad409666a0b5f3a8d4f0dd92">dbus_message_is_error</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *error_name)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether the message is an error reply with the given error name.  <a href="#ga70ef9d7fad409666a0b5f3a8d4f0dd92"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga017cb8d960d4c360cb6b30ded5292509">dbus_message_has_destination</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *name)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether the message was sent to the given name.  <a href="#ga017cb8d960d4c360cb6b30ded5292509"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga332fb0c71efcd1e9ef43ebdf2a25350c">dbus_message_has_sender</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *name)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether the message has the given unique name as its sender.  <a href="#ga332fb0c71efcd1e9ef43ebdf2a25350c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga8d563a936b6147f12dce7f24df3557b7">dbus_message_has_signature</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const char *signature)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether the message has the given signature; see <a class="el" href="group__DBusMessage.html#gaed63e4c2baaa50d782e8ebb7643def19" title="Gets the type signature of the message, i.e.">dbus_message_get_signature()</a> for more details on what the signature looks like.  <a href="#ga8d563a936b6147f12dce7f24df3557b7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gaba5e49e956e6bbd1f857ffd21c289276">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">&#160;</td><td class="mdescRight">Sets a <a class="el" href="structDBusError.html" title="Object representing an exception.">DBusError</a> based on the contents of the given message.  <a href="#gaba5e49e956e6bbd1f857ffd21c289276"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga7436b74471eb3642f81fd456f8f2b69c">dbus_message_contains_unix_fds</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether a message contains unix fds.  <a href="#ga7436b74471eb3642f81fd456f8f2b69c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">DBUS_EXPORT void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gaa35c17742d8fe091aa039cbd29961c52">dbus_message_set_serial</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, <a class="el" href="group__DBusTypes.html#gaf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a> serial)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the serial number of a message.  <a href="#gaa35c17742d8fe091aa039cbd29961c52"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">DBUS_EXPORT void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gad3d6b8ec4745ec19f57cae07621f3a47">dbus_message_lock</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Locks a message.  <a href="#gad3d6b8ec4745ec19f57cae07621f3a47"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gafdde8db1152649d37c9f7e316ca59e56">dbus_message_allocate_data_slot</a> (<a class="el" href="group__DBusTypes.html#gab18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> *slot_p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates an integer ID to be used for storing application-specific data on any <a class="el" href="structDBusMessage.html" title="Internals of DBusMessage.">DBusMessage</a>.  <a href="#gafdde8db1152649d37c9f7e316ca59e56"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">DBUS_EXPORT void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga23227ce2bd5c52d05581d3fe1232ae66">dbus_message_free_data_slot</a> (<a class="el" href="group__DBusTypes.html#gab18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> *slot_p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Deallocates a global ID for message data slots.  <a href="#ga23227ce2bd5c52d05581d3fe1232ae66"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga29331c4e9c2d53cbe60382056f6495a1">dbus_message_set_data</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, <a class="el" href="group__DBusTypes.html#gab18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> slot, void *data, <a class="el" href="group__DBusMemory.html#ga061bcded226d76c7d7de35beaa165cb5">DBusFreeFunction</a> free_data_func)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores a pointer on a <a class="el" href="structDBusMessage.html" title="Internals of DBusMessage.">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="#ga29331c4e9c2d53cbe60382056f6495a1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">DBUS_EXPORT void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gabbde522fe2321618ee39df1a028a2ec6">dbus_message_get_data</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, <a class="el" href="group__DBusTypes.html#gab18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> slot)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves data previously set with <a class="el" href="group__DBusMessageInternals.html#ga69d0bc701f9ca935e6de8a3f3e376c0a" title="Stores a pointer on a DBusMessage, along with an optional function to be used for freeing the data wh...">dbus_message_set_data()</a>.  <a href="#gabbde522fe2321618ee39df1a028a2ec6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">DBUS_EXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#gabc69747028f1e5adedc68f5ffd538c74">dbus_message_type_from_string</a> (const char *type_str)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Utility function to convert a machine-readable (not translated) string into a D-Bus message type.  <a href="#gabc69747028f1e5adedc68f5ffd538c74"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">DBUS_EXPORT const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga13f28b9d8b321baa4536f820a359c092">dbus_message_type_to_string</a> (int type)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Utility function to convert a D-Bus message type into a machine-readable string (not translated).  <a href="#ga13f28b9d8b321baa4536f820a359c092"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga3f90a918ada328450fcfe9ac403b8807">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">&#160;</td><td class="mdescRight">Turn a <a class="el" href="structDBusMessage.html" title="Internals of DBusMessage.">DBusMessage</a> into the marshalled form as described in the D-Bus specification.  <a href="#ga3f90a918ada328450fcfe9ac403b8807"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">DBUS_EXPORT <a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga54242692a860bc712bda120ccee3535f">dbus_message_demarshal</a> (const char *str, int len, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Demarshal a D-Bus message from the format described in the D-Bus specification.  <a href="#ga54242692a860bc712bda120ccee3535f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">DBUS_EXPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessage.html#ga67b26fd2c8e3305f3a467a5f3e36b24a">dbus_message_demarshal_bytes_needed</a> (const char *str, int len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of bytes required to be in the buffer to demarshal a D-Bus message.  <a href="#ga67b26fd2c8e3305f3a467a5f3e36b24a"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>Message to be sent or received over a <a class="el" href="structDBusConnection.html" title="Implementation details of DBusConnection.">DBusConnection</a>. </p>
<p>A <a class="el" href="structDBusMessage.html" title="Internals of DBusMessage.">DBusMessage</a> is the most basic unit of communication over a <a class="el" href="structDBusConnection.html" title="Implementation details of DBusConnection.">DBusConnection</a>. A <a class="el" href="structDBusConnection.html" title="Implementation details of DBusConnection.">DBusConnection</a> represents a stream of messages received from a remote application, and a stream of messages sent to a remote application.</p>
<p>A message has a message type, returned from <a class="el" href="group__DBusMessage.html#ga41cace31999105137772b6257ea540f9" title="Gets the type of a message.">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>
<p>A message has header fields such as the sender, destination, method or signal name, and so forth. <a class="el" href="structDBusMessage.html" title="Internals of DBusMessage.">DBusMessage</a> has accessor functions for these, such as <a class="el" href="group__DBusMessage.html#gaf5c6b705c53db07a5ae2c6b76f230cf9" title="Gets the interface member being invoked (DBUS_MESSAGE_TYPE_METHOD_CALL) or emitted (DBUS_MESSAGE_TYPE...">dbus_message_get_member()</a>.</p>
<p>Convenience functions <a class="el" href="group__DBusMessage.html#gad8bd4730941af47d8d0f9c9b00562a44" title="Checks whether the message is a method call with the given interface and member fields.">dbus_message_is_method_call()</a>, <a class="el" href="group__DBusMessage.html#gaed0e32329f142cc246662227c81d5d1f" title="Checks whether the message is a signal with the given interface and member fields.">dbus_message_is_signal()</a>, and <a class="el" href="group__DBusMessage.html#ga70ef9d7fad409666a0b5f3a8d4f0dd92" title="Checks whether the message is an error reply with the given error name.">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>
<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#gaed63e4c2baaa50d782e8ebb7643def19" title="Gets the type signature of the message, i.e.">dbus_message_get_signature()</a>). Simple argument values are usually retrieved with <a class="el" href="group__DBusMessage.html#gad8953f53ceea7de81cde792e3edd0230" title="Gets arguments from a message given a variable argument list.">dbus_message_get_args()</a> but more complex values such as structs may require the use of <a class="el" href="structDBusMessageIter.html" title="DBusMessageIter struct; contains no public fields.">DBusMessageIter</a>.</p>
<p>The D-Bus specification goes into some more detail about header fields and message types. </p>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="ga3c1fed733a5a3fd2a4376ce4f645b5ff"></a><!-- doxytag: member="dbus&#45;message.h::DBusMessageIter" ref="ga3c1fed733a5a3fd2a4376ce4f645b5ff" 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>
<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>

<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>.</p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="gafdde8db1152649d37c9f7e316ca59e56"></a><!-- doxytag: member="dbus&#45;message.h::dbus_message_allocate_data_slot" ref="gafdde8db1152649d37c9f7e316ca59e56" args="(dbus_int32_t *slot_p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#gafdde8db1152649d37c9f7e316ca59e56">dbus_message_allocate_data_slot</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__DBusTypes.html#gab18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> *&#160;</td>
          <td class="paramname"><em>slot_p</em></td><td>)</td>
          <td></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" title="Internals of DBusMessage.">DBusMessage</a>. </p>
<p>The allocated ID may then be used with <a class="el" href="group__DBusMessageInternals.html#ga69d0bc701f9ca935e6de8a3f3e376c0a" title="Stores a pointer on a DBusMessage, along with an optional function to be used for freeing the data wh...">dbus_message_set_data()</a> and <a class="el" href="group__DBusMessageInternals.html#ga62769bfaf8f1b2edc7922c579bc0649d" title="Retrieves data previously set with dbus_message_set_data().">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>
<p>The allocated slot is global, i.e. all <a class="el" href="structDBusMessage.html" title="Internals of DBusMessage.">DBusMessage</a> objects will have a slot with the given integer ID reserved.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">slot_p</td><td>address of a global variable storing the slot </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> on failure (no memory) </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l04560">4560</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-dataslot_8c_source.html#l00069">_dbus_data_slot_allocator_alloc()</a>.</p>

</div>
</div>
<a class="anchor" id="ga591f3aab5dd2c87e56e05423c2a671d9"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_append_args" ref="ga591f3aab5dd2c87e56e05423c2a671d9" args="(DBusMessage *message, int first_arg_type,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#ga591f3aab5dd2c87e56e05423c2a671d9">dbus_message_append_args</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>first_arg_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Appends fields to a message given a variable argument list. </p>
<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 (except arrays of Unix file descriptors). To append variable-length basic types, or any more complex value, you have to use an iterator rather than this function.</p>
<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#gab18afa60e9b17b6e322735bda3d863d8" title="A 32-bit signed integer on all platforms.">dbus_int32_t</a> v_INT32 = 42;
 <span class="keyword">const</span> <span class="keywordtype">char</span> *v_STRING = <span class="stringliteral">&quot;Hello World&quot;</span>;
 <a class="code" href="group__DBusMessage.html#ga591f3aab5dd2c87e56e05423c2a671d9" title="Appends fields to a message given a variable argument list.">dbus_message_append_args</a> (message,
                           <a class="code" href="group__DBusProtocol.html#ga5943b497db2e1dec04fae60584a294bb" title="Type code marking a 32-bit signed integer.">DBUS_TYPE_INT32</a>, &amp;v_INT32,
                           <a class="code" href="group__DBusProtocol.html#ga7eb77066dadf5415896b44c56d93acce" title="Type code marking a UTF-8 encoded, nul-terminated Unicode string.">DBUS_TYPE_STRING</a>, &amp;v_STRING,
                           <a class="code" href="group__DBusProtocol.html#gaa9588da889743b2119dc6664712ae51e" title="Type code that is never equal to a legitimate type code.">DBUS_TYPE_INVALID</a>);
</pre></div><p>To append an array of fixed-length basic types (except Unix file descriptors), 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: </p>
<div class="fragment"><pre class="fragment"> <span class="keyword">const</span> <a class="code" href="group__DBusTypes.html#gab18afa60e9b17b6e322735bda3d863d8" title="A 32-bit signed integer on all platforms.">dbus_int32_t</a> array[] = { 1, 2, 3 }; <span class="keyword">const</span> <a class="code" href="group__DBusTypes.html#gab18afa60e9b17b6e322735bda3d863d8" title="A 32-bit signed integer on all platforms.">dbus_int32_t</a>
 *v_ARRAY = array; <a class="code" href="group__DBusMessage.html#ga591f3aab5dd2c87e56e05423c2a671d9" title="Appends fields to a message given a variable argument list.">dbus_message_append_args</a> (message,
 <a class="code" href="group__DBusProtocol.html#ga8912f600f81a773066ca03d9163613a9" title="Type code marking a D-Bus array type.">DBUS_TYPE_ARRAY</a>, <a class="code" href="group__DBusProtocol.html#ga5943b497db2e1dec04fae60584a294bb" title="Type code marking a 32-bit signed integer.">DBUS_TYPE_INT32</a>, &amp;v_ARRAY, 3, <a class="code" href="group__DBusProtocol.html#gaa9588da889743b2119dc6664712ae51e" title="Type code that is never equal to a legitimate type code.">DBUS_TYPE_INVALID</a>);
</pre></div><p>This function does not support arrays of Unix file descriptors. If you need those you need to manually recurse into the array.</p>
<p>For Unix file descriptors this function will internally duplicate the descriptor you passed in. Hence you may close the descriptor immediately after this call.</p>
<dl class="warning"><dt><b>Warning:</b></dt><dd>in C, given "int array[]", "&amp;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 &amp;array though.</dd></dl>
<p>The last argument to this function must be <a class="el" href="group__DBusProtocol.html#gaa9588da889743b2119dc6664712ae51e" title="Type code that is never equal to a legitimate type code.">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>
<p>String/signature/path arrays should be passed in as "const char***
 address_of_array" and "int n_elements"</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000028">Todo:</a></b></dt><dd>support DBUS_TYPE_STRUCT and DBUS_TYPE_VARIANT and complex arrays</dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000029">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 class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">first_arg_type</td><td>type of the first argument </td></tr>
    <tr><td class="paramname">...</td><td>value of first argument, list of additional type-value pairs </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success </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>

<p>References <a class="el" href="dbus-message_8c_source.html#l01824">dbus_message_append_args_valist()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-bus_8c_source.html#l01526">dbus_bus_add_match()</a>, <a class="el" href="dbus-bus_8c_source.html#l00865">dbus_bus_get_unix_user()</a>, <a class="el" href="dbus-bus_8c_source.html#l01280">dbus_bus_name_has_owner()</a>, <a class="el" href="dbus-bus_8c_source.html#l01198">dbus_bus_release_name()</a>, <a class="el" href="dbus-bus_8c_source.html#l01576">dbus_bus_remove_match()</a>, <a class="el" href="dbus-bus_8c_source.html#l01112">dbus_bus_request_name()</a>, and <a class="el" href="dbus-bus_8c_source.html#l01356">dbus_bus_start_service_by_name()</a>.</p>

</div>
</div>
<a class="anchor" id="ga106e541001d6b884d1c3cea6044693ab"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_append_args_valist" ref="ga106e541001d6b884d1c3cea6044693ab" args="(DBusMessage *message, int first_arg_type, va_list var_args)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#ga106e541001d6b884d1c3cea6044693ab">dbus_message_append_args_valist</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>first_arg_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">va_list&#160;</td>
          <td class="paramname"><em>var_args</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Like <a class="el" href="group__DBusMessage.html#ga591f3aab5dd2c87e56e05423c2a671d9" title="Appends fields to a message given a variable argument list.">dbus_message_append_args()</a> but takes a va_list for use by language bindings. </p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000030">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 class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__DBusMessage.html#ga591f3aab5dd2c87e56e05423c2a671d9" title="Appends fields to a message given a variable argument list.">dbus_message_append_args</a>. </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">first_arg_type</td><td>type of first argument </td></tr>
    <tr><td class="paramname">var_args</td><td>value of first argument, then list of type/value pairs </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l01824">1824</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-basic_8c_source.html#l01219">_dbus_type_to_string()</a>, <a class="el" href="dbus-internals_8c_source.html#l00230">_dbus_warn()</a>, <a class="el" href="dbus-message_8c_source.html#l02951">dbus_message_iter_abandon_container()</a>, <a class="el" href="dbus-message_8c_source.html#l02656">dbus_message_iter_append_basic()</a>, <a class="el" href="dbus-message_8c_source.html#l02791">dbus_message_iter_append_fixed_array()</a>, <a class="el" href="dbus-message_8c_source.html#l02918">dbus_message_iter_close_container()</a>, <a class="el" href="dbus-message_8c_source.html#l02421">dbus_message_iter_init_append()</a>, <a class="el" href="dbus-message_8c_source.html#l02849">dbus_message_iter_open_container()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00120">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#l00318">dbus_type_is_basic()</a>, <a class="el" href="dbus-signature_8c_source.html#l00349">dbus_type_is_fixed()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00114">DBUS_TYPE_UNIX_FD</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-message_8c_source.html#l01792">dbus_message_append_args()</a>.</p>

</div>
</div>
<a class="anchor" id="ga7436b74471eb3642f81fd456f8f2b69c"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_contains_unix_fds" ref="ga7436b74471eb3642f81fd456f8f2b69c" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#ga7436b74471eb3642f81fd456f8f2b69c">dbus_message_contains_unix_fds</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks whether a message contains unix fds. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if the message contains unix fds </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l03825">3825</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>.</p>

</div>
</div>
<a class="anchor" id="ga4bed3858b3b48ec7c86d9fc56a6ce372"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_copy" ref="ga4bed3858b3b48ec7c86d9fc56a6ce372" args="(const DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="structDBusMessage.html">DBusMessage</a> * <a class="el" href="group__DBusMessage.html#ga4bed3858b3b48ec7c86d9fc56a6ce372">dbus_message_copy</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em></td><td>)</td>
          <td></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 class="todo"><dt><b><a class="el" href="todo.html#_todo000027">Todo:</a></b></dt><dd>This function can't be used in programs that try to recover from OOM errors.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the new message.or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> if not enough memory or Unix file descriptors (in case the message to copy includes Unix file descriptors) can be allocated. </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l01587">1587</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02501">_dbus_atomic_inc()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02987">_dbus_dup()</a>, <a class="el" href="dbus-marshal-header_8c_source.html#l00490">_dbus_header_copy()</a>, <a class="el" href="dbus-marshal-header_8c_source.html#l00476">_dbus_header_free()</a>, <a class="el" href="dbus-string_8c_source.html#l01265">_dbus_string_copy()</a>, <a class="el" href="dbus-string_8c_source.html#l00242">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c_source.html#l00722">_dbus_string_get_length()</a>, <a class="el" href="dbus-string_8c_source.html#l00132">_dbus_string_init_preallocated()</a>, <a class="el" href="dbus-message-private_8h_source.html#l00105">body</a>, <a class="el" href="dbus-memory_8c_source.html#l00701">dbus_free()</a>, <a class="el" href="dbus-memory_8h_source.html#l00058">dbus_new</a>, <a class="el" href="dbus-memory_8h_source.html#l00059">dbus_new0</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h_source.html#l00121">generation</a>, <a class="el" href="dbus-message-private_8h_source.html#l00103">header</a>, <a class="el" href="dbus-message-private_8h_source.html#l00107">locked</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-message-private_8h_source.html#l00101">refcount</a>.</p>

</div>
</div>
<a class="anchor" id="ga54242692a860bc712bda120ccee3535f"></a><!-- doxytag: member="dbus&#45;message.h::dbus_message_demarshal" ref="ga54242692a860bc712bda120ccee3535f" args="(const char *str, int len, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="structDBusMessage.html">DBusMessage</a>* <a class="el" href="group__DBusMessage.html#ga54242692a860bc712bda120ccee3535f">dbus_message_demarshal</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</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> *&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Demarshal a D-Bus message from the format described in the D-Bus specification. </p>
<p>Generally, this function is only useful for encapsulating D-Bus messages in a different protocol.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the marshalled <a class="el" href="structDBusMessage.html" title="Internals of DBusMessage.">DBusMessage</a> </td></tr>
    <tr><td class="paramname">len</td><td>the length of str </td></tr>
    <tr><td class="paramname">error</td><td>the location to save errors to </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> if there was an error </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l04783">4783</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-message_8c_source.html#l03962">_dbus_message_loader_get_buffer()</a>, <a class="el" href="dbus-message_8c_source.html#l04424">_dbus_message_loader_get_is_corrupted()</a>, <a class="el" href="dbus-message_8c_source.html#l03863">_dbus_message_loader_new()</a>, <a class="el" href="dbus-message_8c_source.html#l04382">_dbus_message_loader_pop_message()</a>, <a class="el" href="dbus-message_8c_source.html#l04302">_dbus_message_loader_queue_messages()</a>, <a class="el" href="dbus-message_8c_source.html#l03982">_dbus_message_loader_return_buffer()</a>, <a class="el" href="dbus-message_8c_source.html#l03925">_dbus_message_loader_unref()</a>, <a class="el" href="dbus-string_8c_source.html#l01119">_dbus_string_append_len()</a>, <a class="el" href="dbus-message-private_8h_source.html#l00071">DBusMessageLoader::corruption_reason</a>, <a class="el" href="dbus-protocol_8h_source.html#l00386">DBUS_ERROR_INVALID_ARGS</a>, <a class="el" href="dbus-errors_8c_source.html#l00354">dbus_set_error()</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

</div>
</div>
<a class="anchor" id="ga67b26fd2c8e3305f3a467a5f3e36b24a"></a><!-- doxytag: member="dbus&#45;message.h::dbus_message_demarshal_bytes_needed" ref="ga67b26fd2c8e3305f3a467a5f3e36b24a" args="(const char *str, int len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT int <a class="el" href="group__DBusMessage.html#ga67b26fd2c8e3305f3a467a5f3e36b24a">dbus_message_demarshal_bytes_needed</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the number of bytes required to be in the buffer to demarshal a D-Bus message. </p>
<p>Generally, this function is only useful for encapsulating D-Bus messages in a different protocol.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">buf</td><td>data to be marshalled </td></tr>
    <tr><td class="paramname">len</td><td>the length of <code>buf</code> </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>-1 if there was no valid data to be demarshalled, 0 if there wasn't enough data to determine how much should be demarshalled. Otherwise returns the number of bytes to be demarshalled </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l04844">4844</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-header_8c_source.html#l00673">_dbus_header_have_message_untrusted()</a>, <a class="el" href="dbus-string_8c_source.html#l00242">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c_source.html#l00210">_dbus_string_init_const_len()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00210">DBUS_MAXIMUM_MESSAGE_LENGTH</a>, and <a class="el" href="dbus-protocol_8h_source.html#l00341">DBUS_MINIMUM_HEADER_SIZE</a>.</p>

</div>
</div>
<a class="anchor" id="ga23227ce2bd5c52d05581d3fe1232ae66"></a><!-- doxytag: member="dbus&#45;message.h::dbus_message_free_data_slot" ref="ga23227ce2bd5c52d05581d3fe1232ae66" args="(dbus_int32_t *slot_p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT void <a class="el" href="group__DBusMessage.html#ga23227ce2bd5c52d05581d3fe1232ae66">dbus_message_free_data_slot</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__DBusTypes.html#gab18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> *&#160;</td>
          <td class="paramname"><em>slot_p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Deallocates a global ID for message data slots. </p>
<p><a class="el" href="group__DBusMessageInternals.html#ga62769bfaf8f1b2edc7922c579bc0649d" title="Retrieves data previously set with dbus_message_set_data().">dbus_message_get_data()</a> and <a class="el" href="group__DBusMessageInternals.html#ga69d0bc701f9ca935e6de8a3f3e376c0a" title="Stores a pointer on a DBusMessage, along with an optional function to be used for freeing the data wh...">dbus_message_set_data()</a> may no longer be used with this slot. Existing data stored on existing <a class="el" href="structDBusMessage.html" title="Internals of DBusMessage.">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 class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">slot_p</td><td>address storing the slot to deallocate </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l04578">4578</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-dataslot_8c_source.html#l00154">_dbus_data_slot_allocator_free()</a>.</p>

</div>
</div>
<a class="anchor" id="gad8953f53ceea7de81cde792e3edd0230"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_get_args" ref="gad8953f53ceea7de81cde792e3edd0230" args="(DBusMessage *message, DBusError *error, int first_arg_type,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#gad8953f53ceea7de81cde792e3edd0230">dbus_message_get_args</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</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> *&#160;</td>
          <td class="paramname"><em>error</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>first_arg_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets arguments from a message given a variable argument list. </p>
<p>The supported types include those supported by <a class="el" href="group__DBusMessage.html#ga591f3aab5dd2c87e56e05423c2a671d9" title="Appends fields to a message given a variable argument list.">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#ga41c23a05e552d0574d0444d4693d18ab" title="Reads a basic-typed value from the message iterator.">dbus_message_iter_get_basic()</a> or <a class="el" href="group__DBusMessage.html#gae195a3312ae445e7ef0196854f3523f8" title="Reads a block of fixed-length values from the message iterator.">dbus_message_iter_get_fixed_array()</a>.</p>
<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#gac200b2dbc8b3f6ecac4d42426fb97b40" title="Frees a NULL-terminated array of strings.">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>
<p>Similar to dbus_message_get_fixed_array() this function does not support arrays of type DBUS_TYPE_UNIX_FD. If you need to parse messages with arrays of Unix file descriptors you need to recurse into the array manually.</p>
<p>Unix file descriptors that are read with this function will have the FD_CLOEXEC flag set. If you need them without this flag set, make sure to unset it with fcntl().</p>
<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#gaa9588da889743b2119dc6664712ae51e" title="Type code that is never equal to a legitimate type code.">DBUS_TYPE_INVALID</a>.</p>
<p>Except for string arrays, the returned values are constant; do not free them. They point into the <a class="el" href="structDBusMessage.html" title="Internals of DBusMessage.">DBusMessage</a>.</p>
<p>If the requested arguments are not present, or do not have the requested types, then an error will be set.</p>
<p>If more arguments than requested are present, the requested arguments are returned and the extra arguments are ignored.</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000031">Todo:</a></b></dt><dd>support DBUS_TYPE_STRUCT and DBUS_TYPE_VARIANT and complex arrays</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">error</td><td>error to be filled in on failure </td></tr>
    <tr><td class="paramname">first_arg_type</td><td>the first argument type </td></tr>
    <tr><td class="paramname">...</td><td>location for first argument value, then list of type-location pairs </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if the error was set </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l01980">1980</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-message_8c_source.html#l02009">dbus_message_get_args_valist()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-bus_8c_source.html#l00948">dbus_bus_get_id()</a>, <a class="el" href="dbus-bus_8c_source.html#l00865">dbus_bus_get_unix_user()</a>, <a class="el" href="dbus-bus_8c_source.html#l01280">dbus_bus_name_has_owner()</a>, <a class="el" href="dbus-bus_8c_source.html#l00646">dbus_bus_register()</a>, <a class="el" href="dbus-bus_8c_source.html#l01198">dbus_bus_release_name()</a>, <a class="el" href="dbus-bus_8c_source.html#l01112">dbus_bus_request_name()</a>, <a class="el" href="dbus-bus_8c_source.html#l01356">dbus_bus_start_service_by_name()</a>, and <a class="el" href="dbus-message_8c_source.html#l03796">dbus_set_error_from_message()</a>.</p>

</div>
</div>
<a class="anchor" id="gab0f9bbe4f3d26bc9b5cf4f243c268aaa"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_get_args_valist" ref="gab0f9bbe4f3d26bc9b5cf4f243c268aaa" 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">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#gab0f9bbe4f3d26bc9b5cf4f243c268aaa">dbus_message_get_args_valist</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</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> *&#160;</td>
          <td class="paramname"><em>error</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>first_arg_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">va_list&#160;</td>
          <td class="paramname"><em>var_args</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></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 class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__DBusMessage.html#gad8953f53ceea7de81cde792e3edd0230" title="Gets arguments from a message given a variable argument list.">dbus_message_get_args</a> </dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">error</td><td>error to be filled in </td></tr>
    <tr><td class="paramname">first_arg_type</td><td>type of the first argument </td></tr>
    <tr><td class="paramname">var_args</td><td>return location for first argument, followed by list of type/location pairs </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if error was set </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l02009">2009</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-message_8c_source.html#l00796">_dbus_message_iter_get_args_valist()</a>, <a class="el" href="dbus-message_8c_source.html#l02064">dbus_message_iter_init()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-message_8c_source.html#l01980">dbus_message_get_args()</a>.</p>

</div>
</div>
<a class="anchor" id="ga85d396a3a774e15c3dbb7704aa173384"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_get_auto_start" ref="ga85d396a3a774e15c3dbb7704aa173384" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#ga85d396a3a774e15c3dbb7704aa173384">dbus_message_get_auto_start</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if the message will cause an owner for destination name to be auto-started. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if the message will use auto-start </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l03045">3045</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-header_8c_source.html#l01479">_dbus_header_get_flag()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00256">DBUS_HEADER_FLAG_NO_AUTO_START</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h_source.html#l00103">header</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

</div>
</div>
<a class="anchor" id="gabbde522fe2321618ee39df1a028a2ec6"></a><!-- doxytag: member="dbus&#45;message.h::dbus_message_get_data" ref="gabbde522fe2321618ee39df1a028a2ec6" args="(DBusMessage *message, dbus_int32_t slot)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT void* <a class="el" href="group__DBusMessage.html#gabbde522fe2321618ee39df1a028a2ec6">dbus_message_get_data</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</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#gab18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a>&#160;</td>
          <td class="paramname"><em>slot</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieves data previously set with <a class="el" href="group__DBusMessageInternals.html#ga69d0bc701f9ca935e6de8a3f3e376c0a" title="Stores a pointer on a DBusMessage, along with an optional function to be used for freeing the data wh...">dbus_message_set_data()</a>. </p>
<p>The slot must still be allocated (must not have been freed).</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">slot</td><td>the slot to get data from </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the data, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> if not found </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l04635">4635</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-dataslot_8c_source.html#l00285">_dbus_data_slot_list_get()</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-message-private_8h_source.html#l00118">slot_list</a>.</p>

</div>
</div>
<a class="anchor" id="gaac65c926e6253e49aa689b4f032fad45"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_get_destination" ref="gaac65c926e6253e49aa689b4f032fad45" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT const char * <a class="el" href="group__DBusMessage.html#gaac65c926e6253e49aa689b4f032fad45">dbus_message_get_destination</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the destination of a message or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> if there is none set. </p>
<p>The returned string becomes invalid if the message is modified, since it points into the wire-marshaled message data.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the message destination (should not be freed) or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l03450">3450</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-header_8c_source.html#l01351">_dbus_header_get_field_basic()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00283">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#l00103">header</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-message_8c_source.html#l03690">dbus_message_has_destination()</a>.</p>

</div>
</div>
<a class="anchor" id="ga4e98b2283707a8e0313fc7c6fe3b1b5f"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_get_error_name" ref="ga4e98b2283707a8e0313fc7c6fe3b1b5f" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT const char * <a class="el" href="group__DBusMessage.html#ga4e98b2283707a8e0313fc7c6fe3b1b5f">dbus_message_get_error_name</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em></td><td>)</td>
          <td></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#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> if none. </p>
<p>The returned string becomes invalid if the message is modified, since it points into the wire-marshaled message data.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the error name (should not be freed) or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l03397">3397</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-header_8c_source.html#l01351">_dbus_header_get_field_basic()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00275">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#l00103">header</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-message_8c_source.html#l03657">dbus_message_is_error()</a>, and <a class="el" href="dbus-message_8c_source.html#l03796">dbus_set_error_from_message()</a>.</p>

</div>
</div>
<a class="anchor" id="ga1ad192bd4538cae556121a71b4e09d42"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_get_interface" ref="ga1ad192bd4538cae556121a71b4e09d42" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT const char * <a class="el" href="group__DBusMessage.html#ga1ad192bd4538cae556121a71b4e09d42">dbus_message_get_interface</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em></td><td>)</td>
          <td></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>
<p>The interface name is fully-qualified (namespaced). Returns <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> if none.</p>
<p>The returned string becomes invalid if the message is modified, since it points into the wire-marshaled message data.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the message interface (should not be freed) or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l03227">3227</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-header_8c_source.html#l01351">_dbus_header_get_field_basic()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00269">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#l00103">header</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-connection_8c_source.html#l00625">_dbus_connection_message_sent_unlocked()</a>, <a class="el" href="dbus-connection_8c_source.html#l00480">_dbus_connection_queue_received_message_link()</a>, <a class="el" href="dbus-connection_8c_source.html#l04549">dbus_connection_dispatch()</a>, <a class="el" href="dbus-connection_8c_source.html#l03217">dbus_connection_send_preallocated()</a>, and <a class="el" href="dbus-message_8c_source.html#l03249">dbus_message_has_interface()</a>.</p>

</div>
</div>
<a class="anchor" id="gaf5c6b705c53db07a5ae2c6b76f230cf9"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_get_member" ref="gaf5c6b705c53db07a5ae2c6b76f230cf9" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT const char * <a class="el" href="group__DBusMessage.html#gaf5c6b705c53db07a5ae2c6b76f230cf9">dbus_message_get_member</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em></td><td>)</td>
          <td></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>
<p>Returns <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> if none.</p>
<p>The returned string becomes invalid if the message is modified, since it points into the wire-marshaled message data.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the member name (should not be freed) or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l03313">3313</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-header_8c_source.html#l01351">_dbus_header_get_field_basic()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00271">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#l00103">header</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-connection_8c_source.html#l00625">_dbus_connection_message_sent_unlocked()</a>, <a class="el" href="dbus-connection_8c_source.html#l00480">_dbus_connection_queue_received_message_link()</a>, <a class="el" href="dbus-connection_8c_source.html#l04549">dbus_connection_dispatch()</a>, <a class="el" href="dbus-connection_8c_source.html#l03217">dbus_connection_send_preallocated()</a>, and <a class="el" href="dbus-message_8c_source.html#l03335">dbus_message_has_member()</a>.</p>

</div>
</div>
<a class="anchor" id="ga622d051a2e5f578814116a958b240aa4"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_get_no_reply" ref="ga622d051a2e5f578814116a958b240aa4" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#ga622d051a2e5f578814116a958b240aa4">dbus_message_get_no_reply</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if the message does not expect a reply. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">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#l03003">3003</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-header_8c_source.html#l01479">_dbus_header_get_flag()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00249">DBUS_HEADER_FLAG_NO_REPLY_EXPECTED</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h_source.html#l00103">header</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

</div>
</div>
<a class="anchor" id="ga18adf731bb42d324fe2624407319e4af"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_get_path" ref="ga18adf731bb42d324fe2624407319e4af" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT const char * <a class="el" href="group__DBusMessage.html#ga18adf731bb42d324fe2624407319e4af">dbus_message_get_path</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em></td><td>)</td>
          <td></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>
<p>Returns <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> if none.</p>
<p>See also <a class="el" href="group__DBusMessage.html#gaf2b5b3319da838b1f1b360c04a33f153" title="Gets the object path this message is being sent to (for DBUS_MESSAGE_TYPE_METHOD_CALL) or being emitt...">dbus_message_get_path_decomposed()</a>.</p>
<p>The returned string becomes invalid if the message is modified, since it points into the wire-marshaled message data.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the path (should not be freed) or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l03096">3096</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-header_8c_source.html#l01351">_dbus_header_get_field_basic()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00265">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#l00103">header</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-connection_8c_source.html#l00625">_dbus_connection_message_sent_unlocked()</a>, <a class="el" href="dbus-connection_8c_source.html#l00480">_dbus_connection_queue_received_message_link()</a>, <a class="el" href="dbus-message_8c_source.html#l03164">dbus_message_get_path_decomposed()</a>, and <a class="el" href="dbus-message_8c_source.html#l03120">dbus_message_has_path()</a>.</p>

</div>
</div>
<a class="anchor" id="gaf2b5b3319da838b1f1b360c04a33f153"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_get_path_decomposed" ref="gaf2b5b3319da838b1f1b360c04a33f153" args="(DBusMessage *message, char ***path)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#gaf2b5b3319da838b1f1b360c04a33f153">dbus_message_get_path_decomposed</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char ***&#160;</td>
          <td class="paramname"><em>path</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></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>
<p>Free the returned array with <a class="el" href="group__DBusMemory.html#gac200b2dbc8b3f6ecac4d42426fb97b40" title="Frees a NULL-terminated array of strings.">dbus_free_string_array()</a>.</p>
<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>
<p>See also <a class="el" href="group__DBusMessage.html#ga18adf731bb42d324fe2624407319e4af" title="Gets the object path this message is being sent to (for DBUS_MESSAGE_TYPE_METHOD_CALL) or being emitt...">dbus_message_get_path()</a>.</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000038">Todo:</a></b></dt><dd>this could be optimized by using the len from the message instead of calling strlen() again</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">path</td><td>place to store allocated array of path components; <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> set here if no path field exists </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if no memory to allocate the array </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l03164">3164</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-object-tree_8c_source.html#l01242">_dbus_decompose_path()</a>, <a class="el" href="dbus-message_8c_source.html#l03096">dbus_message_get_path()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-object-tree_8c_source.html#l00903">_dbus_object_tree_dispatch_and_unlock()</a>.</p>

</div>
</div>
<a class="anchor" id="ga94c43b2b237d842a6b91da6f94818d47"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_get_reply_serial" ref="ga94c43b2b237d842a6b91da6f94818d47" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#gaf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a> <a class="el" href="group__DBusMessage.html#ga94c43b2b237d842a6b91da6f94818d47">dbus_message_get_reply_serial</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the serial that the message is a reply to or 0 if none. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the reply serial </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l01163">1163</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-header_8c_source.html#l01351">_dbus_header_get_field_basic()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00279">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#l00103">header</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-connection_8c_source.html#l00480">_dbus_connection_queue_received_message_link()</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00172">_dbus_pending_call_set_reply_unlocked()</a>, and <a class="el" href="dbus-connection_8c_source.html#l04549">dbus_connection_dispatch()</a>.</p>

</div>
</div>
<a class="anchor" id="ga13ce514ceb2d1598751f3a7760cf1375"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_get_sender" ref="ga13ce514ceb2d1598751f3a7760cf1375" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT const char * <a class="el" href="group__DBusMessage.html#ga13ce514ceb2d1598751f3a7760cf1375">dbus_message_get_sender</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em></td><td>)</td>
          <td></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#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> if unknown or inapplicable. </p>
<p>The sender is filled in by the message bus.</p>
<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>
<p>The returned string becomes invalid if the message is modified, since it points into the wire-marshaled message data.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the unique name of the sender or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l03510">3510</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-header_8c_source.html#l01351">_dbus_header_get_field_basic()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00288">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#l00103">header</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-message_8c_source.html#l03725">dbus_message_has_sender()</a>, <a class="el" href="dbus-message_8c_source.html#l01470">dbus_message_new_error()</a>, and <a class="el" href="dbus-message_8c_source.html#l01373">dbus_message_new_method_return()</a>.</p>

</div>
</div>
<a class="anchor" id="ga390710c25564c80025a006c376da2030"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_get_serial" ref="ga390710c25564c80025a006c376da2030" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#gaf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a> <a class="el" href="group__DBusMessage.html#ga390710c25564c80025a006c376da2030">dbus_message_get_serial</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the serial of a message or 0 if none has been specified. </p>
<p>The message's serial number is provided by the application sending the message and is used to identify replies to this message.</p>
<p>All messages received on a connection will have a serial provided by the remote application.</p>
<p>For messages you're sending, <a class="el" href="group__DBusConnection.html#gae1cb64f4cf550949b23fd3a756b2f7d0" title="Adds a message to the outgoing message queue.">dbus_connection_send()</a> will assign a serial and return it to you.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the serial </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l01127">1127</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-header_8c_source.html#l00427">_dbus_header_get_serial()</a>, <a class="el" href="dbus-message-private_8h_source.html#l00103">header</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-connection_8c_source.html#l03399">dbus_connection_send_with_reply()</a>, <a class="el" href="dbus-message_8c_source.html#l01470">dbus_message_new_error()</a>, and <a class="el" href="dbus-message_8c_source.html#l01373">dbus_message_new_method_return()</a>.</p>

</div>
</div>
<a class="anchor" id="gaed63e4c2baaa50d782e8ebb7643def19"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_get_signature" ref="gaed63e4c2baaa50d782e8ebb7643def19" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT const char * <a class="el" href="group__DBusMessage.html#gaed63e4c2baaa50d782e8ebb7643def19">dbus_message_get_signature</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the type signature of the message, i.e. </p>
<p>the arguments in the message payload. The signature includes only "in" arguments for <a class="el" href="group__DBusProtocol.html#ga09416afd76b65139eddd31e1085d9ebf" title="Message type of a method call message, see dbus_message_get_type()">DBUS_MESSAGE_TYPE_METHOD_CALL</a> and only "out" arguments for <a class="el" href="group__DBusProtocol.html#ga4a9012edd7f22342f845e98150aeb858" title="Message type of a method return message, see dbus_message_get_type()">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>
<p>The signature is a string made up of type codes such as <a class="el" href="group__DBusProtocol.html#ga5943b497db2e1dec04fae60584a294bb" title="Type code marking a 32-bit signed integer.">DBUS_TYPE_INT32</a>. The string is terminated with nul (nul is also the value of <a class="el" href="group__DBusProtocol.html#gaa9588da889743b2119dc6664712ae51e" title="Type code that is never equal to a legitimate type code.">DBUS_TYPE_INVALID</a>).</p>
<p>The returned string becomes invalid if the message is modified, since it points into the wire-marshaled message data.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the type signature </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l03543">3543</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l00497">_dbus_string_get_const_data_len()</a>, <a class="el" href="dbus-message-private_8h_source.html#l00103">header</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-connection_8c_source.html#l00625">_dbus_connection_message_sent_unlocked()</a>, <a class="el" href="dbus-connection_8c_source.html#l00480">_dbus_connection_queue_received_message_link()</a>, <a class="el" href="dbus-connection_8c_source.html#l04549">dbus_connection_dispatch()</a>, <a class="el" href="dbus-message_8c_source.html#l03754">dbus_message_has_signature()</a>, and <a class="el" href="dbus-message_8c_source.html#l00384">dbus_message_lock()</a>.</p>

</div>
</div>
<a class="anchor" id="ga41cace31999105137772b6257ea540f9"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_get_type" ref="ga41cace31999105137772b6257ea540f9" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT int <a class="el" href="group__DBusMessage.html#ga41cace31999105137772b6257ea540f9">dbus_message_get_type</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the type of a message. </p>
<p>Types include <a class="el" href="group__DBusProtocol.html#ga09416afd76b65139eddd31e1085d9ebf" title="Message type of a method call message, see dbus_message_get_type()">DBUS_MESSAGE_TYPE_METHOD_CALL</a>, <a class="el" href="group__DBusProtocol.html#ga4a9012edd7f22342f845e98150aeb858" title="Message type of a method return message, see dbus_message_get_type()">DBUS_MESSAGE_TYPE_METHOD_RETURN</a>, <a class="el" href="group__DBusProtocol.html#ga2b9423d95066313d73eeea8eeaf86812" title="Message type of an error reply message, see dbus_message_get_type()">DBUS_MESSAGE_TYPE_ERROR</a>, <a class="el" href="group__DBusProtocol.html#ga728d893ff0c00e126517ba39835220a5" title="Message type of a signal message, see dbus_message_get_type()">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#gac975525a6ce258a7a70c583c9741b516" title="This value is never a valid message type, see dbus_message_get_type()">DBUS_MESSAGE_TYPE_INVALID</a> will never be returned.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><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#l01722">1722</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-header_8c_source.html#l00386">_dbus_header_get_message_type()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00232">DBUS_MESSAGE_TYPE_INVALID</a>, <a class="el" href="dbus-message-private_8h_source.html#l00103">header</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-connection_8c_source.html#l00625">_dbus_connection_message_sent_unlocked()</a>, <a class="el" href="dbus-connection_8c_source.html#l00480">_dbus_connection_queue_received_message_link()</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00172">_dbus_pending_call_set_reply_unlocked()</a>, <a class="el" href="dbus-connection_8c_source.html#l04549">dbus_connection_dispatch()</a>, <a class="el" href="dbus-connection_8c_source.html#l03217">dbus_connection_send_preallocated()</a>, <a class="el" href="dbus-message_8c_source.html#l03657">dbus_message_is_error()</a>, and <a class="el" href="dbus-message_8c_source.html#l03796">dbus_set_error_from_message()</a>.</p>

</div>
</div>
<a class="anchor" id="ga017cb8d960d4c360cb6b30ded5292509"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_has_destination" ref="ga017cb8d960d4c360cb6b30ded5292509" args="(DBusMessage *message, const char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#ga017cb8d960d4c360cb6b30ded5292509">dbus_message_has_destination</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks whether the message was sent to the given name. </p>
<p>If the message has no destination specified or has a different destination, returns <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">name</td><td>the name to check (must not be <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a>)</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">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#l03690">3690</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-message_8c_source.html#l03450">dbus_message_get_destination()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="ga0d1debd1c101a80c386d6ec92cdb1d93"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_has_interface" ref="ga0d1debd1c101a80c386d6ec92cdb1d93" args="(DBusMessage *message, const char *iface)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#ga0d1debd1c101a80c386d6ec92cdb1d93">dbus_message_has_interface</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>iface</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks if the message has an interface. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">iface</td><td>the interface name </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">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#l03249">3249</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-message_8c_source.html#l03227">dbus_message_get_interface()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="gad7021a30bf930f8090bc38f862f19adb"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_has_member" ref="gad7021a30bf930f8090bc38f862f19adb" args="(DBusMessage *message, const char *member)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#gad7021a30bf930f8090bc38f862f19adb">dbus_message_has_member</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>member</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks if the message has an interface member. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">member</td><td>the member name </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">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#l03335">3335</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-message_8c_source.html#l03313">dbus_message_get_member()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="gad2c87d3472bd3bfa8eca8a97f2db026b"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_has_path" ref="gad2c87d3472bd3bfa8eca8a97f2db026b" args="(DBusMessage *message, const char *path)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#gad2c87d3472bd3bfa8eca8a97f2db026b">dbus_message_has_path</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks if the message has a particular object path. </p>
<p>The object path is the destination object for a method call or the emitting object for a signal.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">path</td><td>the path name </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">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#l03120">3120</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-message_8c_source.html#l03096">dbus_message_get_path()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="ga332fb0c71efcd1e9ef43ebdf2a25350c"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_has_sender" ref="ga332fb0c71efcd1e9ef43ebdf2a25350c" args="(DBusMessage *message, const char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#ga332fb0c71efcd1e9ef43ebdf2a25350c">dbus_message_has_sender</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks whether the message has the given unique name as its sender. </p>
<p>If the message has no sender specified or has a different sender, returns <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">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>
<p>Messages from the bus itself will have <a class="el" href="group__DBusShared.html#ga9e017e829e575bdc5c554fd4d07d7355" title="The bus name used to talk to the bus itself.">DBUS_SERVICE_DBUS</a> as the sender.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">name</td><td>the name to check (must not be <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a>)</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if the message has the given sender </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l03725">3725</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-message_8c_source.html#l03510">dbus_message_get_sender()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="ga8d563a936b6147f12dce7f24df3557b7"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_has_signature" ref="ga8d563a936b6147f12dce7f24df3557b7" args="(DBusMessage *message, const char *signature)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#ga8d563a936b6147f12dce7f24df3557b7">dbus_message_has_signature</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>signature</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks whether the message has the given signature; see <a class="el" href="group__DBusMessage.html#gaed63e4c2baaa50d782e8ebb7643def19" title="Gets the type signature of the message, i.e.">dbus_message_get_signature()</a> for more details on what the signature looks like. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">signature</td><td>typecode array </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if message has the given signature </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l03754">3754</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-message_8c_source.html#l03543">dbus_message_get_signature()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="ga70ef9d7fad409666a0b5f3a8d4f0dd92"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_is_error" ref="ga70ef9d7fad409666a0b5f3a8d4f0dd92" args="(DBusMessage *message, const char *error_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#ga70ef9d7fad409666a0b5f3a8d4f0dd92">dbus_message_is_error</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>error_name</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks whether the message is an error reply with the given error name. </p>
<p>If the message is not <a class="el" href="group__DBusProtocol.html#ga2b9423d95066313d73eeea8eeaf86812" title="Message type of an error reply message, see dbus_message_get_type()">DBUS_MESSAGE_TYPE_ERROR</a>, or has a different name, returns <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">error_name</td><td>the name to check (must not be <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a>)</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if the message is the specified error </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l03657">3657</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-message_8c_source.html#l03397">dbus_message_get_error_name()</a>, <a class="el" href="dbus-message_8c_source.html#l01722">dbus_message_get_type()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00238">DBUS_MESSAGE_TYPE_ERROR</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="gad8bd4730941af47d8d0f9c9b00562a44"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_is_method_call" ref="gad8bd4730941af47d8d0f9c9b00562a44" args="(DBusMessage *message, const char *iface, const char *method)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#gad8bd4730941af47d8d0f9c9b00562a44">dbus_message_is_method_call</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>iface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>method</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks whether the message is a method call with the given interface and member fields. </p>
<p>If the message is not <a class="el" href="group__DBusProtocol.html#ga09416afd76b65139eddd31e1085d9ebf" title="Message type of a method call message, see dbus_message_get_type()">DBUS_MESSAGE_TYPE_METHOD_CALL</a>, or has a different interface or member field, returns <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">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 class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">iface</td><td>the name to check (must not be <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a>) </td></tr>
    <tr><td class="paramname">method</td><td>the name to check (must not be <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a>)</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">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#l03602">3602</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-protocol_8h_source.html#l00234">DBUS_MESSAGE_TYPE_METHOD_CALL</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

</div>
</div>
<a class="anchor" id="gaed0e32329f142cc246662227c81d5d1f"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_is_signal" ref="gaed0e32329f142cc246662227c81d5d1f" args="(DBusMessage *message, const char *iface, const char *signal_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#gaed0e32329f142cc246662227c81d5d1f">dbus_message_is_signal</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>iface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>signal_name</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks whether the message is a signal with the given interface and member fields. </p>
<p>If the message is not <a class="el" href="group__DBusProtocol.html#ga728d893ff0c00e126517ba39835220a5" title="Message type of a signal message, see dbus_message_get_type()">DBUS_MESSAGE_TYPE_SIGNAL</a>, or has a different interface or member field, returns <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">iface</td><td>the name to check (must not be <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a>) </td></tr>
    <tr><td class="paramname">signal_name</td><td>the name to check (must not be <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a>)</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if the message is the specified signal </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l03630">3630</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-protocol_8h_source.html#l00240">DBUS_MESSAGE_TYPE_SIGNAL</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

</div>
</div>
<a class="anchor" id="ga6e62697ca11f0a57dbecc93d5721612c"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_iter_abandon_container" ref="ga6e62697ca11f0a57dbecc93d5721612c" args="(DBusMessageIter *iter, DBusMessageIter *sub)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT void <a class="el" href="group__DBusMessage.html#ga6e62697ca11f0a57dbecc93d5721612c">dbus_message_iter_abandon_container</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *&#160;</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> *&#160;</td>
          <td class="paramname"><em>sub</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Abandons creation of a contained-typed value and frees resources created by <a class="el" href="group__DBusMessage.html#ga943150f4e87fd8507da224d22c266100" title="Appends a container-typed value to the message; you are required to append the contents of the contai...">dbus_message_iter_open_container()</a>. </p>
<p>Once this returns, the message is hosed and you have to start over building the whole message.</p>
<p>This should only be used to abandon creation of a message when you have open containers.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the append iterator </td></tr>
    <tr><td class="paramname">sub</td><td>sub-iterator to close </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l02951">2951</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-message_8c_source.html#l00130">DBusMessageRealIter::iter_type</a>.</p>

<p>Referenced by <a class="el" href="dbus-message_8c_source.html#l01824">dbus_message_append_args_valist()</a>.</p>

</div>
</div>
<a class="anchor" id="ga17491f3b75b3203f6fc47dcc2e3b221b"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_iter_append_basic" ref="ga17491f3b75b3203f6fc47dcc2e3b221b" args="(DBusMessageIter *iter, int type, const void *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#ga17491f3b75b3203f6fc47dcc2e3b221b">dbus_message_iter_append_basic</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *&#160;</td>
          <td class="paramname"><em>iter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Appends a basic-typed value to the message. </p>
<p>The basic types are the non-container types such as integer and string.</p>
<p>The "value" argument should be the address of a basic-typed value. So for string, const char**. For integer, dbus_int32_t*.</p>
<p>For Unix file descriptors this function will internally duplicate the descriptor you passed in. Hence you may close the descriptor immediately after this call.</p>
<dl class="todo"><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 class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the append iterator </td></tr>
    <tr><td class="paramname">type</td><td>the type of the value </td></tr>
    <tr><td class="paramname">value</td><td>the address of the value </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l02656">2656</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02959">_dbus_close()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02987">_dbus_dup()</a>, <a class="el" href="dbus-marshal-header_8c_source.html#l01273">_dbus_header_set_field_basic()</a>, <a class="el" href="dbus-marshal-recursive_8c_source.html#l02311">_dbus_type_writer_write_basic()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00297">DBUS_HEADER_FIELD_UNIX_FDS</a>, <a class="el" href="dbus-protocol_8h_source.html#l00070">DBUS_TYPE_BOOLEAN</a>, <a class="el" href="dbus-signature_8c_source.html#l00318">dbus_type_is_basic()</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="dbus-protocol_8h_source.html#l00086">DBUS_TYPE_UINT32</a>, <a class="el" href="dbus-protocol_8h_source.html#l00114">DBUS_TYPE_UNIX_FD</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h_source.html#l00103">header</a>, <a class="el" href="dbus-message_8c_source.html#l00130">DBusMessageRealIter::iter_type</a>, <a class="el" href="dbus-message_8c_source.html#l00128">DBusMessageRealIter::message</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="structDBusMessageRealIter.html#ac9c3ce5775bc9f5f0720b65093345ec6">DBusMessageRealIter::u</a>, and <a class="el" href="dbus-message_8c_source.html#l00134">DBusMessageRealIter::writer</a>.</p>

<p>Referenced by <a class="el" href="dbus-message_8c_source.html#l01824">dbus_message_append_args_valist()</a>, and <a class="el" href="dbus-message_8c_source.html#l01470">dbus_message_new_error()</a>.</p>

</div>
</div>
<a class="anchor" id="ga6e2d1e936c3c61fe00d80a3f22fd5e76"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_iter_append_fixed_array" ref="ga6e2d1e936c3c61fe00d80a3f22fd5e76" 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">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#ga6e2d1e936c3c61fe00d80a3f22fd5e76">dbus_message_iter_append_fixed_array</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *&#160;</td>
          <td class="paramname"><em>iter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>element_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>n_elements</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Appends a block of fixed-length values to an array. </p>
<p>The fixed-length types are all basic types that are not string-like. So int32, double, bool, etc. (Unix file descriptors however are not supported.) You must call <a class="el" href="group__DBusMessage.html#ga943150f4e87fd8507da224d22c266100" title="Appends a container-typed value to the message; you are required to append the contents of the contai...">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#ga17491f3b75b3203f6fc47dcc2e3b221b" title="Appends a basic-typed value to the message.">dbus_message_iter_append_basic()</a>) for the same array.</p>
<p>The "value" argument should be the address of the array. So for integer, "dbus_int32_t**" is expected for example.</p>
<dl class="warning"><dt><b>Warning:</b></dt><dd>in C, given "int array[]", "&amp;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#gab18afa60e9b17b6e322735bda3d863d8" title="A 32-bit signed integer on all platforms.">dbus_int32_t</a> array[] = { 1, 2, 3 };
 <span class="keyword">const</span> <a class="code" href="group__DBusTypes.html#gab18afa60e9b17b6e322735bda3d863d8" title="A 32-bit signed integer on all platforms.">dbus_int32_t</a> *v_ARRAY = array;
 <span class="keywordflow">if</span> (!<a class="code" href="group__DBusMessage.html#ga6e2d1e936c3c61fe00d80a3f22fd5e76" title="Appends a block of fixed-length values to an array.">dbus_message_iter_append_fixed_array</a> (&amp;iter, <a class="code" href="group__DBusProtocol.html#ga5943b497db2e1dec04fae60584a294bb" title="Type code marking a 32-bit signed integer.">DBUS_TYPE_INT32</a>, &amp;v_ARRAY, 3))
   fprintf (stderr, <span class="stringliteral">&quot;No memory!\n&quot;</span>);
</pre></div> For strings it works to write const char *array = "Hello" and then use &amp;array though.</dd></dl>
<dl class="todo"><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 class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the append iterator </td></tr>
    <tr><td class="paramname">element_type</td><td>the type of the array elements </td></tr>
    <tr><td class="paramname">value</td><td>the address of the array </td></tr>
    <tr><td class="paramname">n_elements</td><td>the number of elements to append </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l02791">2791</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-basic_8c_source.html#l01173">_dbus_type_get_alignment()</a>, <a class="el" href="dbus-marshal-recursive_8c_source.html#l02359">_dbus_type_writer_write_fixed_multi()</a>, <a class="el" href="dbus-marshal-recursive_8h_source.html#l00068">DBusTypeWriter::container_type</a>, <a class="el" href="dbus-protocol_8h_source.html#l00203">DBUS_MAXIMUM_ARRAY_LENGTH</a>, <a class="el" href="dbus-protocol_8h_source.html#l00120">DBUS_TYPE_ARRAY</a>, <a class="el" href="dbus-protocol_8h_source.html#l00070">DBUS_TYPE_BOOLEAN</a>, <a class="el" href="dbus-signature_8c_source.html#l00349">dbus_type_is_fixed()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00114">DBUS_TYPE_UNIX_FD</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message_8c_source.html#l00130">DBusMessageRealIter::iter_type</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="structDBusMessageRealIter.html#ac9c3ce5775bc9f5f0720b65093345ec6">DBusMessageRealIter::u</a>, and <a class="el" href="dbus-message_8c_source.html#l00134">DBusMessageRealIter::writer</a>.</p>

<p>Referenced by <a class="el" href="dbus-message_8c_source.html#l01824">dbus_message_append_args_valist()</a>.</p>

</div>
</div>
<a class="anchor" id="gaf00482f63d4af88b7851621d1f24087a"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_iter_close_container" ref="gaf00482f63d4af88b7851621d1f24087a" args="(DBusMessageIter *iter, DBusMessageIter *sub)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#gaf00482f63d4af88b7851621d1f24087a">dbus_message_iter_close_container</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *&#160;</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> *&#160;</td>
          <td class="paramname"><em>sub</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></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#ga943150f4e87fd8507da224d22c266100" title="Appends a container-typed value to the message; you are required to append the contents of the contai...">dbus_message_iter_open_container()</a>. </p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000037">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 class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the append iterator </td></tr>
    <tr><td class="paramname">sub</td><td>sub-iterator to close </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l02918">2918</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-recursive_8c_source.html#l02179">_dbus_type_writer_unrecurse()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message_8c_source.html#l00130">DBusMessageRealIter::iter_type</a>, <a class="el" href="structDBusMessageRealIter.html#ac9c3ce5775bc9f5f0720b65093345ec6">DBusMessageRealIter::u</a>, and <a class="el" href="dbus-message_8c_source.html#l00134">DBusMessageRealIter::writer</a>.</p>

<p>Referenced by <a class="el" href="dbus-message_8c_source.html#l01824">dbus_message_append_args_valist()</a>.</p>

</div>
</div>
<a class="anchor" id="ga5aae3c882a75aed953d8b3d489e9b271"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_iter_get_arg_type" ref="ga5aae3c882a75aed953d8b3d489e9b271" args="(DBusMessageIter *iter)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT int <a class="el" href="group__DBusMessage.html#ga5aae3c882a75aed953d8b3d489e9b271">dbus_message_iter_get_arg_type</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *&#160;</td>
          <td class="paramname"><em>iter</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the argument type of the argument that the message iterator points to. </p>
<p>If the iterator is at the end of the message, returns <a class="el" href="group__DBusProtocol.html#gaa9588da889743b2119dc6664712ae51e" title="Type code that is never equal to a legitimate type code.">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#ga9f98b47c84f0e401ea985e681de4e963" title="Initializes a DBusMessageIter for reading the arguments of the message passed in.">dbus_message_iter_init</a> (message, &amp;iter);
 <span class="keywordflow">while</span> ((current_type = <a class="code" href="group__DBusMessage.html#ga5aae3c882a75aed953d8b3d489e9b271" title="Returns the argument type of the argument that the message iterator points to.">dbus_message_iter_get_arg_type</a> (&amp;iter)) != <a class="code" href="group__DBusProtocol.html#gaa9588da889743b2119dc6664712ae51e" title="Type code that is never equal to a legitimate type code.">DBUS_TYPE_INVALID</a>)
   <a class="code" href="group__DBusMessage.html#ga554e9fafd4dcc84cebe9da9344846a82" title="Moves the iterator to the next field, if any.">dbus_message_iter_next</a> (&amp;iter);
</pre></div><dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the message iter </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the argument type </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l02139">2139</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-recursive_8c_source.html#l00786">_dbus_type_reader_get_current_type()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00060">DBUS_TYPE_INVALID</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message_8c_source.html#l00130">DBusMessageRealIter::iter_type</a>, <a class="el" href="dbus-message_8c_source.html#l00135">DBusMessageRealIter::reader</a>, and <a class="el" href="structDBusMessageRealIter.html#ac9c3ce5775bc9f5f0720b65093345ec6">DBusMessageRealIter::u</a>.</p>

<p>Referenced by <a class="el" href="dbus-message_8c_source.html#l00796">_dbus_message_iter_get_args_valist()</a>, <a class="el" href="dbus-message_8c_source.html#l02293">dbus_message_iter_get_basic()</a>, and <a class="el" href="dbus-message_8c_source.html#l02158">dbus_message_iter_get_element_type()</a>.</p>

</div>
</div>
<a class="anchor" id="gab8ff47649497b3e0b93a2289f5d3eb23"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_iter_get_array_len" ref="gab8ff47649497b3e0b93a2289f5d3eb23" args="(DBusMessageIter *iter)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusMacros.html#ga7b014fa99f6ef38c1aa5a9c02468e3a0">DBUS_DEPRECATED</a> int <a class="el" href="group__DBusMessage.html#gab8ff47649497b3e0b93a2289f5d3eb23">dbus_message_iter_get_array_len</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *&#160;</td>
          <td class="paramname"><em>iter</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the number of bytes in the array as marshaled in the wire protocol. </p>
<p>The iterator must currently be inside an array-typed value.</p>
<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#gae195a3312ae445e7ef0196854f3523f8" title="Reads a block of fixed-length values from the message iterator.">dbus_message_iter_get_fixed_array()</a> instead, or iterate over the array values and count them.</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000032">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 class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the iterator </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><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#l02346">2346</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-recursive_8c_source.html#l00900">_dbus_type_reader_get_array_length()</a>, <a class="el" href="dbus-message_8c_source.html#l00135">DBusMessageRealIter::reader</a>, and <a class="el" href="structDBusMessageRealIter.html#ac9c3ce5775bc9f5f0720b65093345ec6">DBusMessageRealIter::u</a>.</p>

</div>
</div>
<a class="anchor" id="ga41c23a05e552d0574d0444d4693d18ab"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_iter_get_basic" ref="ga41c23a05e552d0574d0444d4693d18ab" args="(DBusMessageIter *iter, void *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT void <a class="el" href="group__DBusMessage.html#ga41c23a05e552d0574d0444d4693d18ab">dbus_message_iter_get_basic</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *&#160;</td>
          <td class="paramname"><em>iter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reads a basic-typed value from the message iterator. </p>
<p>Basic types are the non-containers such as integer and string.</p>
<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>
<p>This call duplicates Unix file descriptors when reading them. It is your job to close them when you don't need them anymore.</p>
<p>Unix file descriptors that are read with this function will have the FD_CLOEXEC flag set. If you need them without this flag set, make sure to unset it with fcntl().</p>
<p>Be sure you have somehow checked that <a class="el" href="group__DBusMessage.html#ga5aae3c882a75aed953d8b3d489e9b271" title="Returns the argument type of the argument that the message iterator points to.">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>
<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#ga7652e1208743da5dd4ecc5aef07bf207" title="Recurses into a container value when reading values from a message, initializing a sub-iterator to us...">dbus_message_iter_recurse()</a>. If the container is an array of fixed-length values (except Unix file descriptors), you can get all the array elements at once with <a class="el" href="group__DBusMessage.html#gae195a3312ae445e7ef0196854f3523f8" title="Reads a block of fixed-length values from the message iterator.">dbus_message_iter_get_fixed_array()</a>. Otherwise, you have to iterate over the container's contents one value at a time.</p>
<p>All basic-typed values are guaranteed to fit in a <a class="el" href="unionDBusBasicValue.html" title="A simple value union that lets you access bytes as if they were various types; useful when dealing wi...">DBusBasicValue</a>, so in versions of libdbus that have that type, you can write code like this:</p>
<div class="fragment"><pre class="fragment"> <a class="code" href="unionDBusBasicValue.html" title="A simple value union that lets you access bytes as if they were various types; useful when dealing wi...">DBusBasicValue</a> value;
 <span class="keywordtype">int</span> type;
 <a class="code" href="group__DBusMessage.html#ga41c23a05e552d0574d0444d4693d18ab" title="Reads a basic-typed value from the message iterator.">dbus_message_iter_get_basic</a> (&amp;read_iter, &amp;value);
 type = <a class="code" href="group__DBusMessage.html#ga5aae3c882a75aed953d8b3d489e9b271" title="Returns the argument type of the argument that the message iterator points to.">dbus_message_iter_get_arg_type</a> (&amp;read_iter);
 <a class="code" href="group__DBusMessage.html#ga17491f3b75b3203f6fc47dcc2e3b221b" title="Appends a basic-typed value to the message.">dbus_message_iter_append_basic</a> (&amp;write_iter, type, &amp;value);
</pre></div><p>(All D-Bus basic types are either numeric and 8 bytes or smaller, or behave like a string; so in older versions of libdbus, <a class="el" href="unionDBusBasicValue.html" title="A simple value union that lets you access bytes as if they were various types; useful when dealing wi...">DBusBasicValue</a> can be replaced with union { char *string; unsigned char bytes[8]; }, for instance.)</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the iterator </td></tr>
    <tr><td class="paramname">value</td><td>location to store the value </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l02293">2293</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02987">_dbus_dup()</a>, <a class="el" href="dbus-marshal-recursive_8c_source.html#l00870">_dbus_type_reader_read_basic()</a>, <a class="el" href="dbus-message_8c_source.html#l02139">dbus_message_iter_get_arg_type()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00114">DBUS_TYPE_UNIX_FD</a>, <a class="el" href="dbus-message_8c_source.html#l00128">DBusMessageRealIter::message</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-message_8c_source.html#l00135">DBusMessageRealIter::reader</a>, <a class="el" href="structDBusMessageRealIter.html#ac9c3ce5775bc9f5f0720b65093345ec6">DBusMessageRealIter::u</a>, and <a class="el" href="dbus-types_8h_source.html#l00143">DBusBasicValue::u32</a>.</p>

</div>
</div>
<a class="anchor" id="ga868a7aeddb9b54b2805776b512f68cb4"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_iter_get_element_type" ref="ga868a7aeddb9b54b2805776b512f68cb4" args="(DBusMessageIter *iter)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT int <a class="el" href="group__DBusMessage.html#ga868a7aeddb9b54b2805776b512f68cb4">dbus_message_iter_get_element_type</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *&#160;</td>
          <td class="paramname"><em>iter</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the element type of the array that the message iterator points to. </p>
<p>Note that you need to check that the iterator points to an array prior to using this function.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the message iter </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><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#l02158">2158</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-recursive_8c_source.html#l00821">_dbus_type_reader_get_element_type()</a>, <a class="el" href="dbus-message_8c_source.html#l02139">dbus_message_iter_get_arg_type()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00120">DBUS_TYPE_ARRAY</a>, <a class="el" href="dbus-protocol_8h_source.html#l00060">DBUS_TYPE_INVALID</a>, <a class="el" href="dbus-message_8c_source.html#l00130">DBusMessageRealIter::iter_type</a>, <a class="el" href="dbus-message_8c_source.html#l00135">DBusMessageRealIter::reader</a>, and <a class="el" href="structDBusMessageRealIter.html#ac9c3ce5775bc9f5f0720b65093345ec6">DBusMessageRealIter::u</a>.</p>

</div>
</div>
<a class="anchor" id="gae195a3312ae445e7ef0196854f3523f8"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_iter_get_fixed_array" ref="gae195a3312ae445e7ef0196854f3523f8" args="(DBusMessageIter *iter, void *value, int *n_elements)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT void <a class="el" href="group__DBusMessage.html#gae195a3312ae445e7ef0196854f3523f8">dbus_message_iter_get_fixed_array</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *&#160;</td>
          <td class="paramname"><em>iter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>n_elements</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reads a block of fixed-length values from the message iterator. </p>
<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>
<p>There is one exception here: although DBUS_TYPE_UNIX_FD is considered a 'fixed' type arrays of this type may not be read with this function.</p>
<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#gae195a3312ae445e7ef0196854f3523f8" title="Reads a block of fixed-length values from the message iterator.">dbus_message_iter_get_fixed_array()</a> on the "sub-iterator" created by <a class="el" href="group__DBusMessage.html#ga7652e1208743da5dd4ecc5aef07bf207" title="Recurses into a container value when reading values from a message, initializing a sub-iterator to us...">dbus_message_iter_recurse()</a>).</p>
<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>
<p>This function should only be used if <a class="el" href="group__DBusSignature.html#ga2f89962cbd33e4ad843824157bae2093" title="Tells you whether values of this type can change length if you set them to some other value...">dbus_type_is_fixed()</a> returns <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> for the element type.</p>
<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#ga7652e1208743da5dd4ecc5aef07bf207" title="Recurses into a container value when reading values from a message, initializing a sub-iterator to us...">dbus_message_iter_recurse()</a> and read the elements one by one.</p>
<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#ga7652e1208743da5dd4ecc5aef07bf207" title="Recurses into a container value when reading values from a message, initializing a sub-iterator to us...">dbus_message_iter_recurse()</a>, even for fixed-length types; <a class="el" href="group__DBusMessage.html#gae195a3312ae445e7ef0196854f3523f8" title="Reads a block of fixed-length values from the message iterator.">dbus_message_iter_get_fixed_array()</a> is just an optimization.)</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the iterator </td></tr>
    <tr><td class="paramname">value</td><td>location to store the block </td></tr>
    <tr><td class="paramname">n_elements</td><td>number of elements in the block </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l02391">2391</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-recursive_8c_source.html#l00786">_dbus_type_reader_get_current_type()</a>, <a class="el" href="dbus-marshal-recursive_8c_source.html#l00924">_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#l00349">dbus_type_is_fixed()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00114">DBUS_TYPE_UNIX_FD</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-message_8c_source.html#l00135">DBusMessageRealIter::reader</a>, and <a class="el" href="structDBusMessageRealIter.html#ac9c3ce5775bc9f5f0720b65093345ec6">DBusMessageRealIter::u</a>.</p>

</div>
</div>
<a class="anchor" id="gab4579a88a1a7eaf648350466f585ef8b"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_iter_get_signature" ref="gab4579a88a1a7eaf648350466f585ef8b" args="(DBusMessageIter *iter)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT char * <a class="el" href="group__DBusMessage.html#gab4579a88a1a7eaf648350466f585ef8b">dbus_message_iter_get_signature</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *&#160;</td>
          <td class="paramname"><em>iter</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the current signature of a message iterator. </p>
<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>
<p>The returned string must be freed with <a class="el" href="group__DBusMemory.html#ga34e666b19b015035a9a31e53da84b39a" title="Frees a block of memory previously allocated by dbus_malloc() or dbus_malloc0().">dbus_free()</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the message iterator </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><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#l02220">2220</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l01119">_dbus_string_append_len()</a>, <a class="el" href="dbus-string_8c_source.html#l00242">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c_source.html#l00451">_dbus_string_get_const_data()</a>, <a class="el" href="dbus-string_8c_source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-string_8c_source.html#l00624">_dbus_string_steal_data()</a>, <a class="el" href="dbus-marshal-recursive_8c_source.html#l01125">_dbus_type_reader_get_signature()</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-message_8c_source.html#l00135">DBusMessageRealIter::reader</a>, and <a class="el" href="structDBusMessageRealIter.html#ac9c3ce5775bc9f5f0720b65093345ec6">DBusMessageRealIter::u</a>.</p>

</div>
</div>
<a class="anchor" id="gaaffc75a699c96ff6197287f166df2149"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_iter_has_next" ref="gaaffc75a699c96ff6197287f166df2149" args="(DBusMessageIter *iter)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#gaaffc75a699c96ff6197287f166df2149">dbus_message_iter_has_next</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *&#160;</td>
          <td class="paramname"><em>iter</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks if an iterator has any more fields. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the message iter </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if there are more fields following </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l02095">2095</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-recursive_8c_source.html#l01094">_dbus_type_reader_has_next()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message_8c_source.html#l00130">DBusMessageRealIter::iter_type</a>, <a class="el" href="dbus-message_8c_source.html#l00135">DBusMessageRealIter::reader</a>, and <a class="el" href="structDBusMessageRealIter.html#ac9c3ce5775bc9f5f0720b65093345ec6">DBusMessageRealIter::u</a>.</p>

</div>
</div>
<a class="anchor" id="ga9f98b47c84f0e401ea985e681de4e963"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_iter_init" ref="ga9f98b47c84f0e401ea985e681de4e963" args="(DBusMessage *message, DBusMessageIter *iter)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#ga9f98b47c84f0e401ea985e681de4e963">dbus_message_iter_init</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</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> *&#160;</td>
          <td class="paramname"><em>iter</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Initializes a <a class="el" href="structDBusMessageIter.html" title="DBusMessageIter struct; contains no public fields.">DBusMessageIter</a> for reading the arguments of the message passed in. </p>
<p>When possible, <a class="el" href="group__DBusMessage.html#gad8953f53ceea7de81cde792e3edd0230" title="Gets arguments from a message given a variable argument list.">dbus_message_get_args()</a> is much more convenient. Some types of argument can only be read with <a class="el" href="structDBusMessageIter.html" title="DBusMessageIter struct; contains no public fields.">DBusMessageIter</a> however.</p>
<p>The easiest way to iterate is like this: </p>
<div class="fragment"><pre class="fragment"> <a class="code" href="group__DBusMessage.html#ga9f98b47c84f0e401ea985e681de4e963" title="Initializes a DBusMessageIter for reading the arguments of the message passed in.">dbus_message_iter_init</a> (message, &amp;iter);
 <span class="keywordflow">while</span> ((current_type = <a class="code" href="group__DBusMessage.html#ga5aae3c882a75aed953d8b3d489e9b271" title="Returns the argument type of the argument that the message iterator points to.">dbus_message_iter_get_arg_type</a> (&amp;iter)) != <a class="code" href="group__DBusProtocol.html#gaa9588da889743b2119dc6664712ae51e" title="Type code that is never equal to a legitimate type code.">DBUS_TYPE_INVALID</a>)
   <a class="code" href="group__DBusMessage.html#ga554e9fafd4dcc84cebe9da9344846a82" title="Moves the iterator to the next field, if any.">dbus_message_iter_next</a> (&amp;iter);
</pre></div><p><a class="el" href="structDBusMessageIter.html" title="DBusMessageIter struct; contains no public fields.">DBusMessageIter</a> contains no allocated memory; it need not be freed, and can be copied by assignment or memcpy().</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">iter</td><td>pointer to an iterator to initialize </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if the message has no arguments </dd></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>

<p>References <a class="el" href="dbus-marshal-header_8c_source.html#l00174">_dbus_header_get_byte_order()</a>, <a class="el" href="dbus-marshal-recursive_8c_source.html#l00786">_dbus_type_reader_get_current_type()</a>, <a class="el" href="dbus-marshal-recursive_8c_source.html#l00733">_dbus_type_reader_init()</a>, <a class="el" href="dbus-message-private_8h_source.html#l00105">body</a>, <a class="el" href="dbus-protocol_8h_source.html#l00060">DBUS_TYPE_INVALID</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h_source.html#l00103">header</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-message_8c_source.html#l00135">DBusMessageRealIter::reader</a>, and <a class="el" href="structDBusMessageRealIter.html#ac9c3ce5775bc9f5f0720b65093345ec6">DBusMessageRealIter::u</a>.</p>

<p>Referenced by <a class="el" href="dbus-message_8c_source.html#l02009">dbus_message_get_args_valist()</a>.</p>

</div>
</div>
<a class="anchor" id="gaf733047c467ce21f4a53b65a388f1e9d"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_iter_init_append" ref="gaf733047c467ce21f4a53b65a388f1e9d" args="(DBusMessage *message, DBusMessageIter *iter)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT void <a class="el" href="group__DBusMessage.html#gaf733047c467ce21f4a53b65a388f1e9d">dbus_message_iter_init_append</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</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> *&#160;</td>
          <td class="paramname"><em>iter</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Initializes a <a class="el" href="structDBusMessageIter.html" title="DBusMessageIter struct; contains no public fields.">DBusMessageIter</a> for appending arguments to the end of a message. </p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000033">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 class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">iter</td><td>pointer to an iterator to initialize </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l02421">2421</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-header_8c_source.html#l00174">_dbus_header_get_byte_order()</a>, <a class="el" href="dbus-string_8c_source.html#l00722">_dbus_string_get_length()</a>, <a class="el" href="dbus-marshal-recursive_8c_source.html#l01528">_dbus_type_writer_init_types_delayed()</a>, <a class="el" href="dbus-message-private_8h_source.html#l00105">body</a>, <a class="el" href="dbus-message-private_8h_source.html#l00103">header</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="structDBusMessageRealIter.html#ac9c3ce5775bc9f5f0720b65093345ec6">DBusMessageRealIter::u</a>, and <a class="el" href="dbus-message_8c_source.html#l00134">DBusMessageRealIter::writer</a>.</p>

<p>Referenced by <a class="el" href="dbus-message_8c_source.html#l01824">dbus_message_append_args_valist()</a>, and <a class="el" href="dbus-message_8c_source.html#l01470">dbus_message_new_error()</a>.</p>

</div>
</div>
<a class="anchor" id="ga554e9fafd4dcc84cebe9da9344846a82"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_iter_next" ref="ga554e9fafd4dcc84cebe9da9344846a82" args="(DBusMessageIter *iter)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#ga554e9fafd4dcc84cebe9da9344846a82">dbus_message_iter_next</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *&#160;</td>
          <td class="paramname"><em>iter</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Moves the iterator to the next field, if any. </p>
<p>If there's no next field, returns <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a>. If the iterator moves forward, returns <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the message iter </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">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#l02114">2114</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-recursive_8c_source.html#l01054">_dbus_type_reader_next()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message_8c_source.html#l00130">DBusMessageRealIter::iter_type</a>, <a class="el" href="dbus-message_8c_source.html#l00135">DBusMessageRealIter::reader</a>, and <a class="el" href="structDBusMessageRealIter.html#ac9c3ce5775bc9f5f0720b65093345ec6">DBusMessageRealIter::u</a>.</p>

</div>
</div>
<a class="anchor" id="ga943150f4e87fd8507da224d22c266100"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_iter_open_container" ref="ga943150f4e87fd8507da224d22c266100" args="(DBusMessageIter *iter, int type, const char *contained_signature, DBusMessageIter *sub)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#ga943150f4e87fd8507da224d22c266100">dbus_message_iter_open_container</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *&#160;</td>
          <td class="paramname"><em>iter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</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> *&#160;</td>
          <td class="paramname"><em>sub</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></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#gaf00482f63d4af88b7851621d1f24087a" title="Closes a container-typed value appended to the message; may write out more information to the message...">dbus_message_iter_close_container()</a>. </p>
<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#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">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 class="todo"><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 class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the append iterator </td></tr>
    <tr><td class="paramname">type</td><td>the type of the value </td></tr>
    <tr><td class="paramname">contained_signature</td><td>the type of container contents </td></tr>
    <tr><td class="paramname">sub</td><td>sub-iterator to initialize </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l02849">2849</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l00190">_dbus_string_init_const()</a>, <a class="el" href="dbus-marshal-recursive_8c_source.html#l02109">_dbus_type_writer_recurse()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00164">DBUS_DICT_ENTRY_BEGIN_CHAR</a>, <a class="el" href="dbus-protocol_8h_source.html#l00120">DBUS_TYPE_ARRAY</a>, <a class="el" href="dbus-protocol_8h_source.html#l00143">DBUS_TYPE_DICT_ENTRY</a>, <a class="el" href="dbus-signature_8c_source.html#l00294">dbus_type_is_container()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00136">DBUS_TYPE_STRUCT</a>, <a class="el" href="dbus-protocol_8h_source.html#l00124">DBUS_TYPE_VARIANT</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message_8c_source.html#l00130">DBusMessageRealIter::iter_type</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="structDBusMessageRealIter.html#ac9c3ce5775bc9f5f0720b65093345ec6">DBusMessageRealIter::u</a>, and <a class="el" href="dbus-message_8c_source.html#l00134">DBusMessageRealIter::writer</a>.</p>

<p>Referenced by <a class="el" href="dbus-message_8c_source.html#l01824">dbus_message_append_args_valist()</a>.</p>

</div>
</div>
<a class="anchor" id="ga7652e1208743da5dd4ecc5aef07bf207"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_iter_recurse" ref="ga7652e1208743da5dd4ecc5aef07bf207" args="(DBusMessageIter *iter, DBusMessageIter *sub)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT void <a class="el" href="group__DBusMessage.html#ga7652e1208743da5dd4ecc5aef07bf207">dbus_message_iter_recurse</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *&#160;</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> *&#160;</td>
          <td class="paramname"><em>sub</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></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>
<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>
<p>If a container is an array of fixed-length types (except Unix file descriptors), it is much more efficient to use <a class="el" href="group__DBusMessage.html#gae195a3312ae445e7ef0196854f3523f8" title="Reads a block of fixed-length values from the message iterator.">dbus_message_iter_get_fixed_array()</a> to get the whole array in one shot, rather than individually walking over the array elements.</p>
<p>Be sure you have somehow checked that <a class="el" href="group__DBusMessage.html#ga5aae3c882a75aed953d8b3d489e9b271" title="Returns the argument type of the argument that the message iterator points to.">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 class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the message iterator </td></tr>
    <tr><td class="paramname">sub</td><td>the sub-iterator to initialize </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l02195">2195</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-recursive_8c_source.html#l00989">_dbus_type_reader_recurse()</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-message_8c_source.html#l00135">DBusMessageRealIter::reader</a>, and <a class="el" href="structDBusMessageRealIter.html#ac9c3ce5775bc9f5f0720b65093345ec6">DBusMessageRealIter::u</a>.</p>

</div>
</div>
<a class="anchor" id="gad3d6b8ec4745ec19f57cae07621f3a47"></a><!-- doxytag: member="dbus&#45;message.h::dbus_message_lock" ref="gad3d6b8ec4745ec19f57cae07621f3a47" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT void <a class="el" href="group__DBusMessage.html#gad3d6b8ec4745ec19f57cae07621f3a47">dbus_message_lock</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Locks a message. </p>
<p>Allows checking that applications don't keep a reference to a message in the outgoing queue and change it underneath us. Messages are locked when they enter the outgoing queue (dbus_connection_send_message()), and the library complains if the message is modified while locked. This function may also called externally, for applications wrapping D-Bus in another protocol.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message to lock. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l00384">384</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-header_8c_source.html#l01196">_dbus_header_update_lengths()</a>, <a class="el" href="dbus-string_8c_source.html#l00722">_dbus_string_get_length()</a>, <a class="el" href="dbus-message-private_8h_source.html#l00105">body</a>, <a class="el" href="dbus-message_8c_source.html#l03543">dbus_message_get_signature()</a>, <a class="el" href="dbus-message-private_8h_source.html#l00103">header</a>, <a class="el" href="dbus-message-private_8h_source.html#l00107">locked</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-message_8c_source.html#l04721">dbus_message_marshal()</a>.</p>

</div>
</div>
<a class="anchor" id="ga3f90a918ada328450fcfe9ac403b8807"></a><!-- doxytag: member="dbus&#45;message.h::dbus_message_marshal" ref="ga3f90a918ada328450fcfe9ac403b8807" args="(DBusMessage *msg, char **marshalled_data_p, int *len_p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#ga3f90a918ada328450fcfe9ac403b8807">dbus_message_marshal</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>marshalled_data_p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>len_p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Turn a <a class="el" href="structDBusMessage.html" title="Internals of DBusMessage.">DBusMessage</a> into the marshalled form as described in the D-Bus specification. </p>
<p>Generally, this function is only useful for encapsulating D-Bus messages in a different protocol.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">msg</td><td>the <a class="el" href="structDBusMessage.html" title="Internals of DBusMessage.">DBusMessage</a> </td></tr>
    <tr><td class="paramname">marshalled_data_p</td><td>the location to save the marshalled form to </td></tr>
    <tr><td class="paramname">len_p</td><td>the location to save the length of the marshalled form to </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if there was not enough memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l04721">4721</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l01265">_dbus_string_copy()</a>, <a class="el" href="dbus-string_8c_source.html#l00242">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c_source.html#l00722">_dbus_string_get_length()</a>, <a class="el" href="dbus-string_8c_source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-string_8c_source.html#l00624">_dbus_string_steal_data()</a>, <a class="el" href="dbus-message-private_8h_source.html#l00105">body</a>, <a class="el" href="dbus-marshal-header_8h_source.html#l00049">DBusHeader::data</a>, <a class="el" href="dbus-message_8c_source.html#l00384">dbus_message_lock()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h_source.html#l00103">header</a>, <a class="el" href="dbus-message-private_8h_source.html#l00107">locked</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="gab9e5bf8d87a95c5ca7026a791148ebd4"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_new" ref="gab9e5bf8d87a95c5ca7026a791148ebd4" args="(int message_type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="structDBusMessage.html">DBusMessage</a> * <a class="el" href="group__DBusMessage.html#gab9e5bf8d87a95c5ca7026a791148ebd4">dbus_message_new</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>message_type</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructs a new message of the given message type. </p>
<p>Types include <a class="el" href="group__DBusProtocol.html#ga09416afd76b65139eddd31e1085d9ebf" title="Message type of a method call message, see dbus_message_get_type()">DBUS_MESSAGE_TYPE_METHOD_CALL</a>, <a class="el" href="group__DBusProtocol.html#ga728d893ff0c00e126517ba39835220a5" title="Message type of a signal message, see dbus_message_get_type()">DBUS_MESSAGE_TYPE_SIGNAL</a>, and so forth.</p>
<p>Usually you want to use <a class="el" href="group__DBusMessage.html#ga98ddc82450d818138ef326a284201ee0" title="Constructs a new message to invoke a method on a remote object.">dbus_message_new_method_call()</a>, <a class="el" href="group__DBusMessage.html#ga95142bd8288f397194ee0eefb1d27125" title="Constructs a message that is a reply to a method call.">dbus_message_new_method_return()</a>, <a class="el" href="group__DBusMessage.html#ga6ce3213dfb17be7956affba40207a5a0" title="Constructs a new message representing a signal emission.">dbus_message_new_signal()</a>, or <a class="el" href="group__DBusMessage.html#ga2ab896965aec97fb21293affeed36232" title="Creates a new message that is an error reply to another message.">dbus_message_new_error()</a> instead.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message_type</td><td>type of message </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>new message or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> if no memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l01289">1289</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-header_8c_source.html#l00528">_dbus_header_create()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00232">DBUS_MESSAGE_TYPE_INVALID</a>, <a class="el" href="dbus-message_8c_source.html#l01690">dbus_message_unref()</a>, <a class="el" href="dbus-message-private_8h_source.html#l00103">header</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

</div>
</div>
<a class="anchor" id="ga2ab896965aec97fb21293affeed36232"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_new_error" ref="ga2ab896965aec97fb21293affeed36232" 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">DBUS_EXPORT <a class="el" href="structDBusMessage.html">DBusMessage</a> * <a class="el" href="group__DBusMessage.html#ga2ab896965aec97fb21293affeed36232">dbus_message_new_error</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>reply_to</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>error_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>error_message</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Creates a new message that is an error reply to another message. </p>
<p>Error replies are most common in response to method calls, but can be returned in reply to any message.</p>
<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#gabb62fd6340d0787fbd56ff8dd2f326c7" title="A generic error; &quot;something went wrong&quot; - see the error message for more.">DBUS_ERROR_FAILED</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">reply_to</td><td>the message we're replying to </td></tr>
    <tr><td class="paramname">error_name</td><td>the error name </td></tr>
    <tr><td class="paramname">error_message</td><td>the error message string (or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> for none, but please give a message) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a new error message object, free with <a class="el" href="group__DBusMessage.html#gab69441efe683918f6a82469c8763f464" title="Decrements the reference count of a DBusMessage, freeing the message if the count reaches 0...">dbus_message_unref()</a> </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l01470">1470</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-header_8c_source.html#l00528">_dbus_header_create()</a>, <a class="el" href="dbus-message_8c_source.html#l03510">dbus_message_get_sender()</a>, <a class="el" href="dbus-message_8c_source.html#l01127">dbus_message_get_serial()</a>, <a class="el" href="dbus-message_8c_source.html#l02656">dbus_message_iter_append_basic()</a>, <a class="el" href="dbus-message_8c_source.html#l02421">dbus_message_iter_init_append()</a>, <a class="el" href="dbus-message_8c_source.html#l02984">dbus_message_set_no_reply()</a>, <a class="el" href="dbus-message_8c_source.html#l01143">dbus_message_set_reply_serial()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00238">DBUS_MESSAGE_TYPE_ERROR</a>, <a class="el" href="dbus-message_8c_source.html#l01690">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#l00103">header</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-pending-call_8c_source.html#l00354">_dbus_pending_call_set_timeout_error_unlocked()</a>, <a class="el" href="dbus-connection_8c_source.html#l04549">dbus_connection_dispatch()</a>, and <a class="el" href="dbus-message_8c_source.html#l01542">dbus_message_new_error_printf()</a>.</p>

</div>
</div>
<a class="anchor" id="ga707a27881820f964e3606bc906a47978"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_new_error_printf" ref="ga707a27881820f964e3606bc906a47978" 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">DBUS_EXPORT <a class="el" href="structDBusMessage.html">DBusMessage</a> * <a class="el" href="group__DBusMessage.html#ga707a27881820f964e3606bc906a47978">dbus_message_new_error_printf</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>reply_to</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>error_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>error_format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></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>
<p>See <a class="el" href="group__DBusMessage.html#ga2ab896965aec97fb21293affeed36232" title="Creates a new message that is an error reply to another message.">dbus_message_new_error()</a> for details - this function is the same aside from the printf formatting.</p>
<dl class="todo"><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 class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">reply_to</td><td>the original message </td></tr>
    <tr><td class="paramname">error_name</td><td>the error name </td></tr>
    <tr><td class="paramname">error_format</td><td>the error message format as with printf </td></tr>
    <tr><td class="paramname">...</td><td>format string arguments </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><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#l01542">1542</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l01055">_dbus_string_append_printf_valist()</a>, <a class="el" href="dbus-string_8c_source.html#l00242">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c_source.html#l00451">_dbus_string_get_const_data()</a>, <a class="el" href="dbus-string_8c_source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-message_8c_source.html#l01470">dbus_message_new_error()</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

</div>
</div>
<a class="anchor" id="ga98ddc82450d818138ef326a284201ee0"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_new_method_call" ref="ga98ddc82450d818138ef326a284201ee0" args="(const char *destination, const char *path, const char *iface, const char *method)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="structDBusMessage.html">DBusMessage</a> * <a class="el" href="group__DBusMessage.html#ga98ddc82450d818138ef326a284201ee0">dbus_message_new_method_call</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>destination</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>iface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>method</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructs a new message to invoke a method on a remote object. </p>
<p>Returns <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> if memory can't be allocated for the message. The destination may be <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">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#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a>, which means that if multiple methods with the given name exist it is undefined which one will be invoked.</p>
<p>The path and method names may not be <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a>.</p>
<p>Destination, path, interface, and method name can't contain any invalid characters (see the D-Bus specification).</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">destination</td><td>name that the message should be sent to or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> </td></tr>
    <tr><td class="paramname">path</td><td>object path the message should be sent to </td></tr>
    <tr><td class="paramname">iface</td><td>interface to invoke method on, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> </td></tr>
    <tr><td class="paramname">method</td><td>method to invoke</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a new <a class="el" href="structDBusMessage.html" title="Internals of DBusMessage.">DBusMessage</a>, free with <a class="el" href="group__DBusMessage.html#gab69441efe683918f6a82469c8763f464" title="Decrements the reference count of a DBusMessage, freeing the message if the count reaches 0...">dbus_message_unref()</a> </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l01333">1333</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-header_8c_source.html#l00528">_dbus_header_create()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00234">DBUS_MESSAGE_TYPE_METHOD_CALL</a>, <a class="el" href="dbus-message_8c_source.html#l01690">dbus_message_unref()</a>, <a class="el" href="dbus-message-private_8h_source.html#l00103">header</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-bus_8c_source.html#l01526">dbus_bus_add_match()</a>, <a class="el" href="dbus-bus_8c_source.html#l00948">dbus_bus_get_id()</a>, <a class="el" href="dbus-bus_8c_source.html#l00865">dbus_bus_get_unix_user()</a>, <a class="el" href="dbus-bus_8c_source.html#l01280">dbus_bus_name_has_owner()</a>, <a class="el" href="dbus-bus_8c_source.html#l00646">dbus_bus_register()</a>, <a class="el" href="dbus-bus_8c_source.html#l01198">dbus_bus_release_name()</a>, <a class="el" href="dbus-bus_8c_source.html#l01576">dbus_bus_remove_match()</a>, <a class="el" href="dbus-bus_8c_source.html#l01112">dbus_bus_request_name()</a>, and <a class="el" href="dbus-bus_8c_source.html#l01356">dbus_bus_start_service_by_name()</a>.</p>

</div>
</div>
<a class="anchor" id="ga95142bd8288f397194ee0eefb1d27125"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_new_method_return" ref="ga95142bd8288f397194ee0eefb1d27125" args="(DBusMessage *method_call)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="structDBusMessage.html">DBusMessage</a> * <a class="el" href="group__DBusMessage.html#ga95142bd8288f397194ee0eefb1d27125">dbus_message_new_method_return</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>method_call</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructs a message that is a reply to a method call. </p>
<p>Returns <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> if memory can't be allocated for the message.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">method_call</td><td>the message being replied to </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a new <a class="el" href="structDBusMessage.html" title="Internals of DBusMessage.">DBusMessage</a>, free with <a class="el" href="group__DBusMessage.html#gab69441efe683918f6a82469c8763f464" title="Decrements the reference count of a DBusMessage, freeing the message if the count reaches 0...">dbus_message_unref()</a> </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l01373">1373</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-header_8c_source.html#l00528">_dbus_header_create()</a>, <a class="el" href="dbus-message_8c_source.html#l03510">dbus_message_get_sender()</a>, <a class="el" href="dbus-message_8c_source.html#l01127">dbus_message_get_serial()</a>, <a class="el" href="dbus-message_8c_source.html#l02984">dbus_message_set_no_reply()</a>, <a class="el" href="dbus-message_8c_source.html#l01143">dbus_message_set_reply_serial()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00236">DBUS_MESSAGE_TYPE_METHOD_RETURN</a>, <a class="el" href="dbus-message_8c_source.html#l01690">dbus_message_unref()</a>, <a class="el" href="dbus-message-private_8h_source.html#l00103">header</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="ga6ce3213dfb17be7956affba40207a5a0"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_new_signal" ref="ga6ce3213dfb17be7956affba40207a5a0" args="(const char *path, const char *iface, const char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="structDBusMessage.html">DBusMessage</a> * <a class="el" href="group__DBusMessage.html#ga6ce3213dfb17be7956affba40207a5a0">dbus_message_new_signal</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>iface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructs a new message representing a signal emission. </p>
<p>Returns <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">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>
<p>Path, interface, and signal name must all be valid (the D-Bus specification defines the syntax of these fields).</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>the path to the object emitting the signal </td></tr>
    <tr><td class="paramname">iface</td><td>the interface the signal is emitted from </td></tr>
    <tr><td class="paramname">name</td><td>name of the signal </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a new <a class="el" href="structDBusMessage.html" title="Internals of DBusMessage.">DBusMessage</a>, free with <a class="el" href="group__DBusMessage.html#gab69441efe683918f6a82469c8763f464" title="Decrements the reference count of a DBusMessage, freeing the message if the count reaches 0...">dbus_message_unref()</a> </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l01424">1424</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-header_8c_source.html#l00528">_dbus_header_create()</a>, <a class="el" href="dbus-message_8c_source.html#l02984">dbus_message_set_no_reply()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00240">DBUS_MESSAGE_TYPE_SIGNAL</a>, <a class="el" href="dbus-message_8c_source.html#l01690">dbus_message_unref()</a>, <a class="el" href="dbus-message-private_8h_source.html#l00103">header</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-connection_8c_source.html#l01249">_dbus_connection_new_for_transport()</a>.</p>

</div>
</div>
<a class="anchor" id="ga834035e4817acd64adc8ca584bdf3982"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_ref" ref="ga834035e4817acd64adc8ca584bdf3982" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="structDBusMessage.html">DBusMessage</a> * <a class="el" href="group__DBusMessage.html#ga834035e4817acd64adc8ca584bdf3982">dbus_message_ref</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Increments the reference count of a <a class="el" href="structDBusMessage.html" title="Internals of DBusMessage.">DBusMessage</a>. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the message </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__DBusMessage.html#gab69441efe683918f6a82469c8763f464" title="Decrements the reference count of a DBusMessage, freeing the message if the count reaches 0...">dbus_message_unref</a> </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l01667">1667</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02501">_dbus_atomic_inc()</a>, <a class="el" href="dbus-memory_8c_source.html#l00781">_dbus_current_generation</a>, <a class="el" href="dbus-message-private_8h_source.html#l00121">generation</a>, <a class="el" href="dbus-message-private_8h_source.html#l00110">in_cache</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-message-private_8h_source.html#l00101">refcount</a>.</p>

<p>Referenced by <a class="el" href="dbus-pending-call_8c_source.html#l00172">_dbus_pending_call_set_reply_unlocked()</a>.</p>

</div>
</div>
<a class="anchor" id="ga1596d92a8d604f954b48c7410263d2f0"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_set_auto_start" ref="ga1596d92a8d604f954b48c7410263d2f0" args="(DBusMessage *message, dbus_bool_t auto_start)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT void <a class="el" href="group__DBusMessage.html#ga1596d92a8d604f954b48c7410263d2f0">dbus_message_set_auto_start</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</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#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td>
          <td class="paramname"><em>auto_start</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></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>
<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>
<p>The flag is set to <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> by default, i.e. auto starting is the default.</p>
<p>On the protocol level this toggles <a class="el" href="group__DBusProtocol.html#ga8699fad5ce9ff93fe3f3471ba463dd40" title="If set, this flag means that even if the message bus knows how to start an owner for the destination ...">DBUS_HEADER_FLAG_NO_AUTO_START</a></p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">auto_start</td><td><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if auto-starting is desired </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l03026">3026</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-header_8c_source.html#l01457">_dbus_header_toggle_flag()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00256">DBUS_HEADER_FLAG_NO_AUTO_START</a>, <a class="el" href="dbus-message-private_8h_source.html#l00103">header</a>, <a class="el" href="dbus-message-private_8h_source.html#l00107">locked</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

</div>
</div>
<a class="anchor" id="ga29331c4e9c2d53cbe60382056f6495a1"></a><!-- doxytag: member="dbus&#45;message.h::dbus_message_set_data" ref="ga29331c4e9c2d53cbe60382056f6495a1" 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">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#ga29331c4e9c2d53cbe60382056f6495a1">dbus_message_set_data</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</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#gab18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a>&#160;</td>
          <td class="paramname"><em>slot</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</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#ga061bcded226d76c7d7de35beaa165cb5">DBusFreeFunction</a>&#160;</td>
          <td class="paramname"><em>free_data_func</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Stores a pointer on a <a class="el" href="structDBusMessage.html" title="Internals of DBusMessage.">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>
<p>The slot number must have been allocated with <a class="el" href="group__DBusMessageInternals.html#ga537b3456202fdd9f305666504bde98fb" title="Allocates an integer ID to be used for storing application-specific data on any DBusMessage.">dbus_message_allocate_data_slot()</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">slot</td><td>the slot number </td></tr>
    <tr><td class="paramname">data</td><td>the data to store </td></tr>
    <tr><td class="paramname">free_data_func</td><td>finalizer function for the data </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">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#l04599">4599</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-dataslot_8c_source.html#l00221">_dbus_data_slot_list_set()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-message-private_8h_source.html#l00118">slot_list</a>.</p>

</div>
</div>
<a class="anchor" id="gacc47c1af23addfc4198b70084ba068fc"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_set_destination" ref="gacc47c1af23addfc4198b70084ba068fc" args="(DBusMessage *message, const char *destination)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#gacc47c1af23addfc4198b70084ba068fc">dbus_message_set_destination</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>destination</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the message's destination. </p>
<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>
<p>The destination name must contain only valid characters as defined in the D-Bus specification.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">destination</td><td>the destination name or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> to unset </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l03425">3425</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-protocol_8h_source.html#l00283">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#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h_source.html#l00107">locked</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

</div>
</div>
<a class="anchor" id="ga892f9857707371c2a53cec6b54c843c7"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_set_error_name" ref="ga892f9857707371c2a53cec6b54c843c7" args="(DBusMessage *message, const char *error_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#ga892f9857707371c2a53cec6b54c843c7">dbus_message_set_error_name</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>error_name</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the name of the error (DBUS_MESSAGE_TYPE_ERROR). </p>
<p>The name is fully-qualified (namespaced).</p>
<p>The error name must contain only valid characters as defined in the D-Bus specification.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">error_name</td><td>the name or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> to unset </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l03371">3371</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-protocol_8h_source.html#l00275">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#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h_source.html#l00107">locked</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

</div>
</div>
<a class="anchor" id="ga02b754855e4d9a1cade8e4fc17a3f5c7"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_set_interface" ref="ga02b754855e4d9a1cade8e4fc17a3f5c7" args="(DBusMessage *message, const char *iface)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#ga02b754855e4d9a1cade8e4fc17a3f5c7">dbus_message_set_interface</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>iface</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></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>
<p>The interface name must contain only valid characters as defined in the D-Bus specification.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">iface</td><td>the interface or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> to unset </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l03198">3198</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-protocol_8h_source.html#l00269">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#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h_source.html#l00107">locked</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

</div>
</div>
<a class="anchor" id="ga3afdda6016816cc70b451d8657065208"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_set_member" ref="ga3afdda6016816cc70b451d8657065208" args="(DBusMessage *message, const char *member)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#ga3afdda6016816cc70b451d8657065208">dbus_message_set_member</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>member</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></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>
<p>The member name must contain only valid characters as defined in the D-Bus specification.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">member</td><td>the member or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> to unset </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l03286">3286</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-protocol_8h_source.html#l00271">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#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h_source.html#l00107">locked</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

</div>
</div>
<a class="anchor" id="ga0e86aeb2dc6831ccc9a21fcbf8cc16f7"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_set_no_reply" ref="ga0e86aeb2dc6831ccc9a21fcbf8cc16f7" args="(DBusMessage *message, dbus_bool_t no_reply)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT void <a class="el" href="group__DBusMessage.html#ga0e86aeb2dc6831ccc9a21fcbf8cc16f7">dbus_message_set_no_reply</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</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#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td>
          <td class="paramname"><em>no_reply</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></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>
<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>
<p>The flag is <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> by default, that is by default the other end is required to reply.</p>
<p>On the protocol level this toggles <a class="el" href="group__DBusProtocol.html#ga0dcac038284250b3b0bff49cb4990626" title="If set, this flag means that the sender of a message does not care about getting a reply...">DBUS_HEADER_FLAG_NO_REPLY_EXPECTED</a></p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">no_reply</td><td><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if no reply is desired </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l02984">2984</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-header_8c_source.html#l01457">_dbus_header_toggle_flag()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00249">DBUS_HEADER_FLAG_NO_REPLY_EXPECTED</a>, <a class="el" href="dbus-message-private_8h_source.html#l00103">header</a>, <a class="el" href="dbus-message-private_8h_source.html#l00107">locked</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-message_8c_source.html#l01470">dbus_message_new_error()</a>, <a class="el" href="dbus-message_8c_source.html#l01373">dbus_message_new_method_return()</a>, and <a class="el" href="dbus-message_8c_source.html#l01424">dbus_message_new_signal()</a>.</p>

</div>
</div>
<a class="anchor" id="gaaf25da0ba1482266293d329314c21786"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_set_path" ref="gaaf25da0ba1482266293d329314c21786" args="(DBusMessage *message, const char *object_path)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#gaaf25da0ba1482266293d329314c21786">dbus_message_set_path</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>object_path</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></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>
<p>The path must contain only valid characters as defined in the D-Bus specification.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">object_path</td><td>the path or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> to unset </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l03067">3067</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-protocol_8h_source.html#l00265">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#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h_source.html#l00107">locked</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

</div>
</div>
<a class="anchor" id="gaec08603ff3d49bbcded67d25188a23f1"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_set_reply_serial" ref="gaec08603ff3d49bbcded67d25188a23f1" args="(DBusMessage *message, dbus_uint32_t reply_serial)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#gaec08603ff3d49bbcded67d25188a23f1">dbus_message_set_reply_serial</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</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#gaf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a>&#160;</td>
          <td class="paramname"><em>reply_serial</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></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 class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">reply_serial</td><td>the serial we're replying to </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l01143">1143</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-header_8c_source.html#l01273">_dbus_header_set_field_basic()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00279">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#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h_source.html#l00103">header</a>, <a class="el" href="dbus-message-private_8h_source.html#l00107">locked</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-message_8c_source.html#l01470">dbus_message_new_error()</a>, and <a class="el" href="dbus-message_8c_source.html#l01373">dbus_message_new_method_return()</a>.</p>

</div>
</div>
<a class="anchor" id="gaa2170744c2c19217d9df02551f16bc92"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_set_sender" ref="gaa2170744c2c19217d9df02551f16bc92" args="(DBusMessage *message, const char *sender)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#gaa2170744c2c19217d9df02551f16bc92">dbus_message_set_sender</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>sender</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the message sender. </p>
<p>The sender must be a valid bus name as defined in the D-Bus specification.</p>
<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 class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">sender</td><td>the sender or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> to unset </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l03479">3479</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-protocol_8h_source.html#l00288">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#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h_source.html#l00107">locked</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

</div>
</div>
<a class="anchor" id="gaa35c17742d8fe091aa039cbd29961c52"></a><!-- doxytag: member="dbus&#45;message.h::dbus_message_set_serial" ref="gaa35c17742d8fe091aa039cbd29961c52" args="(DBusMessage *message, dbus_uint32_t serial)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT void <a class="el" href="group__DBusMessage.html#gaa35c17742d8fe091aa039cbd29961c52">dbus_message_set_serial</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</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#gaf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a>&#160;</td>
          <td class="paramname"><em>serial</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the serial number of a message. </p>
<p>This can only be done once on a message.</p>
<p><a class="el" href="structDBusConnection.html" title="Implementation details of DBusConnection.">DBusConnection</a> will automatically set the serial to an appropriate value when the message is sent; this function is only needed when encapsulating messages in another protocol, or otherwise bypassing <a class="el" href="structDBusConnection.html" title="Implementation details of DBusConnection.">DBusConnection</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
    <tr><td class="paramname">serial</td><td>the serial </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l00254">254</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-marshal-header_8c_source.html#l00404">_dbus_header_set_serial()</a>, <a class="el" href="dbus-message-private_8h_source.html#l00103">header</a>, <a class="el" href="dbus-message-private_8h_source.html#l00107">locked</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-connection_8c_source.html#l03399">dbus_connection_send_with_reply()</a>.</p>

</div>
</div>
<a class="anchor" id="gabc69747028f1e5adedc68f5ffd538c74"></a><!-- doxytag: member="dbus&#45;message.h::dbus_message_type_from_string" ref="gabc69747028f1e5adedc68f5ffd538c74" args="(const char *type_str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT int <a class="el" href="group__DBusMessage.html#gabc69747028f1e5adedc68f5ffd538c74">dbus_message_type_from_string</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>type_str</em></td><td>)</td>
          <td></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">&quot;method_call&quot;</span>    -&gt; <a class="code" href="group__DBusProtocol.html#ga09416afd76b65139eddd31e1085d9ebf" title="Message type of a method call message, see dbus_message_get_type()">DBUS_MESSAGE_TYPE_METHOD_CALL</a>
   <span class="stringliteral">&quot;method_return&quot;</span>  -&gt; <a class="code" href="group__DBusProtocol.html#ga4a9012edd7f22342f845e98150aeb858" title="Message type of a method return message, see dbus_message_get_type()">DBUS_MESSAGE_TYPE_METHOD_RETURN</a>
   <span class="stringliteral">&quot;signal&quot;</span>         -&gt; <a class="code" href="group__DBusProtocol.html#ga728d893ff0c00e126517ba39835220a5" title="Message type of a signal message, see dbus_message_get_type()">DBUS_MESSAGE_TYPE_SIGNAL</a>
   <span class="stringliteral">&quot;error&quot;</span>          -&gt; <a class="code" href="group__DBusProtocol.html#ga2b9423d95066313d73eeea8eeaf86812" title="Message type of an error reply message, see dbus_message_get_type()">DBUS_MESSAGE_TYPE_ERROR</a>
   anything <span class="keywordflow">else</span>    -&gt; <a class="code" href="group__DBusProtocol.html#gac975525a6ce258a7a70c583c9741b516" title="This value is never a valid message type, see dbus_message_get_type()">DBUS_MESSAGE_TYPE_INVALID</a>
</pre></div> 
<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l04663">4663</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-protocol_8h_source.html#l00238">DBUS_MESSAGE_TYPE_ERROR</a>, <a class="el" href="dbus-protocol_8h_source.html#l00232">DBUS_MESSAGE_TYPE_INVALID</a>, <a class="el" href="dbus-protocol_8h_source.html#l00234">DBUS_MESSAGE_TYPE_METHOD_CALL</a>, <a class="el" href="dbus-protocol_8h_source.html#l00236">DBUS_MESSAGE_TYPE_METHOD_RETURN</a>, and <a class="el" href="dbus-protocol_8h_source.html#l00240">DBUS_MESSAGE_TYPE_SIGNAL</a>.</p>

</div>
</div>
<a class="anchor" id="ga13f28b9d8b321baa4536f820a359c092"></a><!-- doxytag: member="dbus&#45;message.h::dbus_message_type_to_string" ref="ga13f28b9d8b321baa4536f820a359c092" args="(int type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT const char* <a class="el" href="group__DBusMessage.html#ga13f28b9d8b321baa4536f820a359c092">dbus_message_type_to_string</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>type</em></td><td>)</td>
          <td></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#ga09416afd76b65139eddd31e1085d9ebf" title="Message type of a method call message, see dbus_message_get_type()">DBUS_MESSAGE_TYPE_METHOD_CALL</a>    -&gt; <span class="stringliteral">&quot;method_call&quot;</span>
   <a class="code" href="group__DBusProtocol.html#ga4a9012edd7f22342f845e98150aeb858" title="Message type of a method return message, see dbus_message_get_type()">DBUS_MESSAGE_TYPE_METHOD_RETURN</a>  -&gt; <span class="stringliteral">&quot;method_return&quot;</span>
   <a class="code" href="group__DBusProtocol.html#ga728d893ff0c00e126517ba39835220a5" title="Message type of a signal message, see dbus_message_get_type()">DBUS_MESSAGE_TYPE_SIGNAL</a>         -&gt; <span class="stringliteral">&quot;signal&quot;</span>
   <a class="code" href="group__DBusProtocol.html#ga2b9423d95066313d73eeea8eeaf86812" title="Message type of an error reply message, see dbus_message_get_type()">DBUS_MESSAGE_TYPE_ERROR</a>          -&gt; <span class="stringliteral">&quot;error&quot;</span>
   <a class="code" href="group__DBusProtocol.html#gac975525a6ce258a7a70c583c9741b516" title="This value is never a valid message type, see dbus_message_get_type()">DBUS_MESSAGE_TYPE_INVALID</a>        -&gt; <span class="stringliteral">&quot;invalid&quot;</span>
</pre></div> 
<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l04691">4691</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-protocol_8h_source.html#l00238">DBUS_MESSAGE_TYPE_ERROR</a>, <a class="el" href="dbus-protocol_8h_source.html#l00234">DBUS_MESSAGE_TYPE_METHOD_CALL</a>, <a class="el" href="dbus-protocol_8h_source.html#l00236">DBUS_MESSAGE_TYPE_METHOD_RETURN</a>, and <a class="el" href="dbus-protocol_8h_source.html#l00240">DBUS_MESSAGE_TYPE_SIGNAL</a>.</p>

<p>Referenced by <a class="el" href="dbus-connection_8c_source.html#l00625">_dbus_connection_message_sent_unlocked()</a>, <a class="el" href="dbus-connection_8c_source.html#l00480">_dbus_connection_queue_received_message_link()</a>, and <a class="el" href="dbus-connection_8c_source.html#l04549">dbus_connection_dispatch()</a>.</p>

</div>
</div>
<a class="anchor" id="gab69441efe683918f6a82469c8763f464"></a><!-- doxytag: member="dbus&#45;message.c::dbus_message_unref" ref="gab69441efe683918f6a82469c8763f464" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT void <a class="el" href="group__DBusMessage.html#gab69441efe683918f6a82469c8763f464">dbus_message_unref</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&#160;</td>
          <td class="paramname"><em>message</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Decrements the reference count of a <a class="el" href="structDBusMessage.html" title="Internals of DBusMessage.">DBusMessage</a>, freeing the message if the count reaches 0. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message</td><td>the message </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__DBusMessage.html#ga834035e4817acd64adc8ca584bdf3982" title="Increments the reference count of a DBusMessage.">dbus_message_ref</a> </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l01690">1690</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02524">_dbus_atomic_dec()</a>, <a class="el" href="dbus-memory_8c_source.html#l00781">_dbus_current_generation</a>, <a class="el" href="dbus-message-private_8h_source.html#l00121">generation</a>, <a class="el" href="dbus-message-private_8h_source.html#l00110">in_cache</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-message-private_8h_source.html#l00101">refcount</a>.</p>

<p>Referenced by <a class="el" href="dbus-connection_8c_source.html#l01249">_dbus_connection_new_for_transport()</a>, <a class="el" href="dbus-connection_8c_source.html#l00399">_dbus_connection_unlock()</a>, <a class="el" href="dbus-message_8c_source.html#l04302">_dbus_message_loader_queue_messages()</a>, <a class="el" href="dbus-message_8c_source.html#l03925">_dbus_message_loader_unref()</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00354">_dbus_pending_call_set_timeout_error_unlocked()</a>, <a class="el" href="dbus-bus_8c_source.html#l01526">dbus_bus_add_match()</a>, <a class="el" href="dbus-bus_8c_source.html#l00948">dbus_bus_get_id()</a>, <a class="el" href="dbus-bus_8c_source.html#l00865">dbus_bus_get_unix_user()</a>, <a class="el" href="dbus-bus_8c_source.html#l01280">dbus_bus_name_has_owner()</a>, <a class="el" href="dbus-bus_8c_source.html#l00646">dbus_bus_register()</a>, <a class="el" href="dbus-bus_8c_source.html#l01198">dbus_bus_release_name()</a>, <a class="el" href="dbus-bus_8c_source.html#l01576">dbus_bus_remove_match()</a>, <a class="el" href="dbus-bus_8c_source.html#l01112">dbus_bus_request_name()</a>, <a class="el" href="dbus-bus_8c_source.html#l01356">dbus_bus_start_service_by_name()</a>, <a class="el" href="dbus-connection_8c_source.html#l04549">dbus_connection_dispatch()</a>, <a class="el" href="dbus-connection_8c_source.html#l03535">dbus_connection_send_with_reply_and_block()</a>, <a class="el" href="dbus-message_8c_source.html#l01289">dbus_message_new()</a>, <a class="el" href="dbus-message_8c_source.html#l01470">dbus_message_new_error()</a>, <a class="el" href="dbus-message_8c_source.html#l01333">dbus_message_new_method_call()</a>, <a class="el" href="dbus-message_8c_source.html#l01373">dbus_message_new_method_return()</a>, and <a class="el" href="dbus-message_8c_source.html#l01424">dbus_message_new_signal()</a>.</p>

</div>
</div>
<a class="anchor" id="gaba5e49e956e6bbd1f857ffd21c289276"></a><!-- doxytag: member="dbus&#45;message.c::dbus_set_error_from_message" ref="gaba5e49e956e6bbd1f857ffd21c289276" args="(DBusError *error, DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBUS_EXPORT <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusMessage.html#gaba5e49e956e6bbd1f857ffd21c289276">dbus_set_error_from_message</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&#160;</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> *&#160;</td>
          <td class="paramname"><em>message</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets a <a class="el" href="structDBusError.html" title="Object representing an exception.">DBusError</a> based on the contents of the given message. </p>
<p>The error is only set if the message is an error message, as in <a class="el" href="group__DBusProtocol.html#ga2b9423d95066313d73eeea8eeaf86812" title="Message type of an error reply message, see dbus_message_get_type()">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>
<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" title="Object representing an exception.">DBusError</a> in one go: </p>
<div class="fragment"><pre class="fragment">  <span class="keywordflow">if</span> (<a class="code" href="group__DBusMessage.html#gaba5e49e956e6bbd1f857ffd21c289276" title="Sets a DBusError based on the contents of the given message.">dbus_set_error_from_message</a> (error, reply))
    <span class="keywordflow">return</span> error;
  <span class="keywordflow">else</span>
    process reply;
</pre></div><dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">error</td><td>the error to set </td></tr>
    <tr><td class="paramname">message</td><td>the message to set it from </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if the message had type <a class="el" href="group__DBusProtocol.html#ga2b9423d95066313d73eeea8eeaf86812" title="Message type of an error reply message, see dbus_message_get_type()">DBUS_MESSAGE_TYPE_ERROR</a> </dd></dl>

<p>Definition at line <a class="el" href="dbus-message_8c_source.html#l03796">3796</a> of file <a class="el" href="dbus-message_8c_source.html">dbus-message.c</a>.</p>

<p>References <a class="el" href="dbus-message_8c_source.html#l01980">dbus_message_get_args()</a>, <a class="el" href="dbus-message_8c_source.html#l03397">dbus_message_get_error_name()</a>, <a class="el" href="dbus-message_8c_source.html#l01722">dbus_message_get_type()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00238">DBUS_MESSAGE_TYPE_ERROR</a>, <a class="el" href="dbus-errors_8c_source.html#l00354">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#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-bus_8c_source.html#l00948">dbus_bus_get_id()</a>, <a class="el" href="dbus-bus_8c_source.html#l00865">dbus_bus_get_unix_user()</a>, <a class="el" href="dbus-bus_8c_source.html#l00646">dbus_bus_register()</a>, <a class="el" href="dbus-bus_8c_source.html#l01198">dbus_bus_release_name()</a>, <a class="el" href="dbus-bus_8c_source.html#l01112">dbus_bus_request_name()</a>, <a class="el" href="dbus-bus_8c_source.html#l01356">dbus_bus_start_service_by_name()</a>, and <a class="el" href="dbus-connection_8c_source.html#l03535">dbus_connection_send_with_reply_and_block()</a>.</p>

</div>
</div>
</div><!-- contents -->


<hr class="footer"/><address class="footer"><small>
Generated on Thu Mar 3 2016 17:50:33 for D-Bus by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>

</body>
</html>