Sophie

Sophie

distrib > Mandriva > 2007.0 > x86_64 > media > main-release > by-pkgid > 926d2d1e3111287cee1b0a4fad4fb4f6 > files > 194

lib64dbus-1_3-devel-0.92-6mdv2007.0.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>DBusMessage implementation details</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.2.15 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; </center>
<hr><h1>DBusMessage implementation details<br>
<small>
[<a class="el" href="group__DBusInternals.html">D-BUS internal implementation details</a>]</small>
</h1><a class="el" href="structDBusMessage.html">DBusMessage</a> private implementation details. 
<a href="#_details">More...</a><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Data Structures</h2></td></tr>
<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structDBusMessage.html">DBusMessage</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Internals of DBusMessage.</em> <a href="structDBusMessage.html#_details">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Implementation details of DBusMessageLoader.</em> <a href="structDBusMessageLoader.html#_details">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structDBusMessageRealIter.html">DBusMessageRealIter</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Internals of <a class="el" href="structDBusMessageIter.html">DBusMessageIter</a>.</em> <a href="structDBusMessageRealIter.html#_details">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structHeaderField.html">HeaderField</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Cached information about a header field in the message.</em> <a href="structHeaderField.html#_details">More...</a><em></em></font><br><br></td></tr>
<tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top><a name="a53" doxytag="DBusMessageInternals::BYTE_ORDER_OFFSET"></a>
#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a53">BYTE_ORDER_OFFSET</a>&nbsp;&nbsp;&nbsp;0</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Offset to byte order from start of header.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a54" doxytag="DBusMessageInternals::TYPE_OFFSET"></a>
#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a54">TYPE_OFFSET</a>&nbsp;&nbsp;&nbsp;1</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Offset to type from start of header.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a55" doxytag="DBusMessageInternals::FLAGS_OFFSET"></a>
#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a55">FLAGS_OFFSET</a>&nbsp;&nbsp;&nbsp;2</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Offset to flags from start of header.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a56" doxytag="DBusMessageInternals::VERSION_OFFSET"></a>
#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a56">VERSION_OFFSET</a>&nbsp;&nbsp;&nbsp;3</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Offset to version from start of header.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a57" doxytag="DBusMessageInternals::HEADER_LENGTH_OFFSET"></a>
#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a57">HEADER_LENGTH_OFFSET</a>&nbsp;&nbsp;&nbsp;4</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Offset to header length from start of header.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a58" doxytag="DBusMessageInternals::BODY_LENGTH_OFFSET"></a>
#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a58">BODY_LENGTH_OFFSET</a>&nbsp;&nbsp;&nbsp;8</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Offset to body length from start of header.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a59" doxytag="DBusMessageInternals::CLIENT_SERIAL_OFFSET"></a>
#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a59">CLIENT_SERIAL_OFFSET</a>&nbsp;&nbsp;&nbsp;12</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Offset to client serial from start of header.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a60" doxytag="DBusMessageInternals::MAX_BYTES_OVERHEAD_TO_APPEND_A_STRING"></a>
#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a60">MAX_BYTES_OVERHEAD_TO_APPEND_A_STRING</a>&nbsp;&nbsp;&nbsp;(1 + 1 + 3 + 4 + 1 + 8)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>The maximum number of bytes of overhead to append to a string (fieldcode + typecode + alignment + length + nul + headerpadding).</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a name="a61" doxytag="DBusMessageInternals::MAX_SANE_MESSAGE_SIZE"></a>
#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a61">MAX_SANE_MESSAGE_SIZE</a>&nbsp;&nbsp;&nbsp;(_DBUS_INT_MAX/16)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>The maximum sane message size.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a62">INITIAL_LOADER_DATA_LEN</a>&nbsp;&nbsp;&nbsp;32</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>The initial buffer size of the message loader.</em> <a href="#a62">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a63">DBUS_MINIMUM_HEADER_SIZE</a>&nbsp;&nbsp;&nbsp;16</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>The smallest header size that can occur.</em> <a href="#a63">More...</a><em></em></font><br><br></td></tr>
<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
<tr><td nowrap align=right valign=top><a name="a0" doxytag="DBusMessageInternals::DBusMessageRealIter"></a>
typedef DBusMessageRealIter&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a0">DBusMessageRealIter</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>typedef for internals of message iterator.</em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>typedef DBusMessageLoader&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a65">DBusMessageLoader</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>The <a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> object encapsulates the process of converting a byte stream into a series of <a class="el" href="structDBusMessage.html">DBusMessage</a>.</em> <a href="#a65">More...</a><em></em></font><br><br></td></tr>
<tr><td colspan=2><br><h2>Enumerations</h2></td></tr>
<tr><td nowrap align=right valign=top>enum &nbsp;</td><td valign=bottom>{ <b>DBUS_MESSAGE_ITER_TYPE_MESSAGE</b>, 
<b>DBUS_MESSAGE_ITER_TYPE_ARRAY</b>, 
<b>DBUS_MESSAGE_ITER_TYPE_DICT</b>
 }</td></tr>
<tr><td colspan=2><br><h2>Functions</h2></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a2">_dbus_message_get_network_data</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, const <a class="el" href="structDBusString.html">DBusString</a> **header, const <a class="el" href="structDBusString.html">DBusString</a> **body)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets the data to be sent over the network for this message.</em> <a href="#a2">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a22">_dbus_message_set_serial</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, <a class="el" href="group__DBusTypes.html#a4">dbus_int32_t</a> serial)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Sets the serial number of a message.</em> <a href="#a22">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a23">dbus_message_set_reply_serial</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, <a class="el" href="group__DBusTypes.html#a3">dbus_uint32_t</a> reply_serial)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Sets the reply serial of a message (the client serial of the message this is a reply to).</em> <a href="#a23">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a3">dbus_uint32_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a24">dbus_message_get_serial</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns the serial of a message or 0 if none has been specified.</em> <a href="#a24">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a3">dbus_uint32_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a25">dbus_message_get_reply_serial</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns the serial that the message is a reply to or 0 if none.</em> <a href="#a25">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a26">_dbus_message_add_size_counter_link</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, <a class="el" href="structDBusList.html">DBusList</a> *link)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Adds a counter to be incremented immediately with the size of this message, and decremented by the size of this message when this message if finalized.</em> <a href="#a26">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a27">_dbus_message_add_size_counter</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, <a class="el" href="structDBusCounter.html">DBusCounter</a> *counter)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Adds a counter to be incremented immediately with the size of this message, and decremented by the size of this message when this message if finalized.</em> <a href="#a27">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a28">_dbus_message_remove_size_counter</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, <a class="el" href="structDBusCounter.html">DBusCounter</a> *counter, <a class="el" href="structDBusList.html">DBusList</a> **link_return)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Removes a counter tracking the size of this message, and decrements the counter by the size of this message.</em> <a href="#a28">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a30">_dbus_message_lock</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Locks a message.</em> <a href="#a30">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a31">_dbus_message_loader_new</a> (void)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Creates a new message loader.</em> <a href="#a31">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a32">_dbus_message_loader_ref</a> (<a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *loader)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Increments the reference count of the loader.</em> <a href="#a32">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a33">_dbus_message_loader_unref</a> (<a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *loader)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Decrements the reference count of the loader and finalizes the loader when the count reaches zero.</em> <a href="#a33">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a34">_dbus_message_loader_get_buffer</a> (<a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *loader, <a class="el" href="structDBusString.html">DBusString</a> **buffer)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets the buffer to use for reading data from the network.</em> <a href="#a34">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a37">_dbus_message_loader_return_buffer</a> (<a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *loader, <a class="el" href="structDBusString.html">DBusString</a> *buffer, int bytes_read)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns a buffer obtained from <a class="el" href="group__DBusMessageInternals.html#a34">_dbus_message_loader_get_buffer</a>(), indicating to the loader how many bytes of the buffer were filled in.</em> <a href="#a37">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a39">_dbus_message_loader_queue_messages</a> (<a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *loader)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Converts buffered data into messages.</em> <a href="#a39">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="structDBusMessage.html">DBusMessage</a> *&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a40">_dbus_message_loader_peek_message</a> (<a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *loader)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Peeks at first loaded message, returns <a class="el" href="group__DBusMacros.html#a4">NULL</a> if no messages have been queued.</em> <a href="#a40">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="structDBusMessage.html">DBusMessage</a> *&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a41">_dbus_message_loader_pop_message</a> (<a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *loader)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Pops a loaded message (passing ownership of the message to the caller).</em> <a href="#a41">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="structDBusList.html">DBusList</a> *&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a42">_dbus_message_loader_pop_message_link</a> (<a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *loader)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Pops a loaded message inside a list link (passing ownership of the message and link to the caller).</em> <a href="#a42">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a43">_dbus_message_loader_putback_message_link</a> (<a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *loader, <a class="el" href="structDBusList.html">DBusList</a> *link)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns a popped message link, used to undo a pop.</em> <a href="#a43">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a44">_dbus_message_loader_get_is_corrupted</a> (<a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *loader)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Checks whether the loader is confused due to bad data.</em> <a href="#a44">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a45">_dbus_message_loader_set_max_message_size</a> (<a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *loader, long size)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Sets the maximum size message we allow.</em> <a href="#a45">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>long&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a46">_dbus_message_loader_get_max_message_size</a> (<a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *loader)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets the maximum allowed message size in bytes.</em> <a href="#a46">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a47">dbus_message_allocate_data_slot</a> (<a class="el" href="group__DBusTypes.html#a4">dbus_int32_t</a> *slot_p)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Allocates an integer ID to be used for storing application-specific data on any <a class="el" href="structDBusMessage.html">DBusMessage</a>.</em> <a href="#a47">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a48">dbus_message_free_data_slot</a> (<a class="el" href="group__DBusTypes.html#a4">dbus_int32_t</a> *slot_p)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Deallocates a global ID for message data slots.</em> <a href="#a48">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a49">dbus_message_set_data</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, <a class="el" href="group__DBusTypes.html#a4">dbus_int32_t</a> slot, void *data, <a class="el" href="group__DBusMemory.html#a8">DBusFreeFunction</a> free_data_func)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Stores a pointer on a <a class="el" href="structDBusMessage.html">DBusMessage</a>, along with an optional function to be used for freeing the data when the data is set again, or when the message is finalized.</em> <a href="#a49">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void *&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a50">dbus_message_get_data</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, <a class="el" href="group__DBusTypes.html#a4">dbus_int32_t</a> slot)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Retrieves data previously set with <a class="el" href="group__DBusMessageInternals.html#a49">dbus_message_set_data</a>().</em> <a href="#a50">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a51">dbus_message_type_from_string</a> (const char *type_str)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Utility function to convert a machine-readable (not translated) string into a D-BUS message type.</em> <a href="#a51">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusMessageInternals.html#a52">_dbus_message_test</a> (const char *test_data_dir)</td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<a class="el" href="structDBusMessage.html">DBusMessage</a> private implementation details.
<p>

<p>
 The guts of <a class="el" href="structDBusMessage.html">DBusMessage</a> and its methods. <hr><h2>Define Documentation</h2>
<a name="a63" doxytag="dbus-message.c::DBUS_MINIMUM_HEADER_SIZE"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define DBUS_MINIMUM_HEADER_SIZE&nbsp;&nbsp;&nbsp;16
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
The smallest header size that can occur.
<p>
(It won't be valid) 
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l04859">4859</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.    </td>
  </tr>
</table>
<a name="a62" doxytag="dbus-message.c::INITIAL_LOADER_DATA_LEN"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define INITIAL_LOADER_DATA_LEN&nbsp;&nbsp;&nbsp;32
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
The initial buffer size of the message loader.
<p>
<dl compact><dt><b>
<a class="el" href="todo.html#_todo000037">Todo: </a></b><dd>
 this should be based on min header size plus some average body size, or something. Or rather, the min header size only, if we want to try to read only the header, store that in a <a class="el" href="structDBusMessage.html">DBusMessage</a>, then read only the body and store that, etc., depends on how we optimize <a class="el" href="group__DBusMessageInternals.html#a34">_dbus_message_loader_get_buffer</a>() and what the exact message format is. </dl> 
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l04754">4754</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.    </td>
  </tr>
</table>
<hr><h2>Typedef Documentation</h2>
<a name="a65" doxytag="dbus-message-internal.h::DBusMessageLoader"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> DBusMessageLoader
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
The <a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> object encapsulates the process of converting a byte stream into a series of <a class="el" href="structDBusMessage.html">DBusMessage</a>.
<p>
It buffers the incoming bytes as efficiently as possible, and generates a queue of messages. <a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> is typically used as part of a <a class="el" href="structDBusTransport.html">DBusTransport</a> implementation. The <a class="el" href="structDBusTransport.html">DBusTransport</a> then hands off the loaded messages to a <a class="el" href="structDBusConnection.html">DBusConnection</a>, making the messages visible to the application.
<p>

<p>
<dl compact><dt><b>
<a class="el" href="todo.html#_todo000036">Todo: </a></b><dd>
write tests for break-loader that a) randomly delete header fields and b) set string fields to zero-length and other funky values.</dl> 
<p>
Definition at line <a class="el" href="dbus-message-internal_8h-source.html#l00032">32</a> of file <a class="el" href="dbus-message-internal_8h-source.html">dbus-message-internal.h</a>.    </td>
  </tr>
</table>
<hr><h2>Function Documentation</h2>
<a name="a27" doxytag="dbus-message-internal.h::_dbus_message_add_size_counter"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_message_add_size_counter </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>message</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusCounter.html">DBusCounter</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>counter</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Adds a counter to be incremented immediately with the size of this message, and decremented by the size of this message when this message if finalized.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>message</em>&nbsp;</td><td>
the message </td></tr>
<tr><td valign=top><em>counter</em>&nbsp;</td><td>
the counter </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if no memory </dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l01001">1001</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.    </td>
  </tr>
</table>
<a name="a26" doxytag="dbus-message-internal.h::_dbus_message_add_size_counter_link"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_message_add_size_counter_link </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>message</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusList.html">DBusList</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>link</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Adds a counter to be incremented immediately with the size of this message, and decremented by the size of this message when this message if finalized.
<p>
The link contains a counter with its refcount already incremented, but the counter itself not incremented. Ownership of link and counter refcount is passed to the message.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>message</em>&nbsp;</td><td>
the message </td></tr>
<tr><td valign=top><em>link</em>&nbsp;</td><td>
link with counter as data </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l00965">965</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l00095">DBusMessage::body</a>, <a class="el" href="dbus-list_8h-source.html#l00039">DBusList::data</a>, <a class="el" href="dbus-message_8c-source.html#l00081">DBusMessage::header</a>, <a class="el" href="dbus-message_8c-source.html#l00100">DBusMessage::size_counter_delta</a>, and <a class="el" href="dbus-message_8c-source.html#l00099">DBusMessage::size_counters</a>.    </td>
  </tr>
</table>
<a name="a2" doxytag="dbus-message-internal.h::_dbus_message_get_network_data"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_message_get_network_data </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>message</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structDBusString.html">DBusString</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>header</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structDBusString.html">DBusString</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>body</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets the data to be sent over the network for this message.
<p>
The header and then the body should be written out. This function is guaranteed to always return the same data once a message is locked (with <a class="el" href="group__DBusMessageInternals.html#a30">_dbus_message_lock</a>()).<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>message</em>&nbsp;</td><td>
the message. </td></tr>
<tr><td valign=top><em>header</em>&nbsp;</td><td>
return location for message header data. </td></tr>
<tr><td valign=top><em>body</em>&nbsp;</td><td>
return location for message body data. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l00154">154</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l00095">DBusMessage::body</a>, <a class="el" href="dbus-message_8c-source.html#l00081">DBusMessage::header</a>, and <a class="el" href="dbus-message_8c-source.html#l00104">DBusMessage::locked</a>.    </td>
  </tr>
</table>
<a name="a34" doxytag="dbus-message-internal.h::_dbus_message_loader_get_buffer"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_message_loader_get_buffer </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>loader</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusString.html">DBusString</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>buffer</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets the buffer to use for reading data from the network.
<p>
Network data is read directly into an allocated buffer, which is then used in the <a class="el" href="structDBusMessage.html">DBusMessage</a>, to avoid as many extra memcpy's as possible. The buffer must always be returned immediately using <a class="el" href="group__DBusMessageInternals.html#a37">_dbus_message_loader_return_buffer</a>(), even if no bytes are successfully read.
<p>

<p>
<dl compact><dt><b>
<a class="el" href="todo.html#_todo000038">Todo: </a></b><dd>
this function can be a lot more clever. For example it can probably always return a buffer size to read exactly the body of the next message, thus avoiding any memory wastage or reallocs. 
<p>
we need to enforce a max length on strings in header fields.</dl>
<p>

<p>
 <dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>loader</em>&nbsp;</td><td>
the message loader. </td></tr>
<tr><td valign=top><em>buffer</em>&nbsp;</td><td>
the buffer </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l04845">4845</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l04739">DBusMessageLoader::buffer_outstanding</a>, and <a class="el" href="dbus-message_8c-source.html#l04733">DBusMessageLoader::data</a>.    </td>
  </tr>
</table>
<a name="a44" doxytag="dbus-message-internal.h::_dbus_message_loader_get_is_corrupted"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_message_loader_get_is_corrupted </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>loader</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Checks whether the loader is confused due to bad data.
<p>
If messages are received that are invalid, the loader gets confused and gives up permanently. This state is called "corrupted."<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>loader</em>&nbsp;</td><td>
the loader </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if the loader is hosed. </dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l05608">5608</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l04741">DBusMessageLoader::corrupted</a>.    </td>
  </tr>
</table>
<a name="a46" doxytag="dbus-message-internal.h::_dbus_message_loader_get_max_message_size"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> long _dbus_message_loader_get_max_message_size </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>loader</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets the maximum allowed message size in bytes.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>loader</em>&nbsp;</td><td>
the loader </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
max size in bytes </dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l05639">5639</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l04737">DBusMessageLoader::max_message_size</a>.    </td>
  </tr>
</table>
<a name="a31" doxytag="dbus-message-internal.h::_dbus_message_loader_new"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a>* _dbus_message_loader_new </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Creates a new message loader.
<p>
Returns <a class="el" href="group__DBusMacros.html#a4">NULL</a> if memory can't be allocated.
<p>
<dl compact><dt><b>
Returns: </b><dd>
new loader, or <a class="el" href="group__DBusMacros.html#a4">NULL</a>. </dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l04763">4763</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l04733">DBusMessageLoader::data</a>, <a class="el" href="dbus-message_8c-source.html#l04737">DBusMessageLoader::max_message_size</a>, and <a class="el" href="dbus-message_8c-source.html#l04731">DBusMessageLoader::refcount</a>.    </td>
  </tr>
</table>
<a name="a40" doxytag="dbus-message-internal.h::_dbus_message_loader_peek_message"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="structDBusMessage.html">DBusMessage</a>* _dbus_message_loader_peek_message </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>loader</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Peeks at first loaded message, returns <a class="el" href="group__DBusMacros.html#a4">NULL</a> if no messages have been queued.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>loader</em>&nbsp;</td><td>
the loader. </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
the next message, or <a class="el" href="group__DBusMacros.html#a4">NULL</a> if none. </dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l05549">5549</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-list_8h-source.html#l00039">DBusList::data</a>, and <a class="el" href="dbus-message_8c-source.html#l04735">DBusMessageLoader::messages</a>.    </td>
  </tr>
</table>
<a name="a41" doxytag="dbus-message-internal.h::_dbus_message_loader_pop_message"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="structDBusMessage.html">DBusMessage</a>* _dbus_message_loader_pop_message </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>loader</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Pops a loaded message (passing ownership of the message to the caller).
<p>
Returns <a class="el" href="group__DBusMacros.html#a4">NULL</a> if no messages have been queued.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>loader</em>&nbsp;</td><td>
the loader. </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
the next message, or <a class="el" href="group__DBusMacros.html#a4">NULL</a> if none. </dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l05566">5566</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l04735">DBusMessageLoader::messages</a>.    </td>
  </tr>
</table>
<a name="a42" doxytag="dbus-message-internal.h::_dbus_message_loader_pop_message_link"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="structDBusList.html">DBusList</a>* _dbus_message_loader_pop_message_link </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>loader</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Pops a loaded message inside a list link (passing ownership of the message and link to the caller).
<p>
Returns <a class="el" href="group__DBusMacros.html#a4">NULL</a> if no messages have been loaded.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>loader</em>&nbsp;</td><td>
the loader. </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
the next message link, or <a class="el" href="group__DBusMacros.html#a4">NULL</a> if none. </dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l05580">5580</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l04735">DBusMessageLoader::messages</a>.    </td>
  </tr>
</table>
<a name="a43" doxytag="dbus-message-internal.h::_dbus_message_loader_putback_message_link"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_message_loader_putback_message_link </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>loader</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusList.html">DBusList</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>link</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns a popped message link, used to undo a pop.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>loader</em>&nbsp;</td><td>
the loader </td></tr>
<tr><td valign=top><em>link</em>&nbsp;</td><td>
the link with a message in it </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l05592">5592</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l04735">DBusMessageLoader::messages</a>.    </td>
  </tr>
</table>
<a name="a39" doxytag="dbus-message-internal.h::_dbus_message_loader_queue_messages"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_message_loader_queue_messages </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>loader</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Converts buffered data into messages.
<p>

<p>
<dl compact><dt><b>
<a class="el" href="todo.html#_todo000039">Todo: </a></b><dd>
we need to check that the proper named header fields exist for each message type. 
<p>
If a message has unknown type, we should probably eat it right here rather than passing it out to applications. However it's not an error to see messages of unknown type.</dl>
<p>

<p>
 <dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>loader</em>&nbsp;</td><td>
the loader. </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if we had enough memory to finish. </dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l05441">5441</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l04741">DBusMessageLoader::corrupted</a>, <a class="el" href="dbus-message_8c-source.html#l04733">DBusMessageLoader::data</a>, and <a class="el" href="dbus-message_8c-source.html#l04737">DBusMessageLoader::max_message_size</a>.    </td>
  </tr>
</table>
<a name="a32" doxytag="dbus-message-internal.h::_dbus_message_loader_ref"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a>* _dbus_message_loader_ref </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>loader</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Increments the reference count of the loader.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>loader</em>&nbsp;</td><td>
the loader. </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
the loader </dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l04798">4798</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l04731">DBusMessageLoader::refcount</a>.    </td>
  </tr>
</table>
<a name="a37" doxytag="dbus-message-internal.h::_dbus_message_loader_return_buffer"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_message_loader_return_buffer </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>loader</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>buffer</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>bytes_read</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns a buffer obtained from <a class="el" href="group__DBusMessageInternals.html#a34">_dbus_message_loader_get_buffer</a>(), indicating to the loader how many bytes of the buffer were filled in.
<p>
This function must always be called, even if no bytes were successfully read.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>loader</em>&nbsp;</td><td>
the loader. </td></tr>
<tr><td valign=top><em>buffer</em>&nbsp;</td><td>
the buffer. </td></tr>
<tr><td valign=top><em>bytes_read</em>&nbsp;</td><td>
number of bytes that were read into the buffer. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l05233">5233</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l04739">DBusMessageLoader::buffer_outstanding</a>, and <a class="el" href="dbus-message_8c-source.html#l04733">DBusMessageLoader::data</a>.    </td>
  </tr>
</table>
<a name="a45" doxytag="dbus-message-internal.h::_dbus_message_loader_set_max_message_size"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_message_loader_set_max_message_size </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>loader</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>long&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>size</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Sets the maximum size message we allow.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>loader</em>&nbsp;</td><td>
the loader </td></tr>
<tr><td valign=top><em>size</em>&nbsp;</td><td>
the max message size in bytes </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l05620">5620</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l04737">DBusMessageLoader::max_message_size</a>.    </td>
  </tr>
</table>
<a name="a33" doxytag="dbus-message-internal.h::_dbus_message_loader_unref"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_message_loader_unref </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>loader</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Decrements the reference count of the loader and finalizes the loader when the count reaches zero.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>loader</em>&nbsp;</td><td>
the loader. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l04812">4812</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l04733">DBusMessageLoader::data</a>, <a class="el" href="dbus-message_8c-source.html#l04735">DBusMessageLoader::messages</a>, and <a class="el" href="dbus-message_8c-source.html#l04731">DBusMessageLoader::refcount</a>.    </td>
  </tr>
</table>
<a name="a30" doxytag="dbus-message-internal.h::_dbus_message_lock"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_message_lock </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>message</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Locks a message.
<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.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>message</em>&nbsp;</td><td>
the message to lock. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l01157">1157</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l00095">DBusMessage::body</a>, <a class="el" href="dbus-message_8c-source.html#l00097">DBusMessage::byte_order</a>, <a class="el" href="dbus-message_8c-source.html#l00081">DBusMessage::header</a>, and <a class="el" href="dbus-message_8c-source.html#l00104">DBusMessage::locked</a>.    </td>
  </tr>
</table>
<a name="a28" doxytag="dbus-message-internal.h::_dbus_message_remove_size_counter"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_message_remove_size_counter </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>message</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusCounter.html">DBusCounter</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>counter</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusList.html">DBusList</a> **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>link_return</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Removes a counter tracking the size of this message, and decrements the counter by the size of this message.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>message</em>&nbsp;</td><td>
the message </td></tr>
<tr><td valign=top><em>link_return</em>&nbsp;</td><td>
return the link used </td></tr>
<tr><td valign=top><em>counter</em>&nbsp;</td><td>
the counter </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l01025">1025</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l00100">DBusMessage::size_counter_delta</a>, and <a class="el" href="dbus-message_8c-source.html#l00099">DBusMessage::size_counters</a>.    </td>
  </tr>
</table>
<a name="a22" doxytag="dbus-message-internal.h::_dbus_message_set_serial"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_message_set_serial </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>message</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group__DBusTypes.html#a4">dbus_int32_t</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>serial</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Sets the serial number of a message.
<p>
This can only be done once on a message.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>message</em>&nbsp;</td><td>
the message </td></tr>
<tr><td valign=top><em>serial</em>&nbsp;</td><td>
the serial </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l00885">885</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l00097">DBusMessage::byte_order</a>, <a class="el" href="dbus-message_8c-source.html#l00090">DBusMessage::client_serial</a>, <a class="el" href="dbus-message_8c-source.html#l00081">DBusMessage::header</a>, and <a class="el" href="dbus-message_8c-source.html#l00104">DBusMessage::locked</a>.    </td>
  </tr>
</table>
<a name="a52" doxytag="dbus-message.c::_dbus_message_test"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_message_test </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>test_data_dir</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Unit test for <a class="el" href="structDBusMessage.html">DBusMessage</a>.
<p>
<dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success. </dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l06905">6905</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l00095">DBusMessage::body</a>, <a class="el" href="dbus-message_8c-source.html#l00090">DBusMessage::client_serial</a>, <a class="el" href="dbus-message_8c-source.html#l00081">DBusMessage::header</a>, <a class="el" href="dbus-message_8c-source.html#l00093">DBusMessage::header_padding</a>, <a class="el" href="dbus-errors_8h-source.html#l00044">DBusError::message</a>, and <a class="el" href="dbus-message_8c-source.html#l00091">DBusMessage::reply_serial</a>.    </td>
  </tr>
</table>
<a name="a47" doxytag="dbus-message.c::dbus_message_allocate_data_slot"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> dbus_message_allocate_data_slot </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group__DBusTypes.html#a4">dbus_int32_t</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>slot_p</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Allocates an integer ID to be used for storing application-specific data on any <a class="el" href="structDBusMessage.html">DBusMessage</a>.
<p>
The allocated ID may then be used with <a class="el" href="group__DBusMessageInternals.html#a49">dbus_message_set_data</a>() and <a class="el" href="group__DBusMessageInternals.html#a50">dbus_message_get_data</a>(). The passed-in slot must be initialized to -1, and is filled in with the slot ID. If the passed-in slot is not -1, it's assumed to be already allocated, and its refcount is incremented.
<p>
The allocated slot is global, i.e. all <a class="el" href="structDBusMessage.html">DBusMessage</a> objects will have a slot with the given integer ID reserved.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>slot_p</em>&nbsp;</td><td>
address of a global variable storing the slot </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> on failure (no memory) </dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l05662">5662</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.    </td>
  </tr>
</table>
<a name="a48" doxytag="dbus-message.c::dbus_message_free_data_slot"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void dbus_message_free_data_slot </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="group__DBusTypes.html#a4">dbus_int32_t</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>slot_p</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Deallocates a global ID for message data slots.
<p>
<a class="el" href="group__DBusMessageInternals.html#a50">dbus_message_get_data</a>() and <a class="el" href="group__DBusMessageInternals.html#a49">dbus_message_set_data</a>() may no longer be used with this slot. Existing data stored on existing <a class="el" href="structDBusMessage.html">DBusMessage</a> objects will be freed when the message is finalized, but may not be retrieved (and may only be replaced if someone else reallocates the slot). When the refcount on the passed-in slot reaches 0, it is set to -1.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>slot_p</em>&nbsp;</td><td>
address storing the slot to deallocate </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l05681">5681</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.    </td>
  </tr>
</table>
<a name="a50" doxytag="dbus-message.c::dbus_message_get_data"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void* dbus_message_get_data </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>message</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group__DBusTypes.html#a4">dbus_int32_t</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>slot</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Retrieves data previously set with <a class="el" href="group__DBusMessageInternals.html#a49">dbus_message_set_data</a>().
<p>
The slot must still be allocated (must not have been freed).<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>message</em>&nbsp;</td><td>
the message </td></tr>
<tr><td valign=top><em>slot</em>&nbsp;</td><td>
the slot to get data from </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
the data, or <a class="el" href="group__DBusMacros.html#a4">NULL</a> if not found </dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l05738">5738</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l00106">DBusMessage::slot_list</a>.    </td>
  </tr>
</table>
<a name="a25" doxytag="dbus-message.c::dbus_message_get_reply_serial"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a3">dbus_uint32_t</a> dbus_message_get_reply_serial </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>message</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the serial that the message is a reply to or 0 if none.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>message</em>&nbsp;</td><td>
the message </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
the reply serial </dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l00947">947</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l00091">DBusMessage::reply_serial</a>.    </td>
  </tr>
</table>
<a name="a24" doxytag="dbus-message.c::dbus_message_get_serial"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a3">dbus_uint32_t</a> dbus_message_get_serial </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>message</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the serial of a message or 0 if none has been specified.
<p>
The message's serial number is provided by the application sending the message and is used to identify replies to this message. All messages received on a connection will have a serial, but messages you haven't sent yet may return 0.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>message</em>&nbsp;</td><td>
the message </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
the client serial </dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l00935">935</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l00090">DBusMessage::client_serial</a>.    </td>
  </tr>
</table>
<a name="a49" doxytag="dbus-message.c::dbus_message_set_data"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> dbus_message_set_data </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>message</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group__DBusTypes.html#a4">dbus_int32_t</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>slot</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>void *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>data</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group__DBusMemory.html#a8">DBusFreeFunction</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>free_data_func</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Stores a pointer on a <a class="el" href="structDBusMessage.html">DBusMessage</a>, along with an optional function to be used for freeing the data when the data is set again, or when the message is finalized.
<p>
The slot number must have been allocated with <a class="el" href="group__DBusMessageInternals.html#a47">dbus_message_allocate_data_slot</a>().<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>message</em>&nbsp;</td><td>
the message </td></tr>
<tr><td valign=top><em>slot</em>&nbsp;</td><td>
the slot number </td></tr>
<tr><td valign=top><em>data</em>&nbsp;</td><td>
the data to store </td></tr>
<tr><td valign=top><em>free_data_func</em>&nbsp;</td><td>
finalizer function for the data </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if there was enough memory to store the data </dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l05702">5702</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l00106">DBusMessage::slot_list</a>.    </td>
  </tr>
</table>
<a name="a23" doxytag="dbus-message.c::dbus_message_set_reply_serial"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> dbus_message_set_reply_serial </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>message</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group__DBusTypes.html#a3">dbus_uint32_t</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>reply_serial</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Sets the reply serial of a message (the client serial of the message this is a reply to).
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>message</em>&nbsp;</td><td>
the message </td></tr>
<tr><td valign=top><em>reply_serial</em>&nbsp;</td><td>
the client serial </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if not enough memory </dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l00908">908</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l00104">DBusMessage::locked</a>, and <a class="el" href="dbus-message_8c-source.html#l00091">DBusMessage::reply_serial</a>.    </td>
  </tr>
</table>
<a name="a51" doxytag="dbus-message.c::dbus_message_type_from_string"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int dbus_message_type_from_string </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>type_str</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Utility function to convert a machine-readable (not translated) string into a D-BUS message type.
<p>
<div class="fragment"><pre>   <font class="stringliteral">"method_call"</font>    -&gt; DBUS_MESSAGE_TYPE_METHOD_CALL
   <font class="stringliteral">"method_return"</font>  -&gt; DBUS_MESSAGE_TYPE_METHOD_RETURN
   <font class="stringliteral">"signal"</font>         -&gt; DBUS_MESSAGE_TYPE_SIGNAL
   <font class="stringliteral">"error"</font>          -&gt; DBUS_MESSAGE_TYPE_ERROR
   anything <font class="keywordflow">else</font>    -&gt; DBUS_MESSAGE_TYPE_INVALID
</pre></div> 
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l05766">5766</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.    </td>
  </tr>
</table>
<hr><address align="right"><small>Generated on Wed Jun 9 05:01:28 2004 for D-BUS by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 
width=110 height=53></a>1.2.15 </small></address>
</body>
</html>