|
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17 System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64 User : nobody ( 99) PHP Version : 5.2.17 Disable Function : NONE Directory : /usr/share/devhelp/books/dbus/api/ |
Upload File : |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>D-Bus: DBusMessage implementation details</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="pages.html"><span>Related Pages</span></a></li>
</ul></div>
<h1>DBusMessage implementation details<br>
<small>
[<a class="el" href="group__DBusInternals.html">D-Bus secret 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></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Implementation details of <a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a>. <a href="structDBusMessageLoader.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structDBusMessage.html">DBusMessage</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Internals of <a class="el" href="structDBusMessage.html">DBusMessage</a>. <a href="structDBusMessage.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structDBusMessageRealIter.html">DBusMessageRealIter</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Internals of <a class="el" href="structDBusMessageIter.html">DBusMessageIter</a>. <a href="structDBusMessageRealIter.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g660989658f3be5e403da430f63afd0b7"></a><!-- doxytag: member="DBusMessageInternals::CHANGED_STAMP_BITS" ref="g660989658f3be5e403da430f63afd0b7" args="" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#g660989658f3be5e403da430f63afd0b7">CHANGED_STAMP_BITS</a> 21</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">How many bits are in the changed_stamp used to validate iterators. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#g1dfae386ef0d4d808584abeafc44e8ca">ensure_byte_order</a>(message)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">byte-swap the message if it doesn't match our byte order. <a href="#g1dfae386ef0d4d808584abeafc44e8ca"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g2c5c6aef45dd0b5cc10c800f986a7ce7"></a><!-- doxytag: member="DBusMessageInternals::MAX_MESSAGE_SIZE_TO_CACHE" ref="g2c5c6aef45dd0b5cc10c800f986a7ce7" args="" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#g2c5c6aef45dd0b5cc10c800f986a7ce7">MAX_MESSAGE_SIZE_TO_CACHE</a> 10 * _DBUS_ONE_KILOBYTE</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Avoid caching huge messages. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="geab2038ce58cd314dc1f23103abec5b0"></a><!-- doxytag: member="DBusMessageInternals::MAX_MESSAGE_CACHE_SIZE" ref="geab2038ce58cd314dc1f23103abec5b0" args="" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#geab2038ce58cd314dc1f23103abec5b0">MAX_MESSAGE_CACHE_SIZE</a> 5</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Avoid caching too many messages. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#gcbe0bfe7a9551ab0489a0ec9aba6e94e">INITIAL_LOADER_DATA_LEN</a> 32</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">The initial buffer size of the message loader. <a href="#gcbe0bfe7a9551ab0489a0ec9aba6e94e"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g84c2bf86d0ab364b236814eafb85e512"></a><!-- doxytag: member="DBusMessageInternals::DBusMessageRealIter" ref="g84c2bf86d0ab364b236814eafb85e512" args="" -->
typedef <a class="el" href="structDBusMessageRealIter.html">DBusMessageRealIter</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#g84c2bf86d0ab364b236814eafb85e512">DBusMessageRealIter</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">typedef for internals of message iterator <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#gb6a849ea8db3714da7a161b4f6a6f0fb">DBusMessageLoader</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">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>. <a href="#gb6a849ea8db3714da7a161b4f6a6f0fb"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom">{ <b>DBUS_MESSAGE_ITER_TYPE_READER</b> = 3,
<b>DBUS_MESSAGE_ITER_TYPE_WRITER</b> = 7
}</td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#g1ae02a435d19c3363e11c74b08c43ab2">_dbus_message_iter_get_args_valist</a> (<a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> *iter, <a class="el" href="structDBusError.html">DBusError</a> *error, int first_arg_type, va_list var_args)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Implementation of the varargs arg-getting functions. <a href="#g1ae02a435d19c3363e11c74b08c43ab2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g47a86f36abae39fe43916681d3f16330"></a><!-- doxytag: member="DBusMessageInternals::_DBUS_STRING_DEFINE_STATIC" ref="g47a86f36abae39fe43916681d3f16330" args="(_dbus_empty_signature_str,"")" -->
</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#g47a86f36abae39fe43916681d3f16330">_DBUS_STRING_DEFINE_STATIC</a> (_dbus_empty_signature_str,"")</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">An static string representing an empty signature. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#g617811b117ac5eb31151ffb7dabea7a8">_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 class="mdescLeft"> </td><td class="mdescRight">Gets the data to be sent over the network for this message. <a href="#g617811b117ac5eb31151ffb7dabea7a8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#g0d9af43afd808b3543ac43b22e731508">_dbus_message_set_serial</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, <a class="el" href="group__DBusTypes.html#gf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a> serial)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the serial number of a message. <a href="#g0d9af43afd808b3543ac43b22e731508"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#g444052d30845d5914fa988fad0588170">_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 class="mdescLeft"> </td><td class="mdescRight">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. <a href="#g444052d30845d5914fa988fad0588170"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#g563ac5990a24808a952b117894e6c894">_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 class="mdescLeft"> </td><td class="mdescRight">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. <a href="#g563ac5990a24808a952b117894e6c894"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#g5a991994492dfb85c5838b8293ccf0aa">_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 class="mdescLeft"> </td><td class="mdescRight">Removes a counter tracking the size of this message, and decrements the counter by the size of this message. <a href="#g5a991994492dfb85c5838b8293ccf0aa"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#gb4ea319b17b104f3b930e5e4b7c13a3a">_dbus_message_lock</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Locks a message. <a href="#gb4ea319b17b104f3b930e5e4b7c13a3a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#g66f1c10cf909ba09ed732bc125ff8671">_dbus_message_loader_new</a> (void)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a new message loader. <a href="#g66f1c10cf909ba09ed732bc125ff8671"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#gd39efb9ff20c7538f12e164a6920edc4">_dbus_message_loader_ref</a> (<a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *loader)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Increments the reference count of the loader. <a href="#gd39efb9ff20c7538f12e164a6920edc4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#g51299aab1f5e0b2408ab858d3377b20c">_dbus_message_loader_unref</a> (<a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *loader)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Decrements the reference count of the loader and finalizes the loader when the count reaches zero. <a href="#g51299aab1f5e0b2408ab858d3377b20c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#ge77f064b8034189a955d5be982d2fbdb">_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 class="mdescLeft"> </td><td class="mdescRight">Gets the buffer to use for reading data from the network. <a href="#ge77f064b8034189a955d5be982d2fbdb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#gc559604b855d0eb6f32b8c20328553cc">_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 class="mdescLeft"> </td><td class="mdescRight">Returns a buffer obtained from <a class="el" href="group__DBusMessageInternals.html#ge77f064b8034189a955d5be982d2fbdb">_dbus_message_loader_get_buffer()</a>, indicating to the loader how many bytes of the buffer were filled in. <a href="#gc559604b855d0eb6f32b8c20328553cc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#gf55885371a6d022ec94c79bd7138923f">_dbus_message_loader_queue_messages</a> (<a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *loader)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Converts buffered data into messages, if we have enough data. <a href="#gf55885371a6d022ec94c79bd7138923f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#g66674354acdd09ca6e11d600b34bdd5f">_dbus_message_loader_peek_message</a> (<a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *loader)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Peeks at first loaded message, returns <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if no messages have been queued. <a href="#g66674354acdd09ca6e11d600b34bdd5f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#g9e5e75716d7263d9908d45a60b1b6bdc">_dbus_message_loader_pop_message</a> (<a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *loader)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Pops a loaded message (passing ownership of the message to the caller). <a href="#g9e5e75716d7263d9908d45a60b1b6bdc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusList.html">DBusList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#g6ec3c1ad57340f717a47d79092122d04">_dbus_message_loader_pop_message_link</a> (<a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *loader)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Pops a loaded message inside a list link (passing ownership of the message and link to the caller). <a href="#g6ec3c1ad57340f717a47d79092122d04"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#g71b290eb470a55217971fcd6851fc40c">_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 class="mdescLeft"> </td><td class="mdescRight">Returns a popped message link, used to undo a pop. <a href="#g71b290eb470a55217971fcd6851fc40c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#g38da52ac9344b00df530098bdd9a3842">_dbus_message_loader_get_is_corrupted</a> (<a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *loader)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Checks whether the loader is confused due to bad data. <a href="#g38da52ac9344b00df530098bdd9a3842"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#g031623c6235f98801cab3e53f0a5f757">_dbus_message_loader_set_max_message_size</a> (<a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *loader, long size)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the maximum size message we allow. <a href="#g031623c6235f98801cab3e53f0a5f757"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">long </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#gdd76a4b7191465f2dcb8e6b56b717961">_dbus_message_loader_get_max_message_size</a> (<a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> *loader)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the maximum allowed message size in bytes. <a href="#gdd76a4b7191465f2dcb8e6b56b717961"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#g537b3456202fdd9f305666504bde98fb">dbus_message_allocate_data_slot</a> (<a class="el" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> *slot_p)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Allocates an integer ID to be used for storing application-specific data on any <a class="el" href="structDBusMessage.html">DBusMessage</a>. <a href="#g537b3456202fdd9f305666504bde98fb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#gc7a5ba135e1aec4ad8c7b43752af02e1">dbus_message_free_data_slot</a> (<a class="el" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> *slot_p)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Deallocates a global ID for message data slots. <a href="#gc7a5ba135e1aec4ad8c7b43752af02e1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#g69d0bc701f9ca935e6de8a3f3e376c0a">dbus_message_set_data</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, <a class="el" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> slot, void *data, <a class="el" href="group__DBusMemory.html#g8792ec2b2b8626ca28022faf51ec415a">DBusFreeFunction</a> free_data_func)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Stores a pointer on a <a class="el" href="structDBusMessage.html">DBusMessage</a>, along with an optional function to be used for freeing the data when the data is set again, or when the message is finalized. <a href="#g69d0bc701f9ca935e6de8a3f3e376c0a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#g62769bfaf8f1b2edc7922c579bc0649d">dbus_message_get_data</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *message, <a class="el" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> slot)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieves data previously set with <a class="el" href="group__DBusMessageInternals.html#g69d0bc701f9ca935e6de8a3f3e376c0a">dbus_message_set_data()</a>. <a href="#g62769bfaf8f1b2edc7922c579bc0649d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#g40412bdfc6ba9cf9e167db4c23df0a7e">dbus_message_type_from_string</a> (const char *type_str)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Utility function to convert a machine-readable (not translated) string into a D-Bus message type. <a href="#g40412bdfc6ba9cf9e167db4c23df0a7e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#g75bcb613a291eb7e427f77f2f3635b8f">dbus_message_type_to_string</a> (int type)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Utility function to convert a D-Bus message type into a machine-readable string (not translated). <a href="#g75bcb613a291eb7e427f77f2f3635b8f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#gd85c737f9e7d03005d6028d6bbae7e87">dbus_message_marshal</a> (<a class="el" href="structDBusMessage.html">DBusMessage</a> *msg, char **marshalled_data_p, int *len_p)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Turn a <a class="el" href="structDBusMessage.html">DBusMessage</a> into the marshalled form as described in the D-Bus specification. <a href="#gd85c737f9e7d03005d6028d6bbae7e87"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMessageInternals.html#g776fe8b5cd935d642875efa1d13a31b3">dbus_message_demarshal</a> (const char *str, int len, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Demarshal a D-Bus message from the format described in the D-Bus specification. <a href="#g776fe8b5cd935d642875efa1d13a31b3"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<a class="el" href="structDBusMessage.html">DBusMessage</a> private implementation details.
<p>
The guts of <a class="el" href="structDBusMessage.html">DBusMessage</a> and its methods. <hr><h2>Define Documentation</h2>
<a class="anchor" name="g1dfae386ef0d4d808584abeafc44e8ca"></a><!-- doxytag: member="dbus-message.c::ensure_byte_order" ref="g1dfae386ef0d4d808584abeafc44e8ca" args="(message)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ensure_byte_order </td>
<td>(</td>
<td class="paramtype">message </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">if</span> (message->byte_order != DBUS_COMPILER_BYTE_ORDER) \
_dbus_message_byteswap (message)
</pre></div>byte-swap the message if it doesn't match our byte order.
<p>
Called only when we need the message in our own byte order, normally when reading arrays of integers or doubles. Otherwise should not be called since it would do needless work.
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l00137">137</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
</div>
</div><p>
<a class="anchor" name="gcbe0bfe7a9551ab0489a0ec9aba6e94e"></a><!-- doxytag: member="dbus-message.c::INITIAL_LOADER_DATA_LEN" ref="gcbe0bfe7a9551ab0489a0ec9aba6e94e" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define INITIAL_LOADER_DATA_LEN 32 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
The initial buffer size of the message loader.
<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000038">Todo:</a></b></dt><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#ge77f064b8034189a955d5be982d2fbdb">_dbus_message_loader_get_buffer()</a> and what the exact message format is. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03295">3295</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l03304">_dbus_message_loader_new()</a>.
</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="gb6a849ea8db3714da7a161b4f6a6f0fb"></a><!-- doxytag: member="dbus-message-internal.h::DBusMessageLoader" ref="gb6a849ea8db3714da7a161b4f6a6f0fb" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<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>
<dl compact><dt><b><a class="el" href="todo.html#_todo000025">Todo:</a></b></dt><dd>write tests for break-loader that a) randomly delete header fields and b) set string fields to zero-length and other funky values.</dd></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>.
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g563ac5990a24808a952b117894e6c894"></a><!-- doxytag: member="dbus-message.c::_dbus_message_add_size_counter" ref="g563ac5990a24808a952b117894e6c894" args="(DBusMessage *message, DBusCounter *counter)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_message_add_size_counter </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusCounter.html">DBusCounter</a> * </td>
<td class="paramname"> <em>counter</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
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></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>counter</em> </td><td>the counter </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l00229">229</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-resources_8c-source.html#l00102">_dbus_counter_ref()</a>, <a class="el" href="dbus-list_8c-source.html#l00218">_dbus_list_alloc_link()</a>, <a class="el" href="dbus-message_8c-source.html#l00193">_dbus_message_add_size_counter_link()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-transport_8c-source.html#l01084">_dbus_transport_queue_messages()</a>.
</div>
</div><p>
<a class="anchor" name="g444052d30845d5914fa988fad0588170"></a><!-- doxytag: member="dbus-message.c::_dbus_message_add_size_counter_link" ref="g444052d30845d5914fa988fad0588170" args="(DBusMessage *message, DBusList *link)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_message_add_size_counter_link </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> * </td>
<td class="paramname"> <em>link</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
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.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>link</em> </td><td>link with counter as data </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l00193">193</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-resources_8c-source.html#l00141">_dbus_counter_adjust()</a>, <a class="el" href="dbus-list_8c-source.html#l00291">_dbus_list_append_link()</a>, <a class="el" href="dbus-message-private_8h-source.html#l00094">DBusMessage::body</a>, <a class="el" href="dbus-list_8h-source.html#l00038">DBusList::data</a>, <a class="el" href="dbus-marshal-header_8h-source.html#l00054">DBusHeader::data</a>, <a class="el" href="dbus-message-private_8h-source.html#l00092">DBusMessage::header</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-message-private_8h-source.html#l00105">DBusMessage::size_counter_delta</a>, and <a class="el" href="dbus-message-private_8h-source.html#l00104">DBusMessage::size_counters</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l00229">_dbus_message_add_size_counter()</a>.
</div>
</div><p>
<a class="anchor" name="g617811b117ac5eb31151ffb7dabea7a8"></a><!-- doxytag: member="dbus-message.c::_dbus_message_get_network_data" ref="g617811b117ac5eb31151ffb7dabea7a8" args="(DBusMessage *message, const DBusString **header, const DBusString **body)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_message_get_network_data </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> ** </td>
<td class="paramname"> <em>header</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> ** </td>
<td class="paramname"> <em>body</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the 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#gb4ea319b17b104f3b930e5e4b7c13a3a">_dbus_message_lock()</a>).<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>header</em> </td><td>return location for message header data. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>body</em> </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#l00152">152</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-message-private_8h-source.html#l00094">DBusMessage::body</a>, <a class="el" href="dbus-marshal-header_8h-source.html#l00054">DBusHeader::data</a>, <a class="el" href="dbus-message-private_8h-source.html#l00092">DBusMessage::header</a>, and <a class="el" href="dbus-message-private_8h-source.html#l00098">DBusMessage::locked</a>.
</div>
</div><p>
<a class="anchor" name="g1ae02a435d19c3363e11c74b08c43ab2"></a><!-- doxytag: member="dbus-message-private.h::_dbus_message_iter_get_args_valist" ref="g1ae02a435d19c3363e11c74b08c43ab2" args="(DBusMessageIter *iter, DBusError *error, int first_arg_type, va_list var_args)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_message_iter_get_args_valist </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessageIter.html">DBusMessageIter</a> * </td>
<td class="paramname"> <em>iter</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> * </td>
<td class="paramname"> <em>error</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>first_arg_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">va_list </td>
<td class="paramname"> <em>var_args</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Implementation of the varargs arg-getting functions.
<p>
<a class="el" href="group__DBusMessage.html#gaa5e339a728a7baa786e6c30e3b840b7">dbus_message_get_args()</a> is the place to go for complete documentation.<p>
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="group__DBusMessage.html#gaa5e339a728a7baa786e6c30e3b840b7">dbus_message_get_args</a> </dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>iter</em> </td><td>the message iter </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>error to be filled in </td></tr>
<tr><td valign="top"></td><td valign="top"><em>first_arg_type</em> </td><td>type of the first argument </td></tr>
<tr><td valign="top"></td><td valign="top"><em>var_args</em> </td><td>return location for first argument, followed by list of type/location pairs </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if error was set </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l00641">641</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-internals_8c-source.html#l00396">_dbus_strdup()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00770">_dbus_type_reader_get_current_type()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00805">_dbus_type_reader_get_element_type()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l01036">_dbus_type_reader_next()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00854">_dbus_type_reader_read_basic()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00908">_dbus_type_reader_read_fixed_multi()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00973">_dbus_type_reader_recurse()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l01257">_dbus_type_to_string()</a>, <a class="el" href="dbus-internals_8c-source.html#l00238">_dbus_warn()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00366">DBUS_ERROR_INVALID_ARGS</a>, <a class="el" href="dbus-memory_8c-source.html#l00655">dbus_free_string_array()</a>, <a class="el" href="dbus-message_8c-source.html#l01817">dbus_message_iter_get_arg_type()</a>, <a class="el" href="dbus-memory_8h-source.html#l00047">dbus_new0</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00116">DBUS_TYPE_ARRAY</a>, <a class="el" href="dbus-protocol_8h-source.html#l00060">DBUS_TYPE_INVALID</a>, <a class="el" href="dbus-signature_8c-source.html#l00306">dbus_type_is_basic()</a>, <a class="el" href="dbus-signature_8c-source.html#l00335">dbus_type_is_fixed()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00106">DBUS_TYPE_OBJECT_PATH</a>, <a class="el" href="dbus-protocol_8h-source.html#l00110">DBUS_TYPE_SIGNATURE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00102">DBUS_TYPE_STRING</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l01687">dbus_message_get_args_valist()</a>.
</div>
</div><p>
<a class="anchor" name="ge77f064b8034189a955d5be982d2fbdb"></a><!-- doxytag: member="dbus-message.c::_dbus_message_loader_get_buffer" ref="ge77f064b8034189a955d5be982d2fbdb" args="(DBusMessageLoader *loader, DBusString **buffer)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_message_loader_get_buffer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> * </td>
<td class="paramname"> <em>loader</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> ** </td>
<td class="paramname"> <em>buffer</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the 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#gc559604b855d0eb6f32b8c20328553cc">_dbus_message_loader_return_buffer()</a>, even if no bytes are successfully read.<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000039">Todo:</a></b></dt><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.</dd></dl>
<dl compact><dt><b><a class="el" href="todo.html#_todo000039">Todo:</a></b></dt><dd>we need to enforce a max length on strings in header fields.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>loader</em> </td><td>the message loader. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>buffer</em> </td><td>the buffer </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03387">3387</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-message-private_8h-source.html#l00070">DBusMessageLoader::buffer_outstanding</a>, <a class="el" href="dbus-message-private_8h-source.html#l00064">DBusMessageLoader::data</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l03979">dbus_message_demarshal()</a>.
</div>
</div><p>
<a class="anchor" name="g38da52ac9344b00df530098bdd9a3842"></a><!-- doxytag: member="dbus-message.c::_dbus_message_loader_get_is_corrupted" ref="g38da52ac9344b00df530098bdd9a3842" args="(DBusMessageLoader *loader)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_message_loader_get_is_corrupted </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> * </td>
<td class="paramname"> <em>loader</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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."<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>loader</em> </td><td>the loader </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the loader is hosed. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03714">3714</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-message-private_8h-source.html#l00072">DBusMessageLoader::corrupted</a>, <a class="el" href="dbus-message-private_8h-source.html#l00074">DBusMessageLoader::corruption_reason</a>, and <a class="el" href="group__DBusMarshal.html#gg0c4521d30d6650a33673a4d7f9cc007ce68ac5067fe94cdcfb35e115f36298c8">DBUS_VALID</a>.
<p>
Referenced by <a class="el" href="dbus-transport_8c-source.html#l01084">_dbus_transport_queue_messages()</a>, and <a class="el" href="dbus-message_8c-source.html#l03979">dbus_message_demarshal()</a>.
</div>
</div><p>
<a class="anchor" name="gdd76a4b7191465f2dcb8e6b56b717961"></a><!-- doxytag: member="dbus-message.c::_dbus_message_loader_get_max_message_size" ref="gdd76a4b7191465f2dcb8e6b56b717961" args="(DBusMessageLoader *loader)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">long _dbus_message_loader_get_max_message_size </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> * </td>
<td class="paramname"> <em>loader</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the maximum allowed message size in bytes.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>loader</em> </td><td>the loader </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>max size in bytes </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03747">3747</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message-private_8h-source.html#l00068">DBusMessageLoader::max_message_size</a>.
<p>
Referenced by <a class="el" href="dbus-transport_8c-source.html#l01149">_dbus_transport_get_max_message_size()</a>.
</div>
</div><p>
<a class="anchor" name="g66f1c10cf909ba09ed732bc125ff8671"></a><!-- doxytag: member="dbus-message.c::_dbus_message_loader_new" ref="g66f1c10cf909ba09ed732bc125ff8671" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a>* _dbus_message_loader_new </td>
<td>(</td>
<td class="paramtype">void </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Creates a new message loader.
<p>
Returns <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if memory can't be allocated.<p>
<dl compact><dt><b>Returns:</b></dt><dd>new loader, or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03304">3304</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-string_8c-source.html#l00854">_dbus_string_set_length()</a>, <a class="el" href="dbus-message-private_8h-source.html#l00072">DBusMessageLoader::corrupted</a>, <a class="el" href="dbus-message-private_8h-source.html#l00074">DBusMessageLoader::corruption_reason</a>, <a class="el" href="dbus-message-private_8h-source.html#l00064">DBusMessageLoader::data</a>, <a class="el" href="dbus-memory_8c-source.html#l00617">dbus_free()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00206">DBUS_MAXIMUM_MESSAGE_LENGTH</a>, <a class="el" href="dbus-memory_8h-source.html#l00047">dbus_new0</a>, <a class="el" href="group__DBusMarshal.html#gg0c4521d30d6650a33673a4d7f9cc007ce68ac5067fe94cdcfb35e115f36298c8">DBUS_VALID</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message_8c-source.html#l03295">INITIAL_LOADER_DATA_LEN</a>, <a class="el" href="dbus-message-private_8h-source.html#l00068">DBusMessageLoader::max_message_size</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-message-private_8h-source.html#l00062">DBusMessageLoader::refcount</a>.
<p>
Referenced by <a class="el" href="dbus-transport_8c-source.html#l00093">_dbus_transport_init_base()</a>, and <a class="el" href="dbus-message_8c-source.html#l03979">dbus_message_demarshal()</a>.
</div>
</div><p>
<a class="anchor" name="g66674354acdd09ca6e11d600b34bdd5f"></a><!-- doxytag: member="dbus-message.c::_dbus_message_loader_peek_message" ref="g66674354acdd09ca6e11d600b34bdd5f" args="(DBusMessageLoader *loader)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusMessage.html">DBusMessage</a>* _dbus_message_loader_peek_message </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> * </td>
<td class="paramname"> <em>loader</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Peeks at first loaded message, returns <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if no messages have been queued.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>loader</em> </td><td>the loader. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the next message, or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if none. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03655">3655</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#l00038">DBusList::data</a>, <a class="el" href="dbus-message-private_8h-source.html#l00066">DBusMessageLoader::messages</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-transport_8c-source.html#l01046">_dbus_transport_get_dispatch_status()</a>.
</div>
</div><p>
<a class="anchor" name="g9e5e75716d7263d9908d45a60b1b6bdc"></a><!-- doxytag: member="dbus-message.c::_dbus_message_loader_pop_message" ref="g9e5e75716d7263d9908d45a60b1b6bdc" args="(DBusMessageLoader *loader)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusMessage.html">DBusMessage</a>* _dbus_message_loader_pop_message </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> * </td>
<td class="paramname"> <em>loader</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Pops a loaded message (passing ownership of the message to the caller).
<p>
Returns <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if no messages have been queued.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>loader</em> </td><td>the loader. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the next message, or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if none. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03672">3672</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-list_8c-source.html#l00656">_dbus_list_pop_first()</a>, and <a class="el" href="dbus-message-private_8h-source.html#l00066">DBusMessageLoader::messages</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l03979">dbus_message_demarshal()</a>.
</div>
</div><p>
<a class="anchor" name="g6ec3c1ad57340f717a47d79092122d04"></a><!-- doxytag: member="dbus-message.c::_dbus_message_loader_pop_message_link" ref="g6ec3c1ad57340f717a47d79092122d04" args="(DBusMessageLoader *loader)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusList.html">DBusList</a>* _dbus_message_loader_pop_message_link </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> * </td>
<td class="paramname"> <em>loader</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<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#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if no messages have been loaded.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>loader</em> </td><td>the loader. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the next message link, or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if none. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03686">3686</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-list_8c-source.html#l00635">_dbus_list_pop_first_link()</a>, and <a class="el" href="dbus-message-private_8h-source.html#l00066">DBusMessageLoader::messages</a>.
<p>
Referenced by <a class="el" href="dbus-transport_8c-source.html#l01084">_dbus_transport_queue_messages()</a>.
</div>
</div><p>
<a class="anchor" name="g71b290eb470a55217971fcd6851fc40c"></a><!-- doxytag: member="dbus-message.c::_dbus_message_loader_putback_message_link" ref="g71b290eb470a55217971fcd6851fc40c" args="(DBusMessageLoader *loader, DBusList *link)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_message_loader_putback_message_link </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> * </td>
<td class="paramname"> <em>loader</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> * </td>
<td class="paramname"> <em>link</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns a popped message link, used to undo a pop.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>loader</em> </td><td>the loader </td></tr>
<tr><td valign="top"></td><td valign="top"><em>link</em> </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#l03698">3698</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-list_8c-source.html#l00309">_dbus_list_prepend_link()</a>, and <a class="el" href="dbus-message-private_8h-source.html#l00066">DBusMessageLoader::messages</a>.
<p>
Referenced by <a class="el" href="dbus-transport_8c-source.html#l01084">_dbus_transport_queue_messages()</a>.
</div>
</div><p>
<a class="anchor" name="gf55885371a6d022ec94c79bd7138923f"></a><!-- doxytag: member="dbus-message.c::_dbus_message_loader_queue_messages" ref="gf55885371a6d022ec94c79bd7138923f" args="(DBusMessageLoader *loader)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_message_loader_queue_messages </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> * </td>
<td class="paramname"> <em>loader</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Converts buffered data into messages, if we have enough data.
<p>
If we don't have enough data, does nothing.<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000041">Todo:</a></b></dt><dd>we need to check that the proper named header fields exist for each message type.</dd></dl>
<dl compact><dt><b><a class="el" href="todo.html#_todo000041">Todo:</a></b></dt><dd>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.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>loader</em> </td><td>the loader. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if we had enough memory to finish. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03592">3592</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00656">_dbus_header_have_message_untrusted()</a>, <a class="el" href="dbus-list_8c-source.html#l00479">_dbus_list_find_last()</a>, <a class="el" href="dbus-message-private_8h-source.html#l00072">DBusMessageLoader::corrupted</a>, <a class="el" href="dbus-message-private_8h-source.html#l00074">DBusMessageLoader::corruption_reason</a>, <a class="el" href="dbus-message-private_8h-source.html#l00064">DBusMessageLoader::data</a>, <a class="el" href="dbus-message_8c-source.html#l01387">dbus_message_unref()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00321">DBUS_MINIMUM_HEADER_SIZE</a>, <a class="el" href="group__DBusMarshal.html#gg0c4521d30d6650a33673a4d7f9cc007ce68ac5067fe94cdcfb35e115f36298c8">DBUS_VALID</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h-source.html#l00068">DBusMessageLoader::max_message_size</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-transport_8c-source.html#l01046">_dbus_transport_get_dispatch_status()</a>, and <a class="el" href="dbus-message_8c-source.html#l03979">dbus_message_demarshal()</a>.
</div>
</div><p>
<a class="anchor" name="gd39efb9ff20c7538f12e164a6920edc4"></a><!-- doxytag: member="dbus-message.c::_dbus_message_loader_ref" ref="gd39efb9ff20c7538f12e164a6920edc4" args="(DBusMessageLoader *loader)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a>* _dbus_message_loader_ref </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> * </td>
<td class="paramname"> <em>loader</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Increments the reference count of the loader.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>loader</em> </td><td>the loader. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the loader </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03340">3340</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message-private_8h-source.html#l00062">DBusMessageLoader::refcount</a>.
</div>
</div><p>
<a class="anchor" name="gc559604b855d0eb6f32b8c20328553cc"></a><!-- doxytag: member="dbus-message.c::_dbus_message_loader_return_buffer" ref="gc559604b855d0eb6f32b8c20328553cc" args="(DBusMessageLoader *loader, DBusString *buffer, int bytes_read)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_message_loader_return_buffer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> * </td>
<td class="paramname"> <em>loader</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>bytes_read</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns a buffer obtained from <a class="el" href="group__DBusMessageInternals.html#ge77f064b8034189a955d5be982d2fbdb">_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.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>loader</em> </td><td>the loader. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>buffer</em> </td><td>the buffer. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>bytes_read</em> </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#l03408">3408</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-message-private_8h-source.html#l00070">DBusMessageLoader::buffer_outstanding</a>, <a class="el" href="dbus-message-private_8h-source.html#l00064">DBusMessageLoader::data</a>, and <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l03979">dbus_message_demarshal()</a>.
</div>
</div><p>
<a class="anchor" name="g031623c6235f98801cab3e53f0a5f757"></a><!-- doxytag: member="dbus-message.c::_dbus_message_loader_set_max_message_size" ref="g031623c6235f98801cab3e53f0a5f757" args="(DBusMessageLoader *loader, long size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_message_loader_set_max_message_size </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> * </td>
<td class="paramname"> <em>loader</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">long </td>
<td class="paramname"> <em>size</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the maximum size message we allow.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>loader</em> </td><td>the loader </td></tr>
<tr><td valign="top"></td><td valign="top"><em>size</em> </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#l03728">3728</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-protocol_8h-source.html#l00206">DBUS_MAXIMUM_MESSAGE_LENGTH</a>, and <a class="el" href="dbus-message-private_8h-source.html#l00068">DBusMessageLoader::max_message_size</a>.
<p>
Referenced by <a class="el" href="dbus-transport_8c-source.html#l01136">_dbus_transport_set_max_message_size()</a>.
</div>
</div><p>
<a class="anchor" name="g51299aab1f5e0b2408ab858d3377b20c"></a><!-- doxytag: member="dbus-message.c::_dbus_message_loader_unref" ref="g51299aab1f5e0b2408ab858d3377b20c" args="(DBusMessageLoader *loader)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_message_loader_unref </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessageLoader.html">DBusMessageLoader</a> * </td>
<td class="paramname"> <em>loader</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Decrements the reference count of the loader and finalizes the loader when the count reaches zero.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>loader</em> </td><td>the loader. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03354">3354</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-list_8c-source.html#l00549">_dbus_list_clear()</a>, <a class="el" href="dbus-list_8c-source.html#l00789">_dbus_list_foreach()</a>, <a class="el" href="dbus-string_8c-source.html#l00262">_dbus_string_free()</a>, <a class="el" href="dbus-message-private_8h-source.html#l00064">DBusMessageLoader::data</a>, <a class="el" href="dbus-memory_8c-source.html#l00617">dbus_free()</a>, <a class="el" href="dbus-message_8c-source.html#l01387">dbus_message_unref()</a>, <a class="el" href="dbus-message-private_8h-source.html#l00066">DBusMessageLoader::messages</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-message-private_8h-source.html#l00062">DBusMessageLoader::refcount</a>.
<p>
Referenced by <a class="el" href="dbus-transport_8c-source.html#l00202">_dbus_transport_finalize_base()</a>, <a class="el" href="dbus-transport_8c-source.html#l00093">_dbus_transport_init_base()</a>, and <a class="el" href="dbus-message_8c-source.html#l03979">dbus_message_demarshal()</a>.
</div>
</div><p>
<a class="anchor" name="gb4ea319b17b104f3b930e5e4b7c13a3a"></a><!-- doxytag: member="dbus-message.c::_dbus_message_lock" ref="gb4ea319b17b104f3b930e5e4b7c13a3a" args="(DBusMessage *message)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_message_lock </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
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.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message to lock. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l00285">285</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l01175">_dbus_header_update_lengths()</a>, <a class="el" href="dbus-message-private_8h-source.html#l00094">DBusMessage::body</a>, <a class="el" href="dbus-message_8c-source.html#l03002">dbus_message_get_signature()</a>, <a class="el" href="dbus-message-private_8h-source.html#l00092">DBusMessage::header</a>, <a class="el" href="dbus-message-private_8h-source.html#l00098">DBusMessage::locked</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g5a991994492dfb85c5838b8293ccf0aa"></a><!-- doxytag: member="dbus-message.c::_dbus_message_remove_size_counter" ref="g5a991994492dfb85c5838b8293ccf0aa" args="(DBusMessage *message, DBusCounter *counter, DBusList **link_return)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_message_remove_size_counter </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusCounter.html">DBusCounter</a> * </td>
<td class="paramname"> <em>counter</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> ** </td>
<td class="paramname"> <em>link_return</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
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></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>link_return</em> </td><td>return the link used </td></tr>
<tr><td valign="top"></td><td valign="top"><em>counter</em> </td><td>the counter </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l00253">253</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-resources_8c-source.html#l00141">_dbus_counter_adjust()</a>, <a class="el" href="dbus-resources_8c-source.html#l00118">_dbus_counter_unref()</a>, <a class="el" href="dbus-list_8c-source.html#l00479">_dbus_list_find_last()</a>, <a class="el" href="dbus-list_8c-source.html#l00230">_dbus_list_free_link()</a>, <a class="el" href="dbus-list_8c-source.html#l00506">_dbus_list_unlink()</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-message-private_8h-source.html#l00105">DBusMessage::size_counter_delta</a>, and <a class="el" href="dbus-message-private_8h-source.html#l00104">DBusMessage::size_counters</a>.
<p>
Referenced by <a class="el" href="dbus-connection_8c-source.html#l00585">_dbus_connection_message_sent()</a>.
</div>
</div><p>
<a class="anchor" name="g0d9af43afd808b3543ac43b22e731508"></a><!-- doxytag: member="dbus-message.c::_dbus_message_set_serial" ref="g0d9af43afd808b3543ac43b22e731508" args="(DBusMessage *message, dbus_uint32_t serial)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_message_set_serial </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusTypes.html#gf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a> </td>
<td class="paramname"> <em>serial</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the serial number of a message.
<p>
This can only be done once on a message.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>serial</em> </td><td>the serial </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l00170">170</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00386">_dbus_header_set_serial()</a>, <a class="el" href="dbus-message_8c-source.html#l00876">dbus_message_get_serial()</a>, <a class="el" href="dbus-message-private_8h-source.html#l00098">DBusMessage::locked</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-connection_8c-source.html#l03122">dbus_connection_send_with_reply()</a>.
</div>
</div><p>
<a class="anchor" name="g537b3456202fdd9f305666504bde98fb"></a><!-- doxytag: member="dbus-message.c::dbus_message_allocate_data_slot" ref="g537b3456202fdd9f305666504bde98fb" args="(dbus_int32_t *slot_p)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_allocate_data_slot </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> * </td>
<td class="paramname"> <em>slot_p</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Allocates an integer ID to be used for storing application-specific data on any <a class="el" href="structDBusMessage.html">DBusMessage</a>.
<p>
The allocated ID may then be used with <a class="el" href="group__DBusMessageInternals.html#g69d0bc701f9ca935e6de8a3f3e376c0a">dbus_message_set_data()</a> and <a class="el" href="group__DBusMessageInternals.html#g62769bfaf8f1b2edc7922c579bc0649d">dbus_message_get_data()</a>. The passed-in slot must be initialized to -1, and is filled in with the slot ID. If the passed-in slot is not -1, it's assumed to be already allocated, and its refcount is incremented.<p>
The allocated slot is global, i.e. all <a class="el" href="structDBusMessage.html">DBusMessage</a> objects will have a slot with the given integer ID reserved.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>slot_p</em> </td><td>address of a global variable storing the slot </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> on failure (no memory) </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03770">3770</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-dataslot_8c-source.html#l00067">_dbus_data_slot_allocator_alloc()</a>, and <a class="el" href="dbus-internals_8h-source.html#l00284">_DBUS_LOCK_NAME</a>.
</div>
</div><p>
<a class="anchor" name="g776fe8b5cd935d642875efa1d13a31b3"></a><!-- doxytag: member="dbus-message.c::dbus_message_demarshal" ref="g776fe8b5cd935d642875efa1d13a31b3" args="(const char *str, int len, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusMessage.html">DBusMessage</a>* dbus_message_demarshal </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> * </td>
<td class="paramname"> <em>error</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Demarshal a D-Bus message from the format described in the D-Bus specification.
<p>
Generally, this function is only useful for encapsulating D-Bus messages in a different protocol.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the marshalled <a class="el" href="structDBusMessage.html">DBusMessage</a> </td></tr>
<tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>the length of str </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>the location to save errors to </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if there was an error </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03979">3979</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-message_8c-source.html#l03387">_dbus_message_loader_get_buffer()</a>, <a class="el" href="dbus-message_8c-source.html#l03714">_dbus_message_loader_get_is_corrupted()</a>, <a class="el" href="dbus-message_8c-source.html#l03304">_dbus_message_loader_new()</a>, <a class="el" href="dbus-message_8c-source.html#l03672">_dbus_message_loader_pop_message()</a>, <a class="el" href="dbus-message_8c-source.html#l03592">_dbus_message_loader_queue_messages()</a>, <a class="el" href="dbus-message_8c-source.html#l03408">_dbus_message_loader_return_buffer()</a>, <a class="el" href="dbus-message_8c-source.html#l03354">_dbus_message_loader_unref()</a>, <a class="el" href="dbus-string_8c-source.html#l01253">_dbus_string_append_len()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00366">DBUS_ERROR_INVALID_ARGS</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="gc7a5ba135e1aec4ad8c7b43752af02e1"></a><!-- doxytag: member="dbus-message.c::dbus_message_free_data_slot" ref="gc7a5ba135e1aec4ad8c7b43752af02e1" args="(dbus_int32_t *slot_p)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void dbus_message_free_data_slot </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> * </td>
<td class="paramname"> <em>slot_p</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Deallocates a global ID for message data slots.
<p>
<a class="el" href="group__DBusMessageInternals.html#g62769bfaf8f1b2edc7922c579bc0649d">dbus_message_get_data()</a> and <a class="el" href="group__DBusMessageInternals.html#g69d0bc701f9ca935e6de8a3f3e376c0a">dbus_message_set_data()</a> may no longer be used with this slot. Existing data stored on existing <a class="el" href="structDBusMessage.html">DBusMessage</a> objects will be freed when the message is finalized, but may not be retrieved (and may only be replaced if someone else reallocates the slot). When the refcount on the passed-in slot reaches 0, it is set to -1.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>slot_p</em> </td><td>address storing the slot to deallocate </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03789">3789</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-dataslot_8c-source.html#l00163">_dbus_data_slot_allocator_free()</a>.
</div>
</div><p>
<a class="anchor" name="g62769bfaf8f1b2edc7922c579bc0649d"></a><!-- doxytag: member="dbus-message.c::dbus_message_get_data" ref="g62769bfaf8f1b2edc7922c579bc0649d" args="(DBusMessage *message, dbus_int32_t slot)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* dbus_message_get_data </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> </td>
<td class="paramname"> <em>slot</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Retrieves data previously set with <a class="el" href="group__DBusMessageInternals.html#g69d0bc701f9ca935e6de8a3f3e376c0a">dbus_message_set_data()</a>.
<p>
The slot must still be allocated (must not have been freed).<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>slot</em> </td><td>the slot to get data from </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the data, or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if not found </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03846">3846</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-dataslot_8c-source.html#l00296">_dbus_data_slot_list_get()</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-message-private_8h-source.html#l00109">DBusMessage::slot_list</a>.
</div>
</div><p>
<a class="anchor" name="gd85c737f9e7d03005d6028d6bbae7e87"></a><!-- doxytag: member="dbus-message.c::dbus_message_marshal" ref="gd85c737f9e7d03005d6028d6bbae7e87" args="(DBusMessage *msg, char **marshalled_data_p, int *len_p)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_marshal </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>msg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char ** </td>
<td class="paramname"> <em>marshalled_data_p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int * </td>
<td class="paramname"> <em>len_p</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Turn a <a class="el" href="structDBusMessage.html">DBusMessage</a> into the marshalled form as described in the D-Bus specification.
<p>
Generally, this function is only useful for encapsulating D-Bus messages in a different protocol.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>msg</em> </td><td>the <a class="el" href="structDBusMessage.html">DBusMessage</a> </td></tr>
<tr><td valign="top"></td><td valign="top"><em>marshalled_data_p</em> </td><td>the location to save the marshalled form to </td></tr>
<tr><td valign="top"></td><td valign="top"><em>len_p</em> </td><td>the location to save the length of the marshalled form to </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if there was not enough memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03932">3932</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l01472">_dbus_string_copy()</a>, <a class="el" href="dbus-string_8c-source.html#l00262">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c-source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-string_8c-source.html#l00608">_dbus_string_steal_data()</a>, <a class="el" href="dbus-message-private_8h-source.html#l00094">DBusMessage::body</a>, <a class="el" href="dbus-marshal-header_8h-source.html#l00054">DBusHeader::data</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-message-private_8h-source.html#l00092">DBusMessage::header</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g69d0bc701f9ca935e6de8a3f3e376c0a"></a><!-- doxytag: member="dbus-message.c::dbus_message_set_data" ref="g69d0bc701f9ca935e6de8a3f3e376c0a" args="(DBusMessage *message, dbus_int32_t slot, void *data, DBusFreeFunction free_data_func)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> dbus_message_set_data </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusMessage.html">DBusMessage</a> * </td>
<td class="paramname"> <em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> </td>
<td class="paramname"> <em>slot</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void * </td>
<td class="paramname"> <em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusMemory.html#g8792ec2b2b8626ca28022faf51ec415a">DBusFreeFunction</a> </td>
<td class="paramname"> <em>free_data_func</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Stores a pointer on a <a class="el" href="structDBusMessage.html">DBusMessage</a>, along with an optional function to be used for freeing the data when the data is set again, or when the message is finalized.
<p>
The slot number must have been allocated with <a class="el" href="group__DBusMessageInternals.html#g537b3456202fdd9f305666504bde98fb">dbus_message_allocate_data_slot()</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>message</em> </td><td>the message </td></tr>
<tr><td valign="top"></td><td valign="top"><em>slot</em> </td><td>the slot number </td></tr>
<tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>the data to store </td></tr>
<tr><td valign="top"></td><td valign="top"><em>free_data_func</em> </td><td>finalizer function for the data </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if there was enough memory to store the data </dd></dl>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03810">3810</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-dataslot_8c-source.html#l00235">_dbus_data_slot_list_set()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-message-private_8h-source.html#l00109">DBusMessage::slot_list</a>.
</div>
</div><p>
<a class="anchor" name="g40412bdfc6ba9cf9e167db4c23df0a7e"></a><!-- doxytag: member="dbus-message.c::dbus_message_type_from_string" ref="g40412bdfc6ba9cf9e167db4c23df0a7e" args="(const char *type_str)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int dbus_message_type_from_string </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>type_str</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Utility function to convert a machine-readable (not translated) string into a D-Bus message type.
<p>
<div class="fragment"><pre class="fragment"> <span class="stringliteral">"method_call"</span> -> <a class="code" href="group__DBusProtocol.html#g09416afd76b65139eddd31e1085d9ebf">DBUS_MESSAGE_TYPE_METHOD_CALL</a>
<span class="stringliteral">"method_return"</span> -> <a class="code" href="group__DBusProtocol.html#g4a9012edd7f22342f845e98150aeb858">DBUS_MESSAGE_TYPE_METHOD_RETURN</a>
<span class="stringliteral">"signal"</span> -> <a class="code" href="group__DBusProtocol.html#g728d893ff0c00e126517ba39835220a5">DBUS_MESSAGE_TYPE_SIGNAL</a>
<span class="stringliteral">"error"</span> -> <a class="code" href="group__DBusProtocol.html#g2b9423d95066313d73eeea8eeaf86812">DBUS_MESSAGE_TYPE_ERROR</a>
anything <span class="keywordflow">else</span> -> <a class="code" href="group__DBusProtocol.html#gc975525a6ce258a7a70c583c9741b516">DBUS_MESSAGE_TYPE_INVALID</a>
</pre></div>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03874">3874</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-protocol_8h-source.html#l00226">DBUS_MESSAGE_TYPE_ERROR</a>, <a class="el" href="dbus-protocol_8h-source.html#l00220">DBUS_MESSAGE_TYPE_INVALID</a>, <a class="el" href="dbus-protocol_8h-source.html#l00222">DBUS_MESSAGE_TYPE_METHOD_CALL</a>, <a class="el" href="dbus-protocol_8h-source.html#l00224">DBUS_MESSAGE_TYPE_METHOD_RETURN</a>, and <a class="el" href="dbus-protocol_8h-source.html#l00228">DBUS_MESSAGE_TYPE_SIGNAL</a>.
</div>
</div><p>
<a class="anchor" name="g75bcb613a291eb7e427f77f2f3635b8f"></a><!-- doxytag: member="dbus-message.c::dbus_message_type_to_string" ref="g75bcb613a291eb7e427f77f2f3635b8f" args="(int type)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* dbus_message_type_to_string </td>
<td>(</td>
<td class="paramtype">int </td>
<td class="paramname"> <em>type</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Utility function to convert a D-Bus message type into a machine-readable string (not translated).
<p>
<div class="fragment"><pre class="fragment"> <a class="code" href="group__DBusProtocol.html#g09416afd76b65139eddd31e1085d9ebf">DBUS_MESSAGE_TYPE_METHOD_CALL</a> -> <span class="stringliteral">"method_call"</span>
<a class="code" href="group__DBusProtocol.html#g4a9012edd7f22342f845e98150aeb858">DBUS_MESSAGE_TYPE_METHOD_RETURN</a> -> <span class="stringliteral">"method_return"</span>
<a class="code" href="group__DBusProtocol.html#g728d893ff0c00e126517ba39835220a5">DBUS_MESSAGE_TYPE_SIGNAL</a> -> <span class="stringliteral">"signal"</span>
<a class="code" href="group__DBusProtocol.html#g2b9423d95066313d73eeea8eeaf86812">DBUS_MESSAGE_TYPE_ERROR</a> -> <span class="stringliteral">"error"</span>
<a class="code" href="group__DBusProtocol.html#gc975525a6ce258a7a70c583c9741b516">DBUS_MESSAGE_TYPE_INVALID</a> -> <span class="stringliteral">"invalid"</span>
</pre></div>
<p>
Definition at line <a class="el" href="dbus-message_8c-source.html#l03902">3902</a> of file <a class="el" href="dbus-message_8c-source.html">dbus-message.c</a>.
<p>
References <a class="el" href="dbus-protocol_8h-source.html#l00226">DBUS_MESSAGE_TYPE_ERROR</a>, <a class="el" href="dbus-protocol_8h-source.html#l00222">DBUS_MESSAGE_TYPE_METHOD_CALL</a>, <a class="el" href="dbus-protocol_8h-source.html#l00224">DBUS_MESSAGE_TYPE_METHOD_RETURN</a>, and <a class="el" href="dbus-protocol_8h-source.html#l00228">DBUS_MESSAGE_TYPE_SIGNAL</a>.
</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 14 22:26:14 2009 for D-Bus by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>