KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
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 :  /proc/21573/root/usr/share/devhelp/books/dbus/api/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //proc/21573/root/usr/share/devhelp/books/dbus/api/group__DBusMarshal.html
<!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: marshaling and unmarshaling</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&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul></div>
<h1>marshaling and unmarshaling<br>
<small>
[<a class="el" href="group__DBusInternals.html">D-Bus secret internal implementation details</a>]</small>
</h1>functions to marshal/unmarshal data from the wire  
<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 &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structHeaderFieldType.html">HeaderFieldType</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structDBusTypeReaderClass.html">DBusTypeReaderClass</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Virtual table for a type reader.  <a href="structDBusTypeReaderClass.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structReplacementBlock.html">ReplacementBlock</a></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="g935ea6d7c6bb72a10c670f5ef3e34d49"></a><!-- doxytag: member="DBusMarshal::FIELDS_ARRAY_SIGNATURE_OFFSET" ref="g935ea6d7c6bb72a10c670f5ef3e34d49" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g935ea6d7c6bb72a10c670f5ef3e34d49">FIELDS_ARRAY_SIGNATURE_OFFSET</a>&nbsp;&nbsp;&nbsp;6</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Offset from start of _dbus_header_signature_str to the signature of the fields array. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gca36ac2e9b37067279d1bc967793e071"></a><!-- doxytag: member="DBusMarshal::FIELDS_ARRAY_ELEMENT_SIGNATURE_OFFSET" ref="gca36ac2e9b37067279d1bc967793e071" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gca36ac2e9b37067279d1bc967793e071">FIELDS_ARRAY_ELEMENT_SIGNATURE_OFFSET</a>&nbsp;&nbsp;&nbsp;7</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Offset from start of _dbus_header_signature_str to the signature of an element of the fields array. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga5b7e77f37761139698892e4b8aad029"></a><!-- doxytag: member="DBusMarshal::BYTE_ORDER_OFFSET" ref="ga5b7e77f37761139698892e4b8aad029" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#ga5b7e77f37761139698892e4b8aad029">BYTE_ORDER_OFFSET</a>&nbsp;&nbsp;&nbsp;0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Offset to byte order from start of header. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf4fe78df75f4afa2ec63304462614b03"></a><!-- doxytag: member="DBusMarshal::TYPE_OFFSET" ref="gf4fe78df75f4afa2ec63304462614b03" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gf4fe78df75f4afa2ec63304462614b03">TYPE_OFFSET</a>&nbsp;&nbsp;&nbsp;1</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Offset to type from start of header. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g7fe1bac4010cdc7e27de1e19702c071e"></a><!-- doxytag: member="DBusMarshal::FLAGS_OFFSET" ref="g7fe1bac4010cdc7e27de1e19702c071e" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g7fe1bac4010cdc7e27de1e19702c071e">FLAGS_OFFSET</a>&nbsp;&nbsp;&nbsp;2</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Offset to flags from start of header. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4f04ecce1223b00d263c0accdea144ad"></a><!-- doxytag: member="DBusMarshal::VERSION_OFFSET" ref="g4f04ecce1223b00d263c0accdea144ad" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g4f04ecce1223b00d263c0accdea144ad">VERSION_OFFSET</a>&nbsp;&nbsp;&nbsp;3</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Offset to version from start of header. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g190a2d89e79c9d76fcba4f06ec8b5b5c"></a><!-- doxytag: member="DBusMarshal::BODY_LENGTH_OFFSET" ref="g190a2d89e79c9d76fcba4f06ec8b5b5c" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g190a2d89e79c9d76fcba4f06ec8b5b5c">BODY_LENGTH_OFFSET</a>&nbsp;&nbsp;&nbsp;4</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Offset to body length from start of header. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4a9c0639714b478a4905cdd6e999b6b3"></a><!-- doxytag: member="DBusMarshal::SERIAL_OFFSET" ref="g4a9c0639714b478a4905cdd6e999b6b3" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g4a9c0639714b478a4905cdd6e999b6b3">SERIAL_OFFSET</a>&nbsp;&nbsp;&nbsp;8</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Offset to client serial from start of header. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge9759e0de1d8a650f37632c3dc22427e"></a><!-- doxytag: member="DBusMarshal::FIELDS_ARRAY_LENGTH_OFFSET" ref="ge9759e0de1d8a650f37632c3dc22427e" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#ge9759e0de1d8a650f37632c3dc22427e">FIELDS_ARRAY_LENGTH_OFFSET</a>&nbsp;&nbsp;&nbsp;12</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Offset to fields array length from start of header. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gaa085e57f49f527ef210e842be999929"></a><!-- doxytag: member="DBusMarshal::FIRST_FIELD_OFFSET" ref="gaa085e57f49f527ef210e842be999929" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gaa085e57f49f527ef210e842be999929">FIRST_FIELD_OFFSET</a>&nbsp;&nbsp;&nbsp;16</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Offset to first field in header. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g37be3d294f5be31c95bc7620e451b0b2"></a><!-- doxytag: member="DBusMarshal::EXPECTED_TYPE_OF_FIELD" ref="g37be3d294f5be31c95bc7620e451b0b2" args="(field)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g37be3d294f5be31c95bc7620e451b0b2">EXPECTED_TYPE_OF_FIELD</a>(field)&nbsp;&nbsp;&nbsp;(_dbus_header_field_types[field].type)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Macro to look up the correct type for a field. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga10402f90ea6e004e3b9f04eea34f73c"></a><!-- doxytag: member="DBusMarshal::MAX_POSSIBLE_HEADER_PADDING" ref="ga10402f90ea6e004e3b9f04eea34f73c" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#ga10402f90ea6e004e3b9f04eea34f73c">MAX_POSSIBLE_HEADER_PADDING</a>&nbsp;&nbsp;&nbsp;7</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The most padding we could ever need for a header. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gef7e86e442aeb887c8bfe5559cd4eabb"></a><!-- doxytag: member="DBusMarshal::HEADER_END_BEFORE_PADDING" ref="gef7e86e442aeb887c8bfe5559cd4eabb" args="(header)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gef7e86e442aeb887c8bfe5559cd4eabb">HEADER_END_BEFORE_PADDING</a>(header)&nbsp;&nbsp;&nbsp;(_dbus_string_get_length (&amp;(header)-&gt;data) - (header)-&gt;padding)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compute the end of the header, ignoring padding. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g2055dc20f1e0c13064cebf1fb65b8ce8"></a><!-- doxytag: member="DBusMarshal::RECURSIVE_MARSHAL_READ_TRACE" ref="g2055dc20f1e0c13064cebf1fb65b8ce8" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g2055dc20f1e0c13064cebf1fb65b8ce8">RECURSIVE_MARSHAL_READ_TRACE</a>&nbsp;&nbsp;&nbsp;0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">turn this on to get deluged in TypeReader verbose spam <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g428a18f23d9a4c59560f03fd2088fe7f"></a><!-- doxytag: member="DBusMarshal::RECURSIVE_MARSHAL_WRITE_TRACE" ref="g428a18f23d9a4c59560f03fd2088fe7f" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g428a18f23d9a4c59560f03fd2088fe7f">RECURSIVE_MARSHAL_WRITE_TRACE</a>&nbsp;&nbsp;&nbsp;0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">turn this on to get deluged in TypeWriter verbose spam <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gcca774d24b7d7e790b169f23d3362497"></a><!-- doxytag: member="DBusMarshal::ARRAY_READER_LEN_POS" ref="gcca774d24b7d7e790b169f23d3362497" args="(reader)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gcca774d24b7d7e790b169f23d3362497">ARRAY_READER_LEN_POS</a>(reader)&nbsp;&nbsp;&nbsp;((reader)-&gt;u.array.start_pos - ((int)(reader)-&gt;array_len_offset) - 4)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">compute position of array length given array_len_offset, which is the offset back from start_pos to end of the len <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g8eb3b26eec8ebfeef410caa4acc9570d">VALID_INITIAL_NAME_CHARACTER</a>(c)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine wether the given character is valid as the first character in a name.  <a href="#g8eb3b26eec8ebfeef410caa4acc9570d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g11d63128bf5c1b7e0164be7072c6c6c7">VALID_NAME_CHARACTER</a>(c)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine wether the given character is valid as a second or later character in a name.  <a href="#g11d63128bf5c1b7e0164be7072c6c6c7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g1ec58a1d7a35131dd81c6eb99b9a2950">VALID_INITIAL_BUS_NAME_CHARACTER</a>(c)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine wether the given character is valid as the first character in a bus name.  <a href="#g1ec58a1d7a35131dd81c6eb99b9a2950"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g225bd010fa638c822271047157a880f2">VALID_BUS_NAME_CHARACTER</a>(c)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Determine wether the given character is valid as a second or later character in a bus name.  <a href="#g225bd010fa638c822271047157a880f2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gb17853bba6b5508dc2d1eddad7e40946">DECLARE_DBUS_NAME_CHECK</a>(what)&nbsp;&nbsp;&nbsp;<a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_check_is_valid_##what (const char *name)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A name check is used in _dbus_return_if_fail(), it's not suitable for validating untrusted data.  <a href="#gb17853bba6b5508dc2d1eddad7e40946"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g2d30023893c9483413f63d2b8d4e1fb9">DEFINE_DBUS_NAME_CHECK</a>(what)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Define a name check to be used in _dbus_return_if_fail() statements.  <a href="#g2d30023893c9483413f63d2b8d4e1fb9"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom">{ <b>MARSHAL_AS_STRING</b>, 
<b>MARSHAL_AS_SIGNATURE</b>, 
<b>MARSHAL_AS_BYTE_ARRAY</b>
 }</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gf9dce059725fa793c44b219460cbbe6d">DBusValidationMode</a> { <b>DBUS_VALIDATION_MODE_WE_TRUST_THIS_DATA_ABSOLUTELY</b>, 
<b>DBUS_VALIDATION_MODE_DATA_IS_UNTRUSTED</b>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is used rather than a bool for high visibility. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g0c4521d30d6650a33673a4d7f9cc007c">DBusValidity</a> { <br>
&nbsp;&nbsp;<a class="el" href="group__DBusMarshal.html#gg0c4521d30d6650a33673a4d7f9cc007c08cf1e84457c1f41acaf082de2060a65">DBUS_VALIDITY_UNKNOWN_OOM_ERROR</a> =  -4, 
<b>DBUS_INVALID_FOR_UNKNOWN_REASON</b> =  -3, 
<b>DBUS_VALID_BUT_INCOMPLETE</b> =  -2, 
<b>DBUS_VALIDITY_UNKNOWN</b> =  -1, 
<br>
&nbsp;&nbsp;<a class="el" href="group__DBusMarshal.html#gg0c4521d30d6650a33673a4d7f9cc007ce68ac5067fe94cdcfb35e115f36298c8">DBUS_VALID</a> =  0, 
<b>DBUS_INVALID_UNKNOWN_TYPECODE</b> =  1, 
<b>DBUS_INVALID_MISSING_ARRAY_ELEMENT_TYPE</b> =  2, 
<b>DBUS_INVALID_SIGNATURE_TOO_LONG</b> =  3, 
<br>
&nbsp;&nbsp;<b>DBUS_INVALID_EXCEEDED_MAXIMUM_ARRAY_RECURSION</b> =  4, 
<b>DBUS_INVALID_EXCEEDED_MAXIMUM_STRUCT_RECURSION</b> =  5, 
<b>DBUS_INVALID_STRUCT_ENDED_BUT_NOT_STARTED</b> =  6, 
<b>DBUS_INVALID_STRUCT_STARTED_BUT_NOT_ENDED</b> =  7, 
<br>
&nbsp;&nbsp;<b>DBUS_INVALID_STRUCT_HAS_NO_FIELDS</b> =  8, 
<b>DBUS_INVALID_ALIGNMENT_PADDING_NOT_NUL</b> =  9, 
<b>DBUS_INVALID_BOOLEAN_NOT_ZERO_OR_ONE</b> =  10, 
<b>DBUS_INVALID_NOT_ENOUGH_DATA</b> =  11, 
<br>
&nbsp;&nbsp;<a class="el" href="group__DBusMarshal.html#gg0c4521d30d6650a33673a4d7f9cc007c10bc3fdc9ca42108aa5a7e091f6aae52">DBUS_INVALID_TOO_MUCH_DATA</a> =  12, 
<b>DBUS_INVALID_BAD_BYTE_ORDER</b> =  13, 
<b>DBUS_INVALID_BAD_PROTOCOL_VERSION</b> =  14, 
<b>DBUS_INVALID_BAD_MESSAGE_TYPE</b> =  15, 
<br>
&nbsp;&nbsp;<b>DBUS_INVALID_BAD_SERIAL</b> =  16, 
<b>DBUS_INVALID_INSANE_FIELDS_ARRAY_LENGTH</b> =  17, 
<b>DBUS_INVALID_INSANE_BODY_LENGTH</b> =  18, 
<b>DBUS_INVALID_MESSAGE_TOO_LONG</b> =  19, 
<br>
&nbsp;&nbsp;<b>DBUS_INVALID_HEADER_FIELD_CODE</b> =  20, 
<b>DBUS_INVALID_HEADER_FIELD_HAS_WRONG_TYPE</b> =  21, 
<b>DBUS_INVALID_USES_LOCAL_INTERFACE</b> =  22, 
<b>DBUS_INVALID_USES_LOCAL_PATH</b> =  23, 
<br>
&nbsp;&nbsp;<b>DBUS_INVALID_HEADER_FIELD_APPEARS_TWICE</b> =  24, 
<b>DBUS_INVALID_BAD_DESTINATION</b> =  25, 
<b>DBUS_INVALID_BAD_INTERFACE</b> =  26, 
<b>DBUS_INVALID_BAD_MEMBER</b> =  27, 
<br>
&nbsp;&nbsp;<b>DBUS_INVALID_BAD_ERROR_NAME</b> =  28, 
<b>DBUS_INVALID_BAD_SENDER</b> =  29, 
<b>DBUS_INVALID_MISSING_PATH</b> =  30, 
<b>DBUS_INVALID_MISSING_INTERFACE</b> =  31, 
<br>
&nbsp;&nbsp;<b>DBUS_INVALID_MISSING_MEMBER</b> =  32, 
<b>DBUS_INVALID_MISSING_ERROR_NAME</b> =  33, 
<b>DBUS_INVALID_MISSING_REPLY_SERIAL</b> =  34, 
<b>DBUS_INVALID_LENGTH_OUT_OF_BOUNDS</b> =  35, 
<br>
&nbsp;&nbsp;<b>DBUS_INVALID_ARRAY_LENGTH_EXCEEDS_MAXIMUM</b> =  36, 
<b>DBUS_INVALID_BAD_PATH</b> =  37, 
<b>DBUS_INVALID_SIGNATURE_LENGTH_OUT_OF_BOUNDS</b> =  38, 
<b>DBUS_INVALID_BAD_UTF8_IN_STRING</b> =  39, 
<br>
&nbsp;&nbsp;<b>DBUS_INVALID_ARRAY_LENGTH_INCORRECT</b> =  40, 
<b>DBUS_INVALID_VARIANT_SIGNATURE_LENGTH_OUT_OF_BOUNDS</b> =  41, 
<b>DBUS_INVALID_VARIANT_SIGNATURE_BAD</b> =  42, 
<b>DBUS_INVALID_VARIANT_SIGNATURE_EMPTY</b> =  43, 
<br>
&nbsp;&nbsp;<b>DBUS_INVALID_VARIANT_SIGNATURE_SPECIFIES_MULTIPLE_VALUES</b> =  44, 
<b>DBUS_INVALID_VARIANT_SIGNATURE_MISSING_NUL</b> =  45, 
<b>DBUS_INVALID_STRING_MISSING_NUL</b> =  46, 
<b>DBUS_INVALID_SIGNATURE_MISSING_NUL</b> =  47, 
<br>
&nbsp;&nbsp;<b>DBUS_INVALID_EXCEEDED_MAXIMUM_DICT_ENTRY_RECURSION</b> =  48, 
<b>DBUS_INVALID_DICT_ENTRY_ENDED_BUT_NOT_STARTED</b> =  49, 
<b>DBUS_INVALID_DICT_ENTRY_STARTED_BUT_NOT_ENDED</b> =  50, 
<b>DBUS_INVALID_DICT_ENTRY_HAS_NO_FIELDS</b> =  51, 
<br>
&nbsp;&nbsp;<b>DBUS_INVALID_DICT_ENTRY_HAS_ONLY_ONE_FIELD</b> =  52, 
<b>DBUS_INVALID_DICT_ENTRY_HAS_TOO_MANY_FIELDS</b> =  53, 
<b>DBUS_INVALID_DICT_ENTRY_NOT_INSIDE_ARRAY</b> =  54, 
<b>DBUS_INVALID_DICT_KEY_MUST_BE_BASIC_TYPE</b> =  55, 
<br>
&nbsp;&nbsp;<b>DBUS_VALIDITY_LAST</b>
<br>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is primarily used in unit testing, so we can verify that each invalid message is invalid for the expected reasons.  <a href="group__DBusMarshal.html#g0c4521d30d6650a33673a4d7f9cc007c">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g44e670d715bb678045f3d79b35920b0b">_dbus_pack_uint32</a> (<a class="el" href="group__DBusTypes.html#gf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a> value, int byte_order, unsigned char *data)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Packs a 32 bit unsigned integer into a data pointer.  <a href="#g44e670d715bb678045f3d79b35920b0b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g4bcfb6a664c7e46c7ffc31f96d532a02">_dbus_marshal_set_uint32</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int pos, <a class="el" href="group__DBusTypes.html#gf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a> value, int byte_order)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the 4 bytes at the given offset to a marshaled unsigned integer, replacing anything found there previously.  <a href="#g4bcfb6a664c7e46c7ffc31f96d532a02"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g854526bdf221a5e82b2e14581ac17d8f">_dbus_marshal_set_basic</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int pos, int type, const void *value, int byte_order, int *old_end_pos, int *new_end_pos)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets an existing basic type value to a new value.  <a href="#g854526bdf221a5e82b2e14581ac17d8f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#gf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g6dd82a202c19758cbf76dbed2946615d">_dbus_marshal_read_uint32</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int pos, int byte_order, int *new_pos)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convenience function to demarshal a 32 bit unsigned integer.  <a href="#g6dd82a202c19758cbf76dbed2946615d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gb331e099fa8cf3d94cf33ad7b20c81ae">_dbus_marshal_read_basic</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int pos, int type, void *value, int byte_order, int *new_pos)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Demarshals a basic-typed value.  <a href="#gb331e099fa8cf3d94cf33ad7b20c81ae"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g54323d48921de8c5bd04ae01548312bb">_dbus_marshal_write_basic</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int insert_at, int type, const void *value, int byte_order, int *pos_after)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Marshals a basic-typed value.  <a href="#g54323d48921de8c5bd04ae01548312bb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gec86e8e1ae2f25b673ae6d900ab323c7">_dbus_swap_array</a> (unsigned char *data, int n_elements, int alignment)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Swaps the elements of an array to the opposite byte order.  <a href="#gec86e8e1ae2f25b673ae6d900ab323c7"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g990da87b984d8917da26b89a6470fdf5">_dbus_marshal_write_fixed_multi</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int insert_at, int element_type, const void *value, int n_elements, int byte_order, int *pos_after)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Marshals a block of values of fixed-length type all at once, as an optimization.  <a href="#g990da87b984d8917da26b89a6470fdf5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gfd1ab7e9bd8e74cc41f03c76f4dce2dd">_dbus_marshal_skip_basic</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int type, int byte_order, int *pos)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Skips over a basic-typed value, reporting the following position.  <a href="#gfd1ab7e9bd8e74cc41f03c76f4dce2dd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g8d9c5bcc039d9099df197a125a7259b8">_dbus_marshal_skip_array</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int element_type, int byte_order, int *pos)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Skips an array, returning the next position.  <a href="#g8d9c5bcc039d9099df197a125a7259b8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g2ba80f227880e442c140bc67653b0abd">_dbus_type_get_alignment</a> (int typecode)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the alignment requirement for the given type; will be 1, 4, or 8.  <a href="#g2ba80f227880e442c140bc67653b0abd"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#ga1bf18d3c95d4d4632fbdfe3a1d22bed">_dbus_type_is_valid</a> (int typecode)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the typecode is a valid typecode.  <a href="#ga1bf18d3c95d4d4632fbdfe3a1d22bed"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g48a595c2b26dce6e9c25ce040e5247e5">_dbus_type_to_string</a> (int typecode)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a string describing the given type.  <a href="#g48a595c2b26dce6e9c25ce040e5247e5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g7f3320a0b0f7633cdf5c149588ae9bd9">_dbus_verbose_bytes</a> (const unsigned char *data, int len, int offset)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If in verbose mode, print a block of binary data.  <a href="#g7f3320a0b0f7633cdf5c149588ae9bd9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g3926bb35edf78d114cf0c341fe3258e0">_dbus_verbose_bytes_of_string</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int start, int len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Dump the given part of the string to verbose log.  <a href="#g3926bb35edf78d114cf0c341fe3258e0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g5866a0fd058aed3396402d0456144fd2">_dbus_first_type_in_signature</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int pos)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the first type in the signature.  <a href="#g5866a0fd058aed3396402d0456144fd2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g61cc8d9c4e4217be654455d8eb45544c">_dbus_first_type_in_signature_c_str</a> (const char *str, int pos)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Similar to <a class="el" href="group__DBusMarshal.html#g5866a0fd058aed3396402d0456144fd2">_dbus_first_type_in_signature</a>, but operates on a C string buffer.  <a href="#g61cc8d9c4e4217be654455d8eb45544c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g609a4b8c0b65096890766fda73a4c40f">_dbus_marshal_byteswap</a> (const <a class="el" href="structDBusString.html">DBusString</a> *signature, int signature_start, int old_byte_order, int new_byte_order, <a class="el" href="structDBusString.html">DBusString</a> *value_str, int value_pos)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Byteswaps the marshaled data in the given value_str.  <a href="#g609a4b8c0b65096890766fda73a4c40f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb49ca4819ef45b26463427bb09060844"></a><!-- doxytag: member="DBusMarshal::_DBUS_STRING_DEFINE_STATIC" ref="gb49ca4819ef45b26463427bb09060844" args="(_dbus_header_signature_str, DBUS_HEADER_SIGNATURE)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gb49ca4819ef45b26463427bb09060844">_DBUS_STRING_DEFINE_STATIC</a> (_dbus_header_signature_str, DBUS_HEADER_SIGNATURE)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Static <a class="el" href="structDBusString.html">DBusString</a> containing the signature of a message header. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4d454446fbca28c07187eb8bb627f70b"></a><!-- doxytag: member="DBusMarshal::_DBUS_STRING_DEFINE_STATIC" ref="g4d454446fbca28c07187eb8bb627f70b" args="(_dbus_local_interface_str, DBUS_INTERFACE_LOCAL)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g4d454446fbca28c07187eb8bb627f70b">_DBUS_STRING_DEFINE_STATIC</a> (_dbus_local_interface_str, DBUS_INTERFACE_LOCAL)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Static <a class="el" href="structDBusString.html">DBusString</a> containing the local interface. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g991dd170f3d84b4bf195caf3a1046d28"></a><!-- doxytag: member="DBusMarshal::_DBUS_STRING_DEFINE_STATIC" ref="g991dd170f3d84b4bf195caf3a1046d28" args="(_dbus_local_path_str, DBUS_PATH_LOCAL)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g991dd170f3d84b4bf195caf3a1046d28">_DBUS_STRING_DEFINE_STATIC</a> (_dbus_local_path_str, DBUS_PATH_LOCAL)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Static <a class="el" href="structDBusString.html">DBusString</a> containing the local path. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g4427247494fc5c988498c5a87d42092d">_dbus_header_get_message_type</a> (<a class="el" href="structDBusHeader.html">DBusHeader</a> *header)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the type of the message.  <a href="#g4427247494fc5c988498c5a87d42092d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gd92e0b1992cf96a4da642a4a54a5d26d">_dbus_header_set_serial</a> (<a class="el" href="structDBusHeader.html">DBusHeader</a> *header, <a class="el" href="group__DBusTypes.html#gf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a> serial)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the serial number of a header.  <a href="#gd92e0b1992cf96a4da642a4a54a5d26d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#gf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g7ec7222423db42935aae4a24499ee0fb">_dbus_header_get_serial</a> (<a class="el" href="structDBusHeader.html">DBusHeader</a> *header)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">See <a class="el" href="group__DBusMessage.html#g89b6eb41aed10c6d5f4a3bc0fe018a6b">dbus_message_get_serial()</a>.  <a href="#g7ec7222423db42935aae4a24499ee0fb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gcb9244bf214bcb53d851d2ce640b3931">_dbus_header_reinit</a> (<a class="el" href="structDBusHeader.html">DBusHeader</a> *header, int byte_order)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Re-initializes a header that was previously initialized and never freed.  <a href="#gcb9244bf214bcb53d851d2ce640b3931"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gf939f7ccf175ff3056f76b7673b20ccb">_dbus_header_init</a> (<a class="el" href="structDBusHeader.html">DBusHeader</a> *header, int byte_order)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initializes a header, but doesn't prepare it for use; to make the header valid, you have to call <a class="el" href="group__DBusMarshal.html#gcabc7d2698ec08845d1af23f3409a7a9">_dbus_header_create()</a>.  <a href="#gf939f7ccf175ff3056f76b7673b20ccb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gb90a814a27aeeace7e02c4ed130539cf">_dbus_header_free</a> (<a class="el" href="structDBusHeader.html">DBusHeader</a> *header)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Frees a header.  <a href="#gb90a814a27aeeace7e02c4ed130539cf"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g0d5aad82f8bf5a314dcf3f70930e254b">_dbus_header_copy</a> (const <a class="el" href="structDBusHeader.html">DBusHeader</a> *header, <a class="el" href="structDBusHeader.html">DBusHeader</a> *dest)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initializes dest with a copy of the given header.  <a href="#g0d5aad82f8bf5a314dcf3f70930e254b"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gcabc7d2698ec08845d1af23f3409a7a9">_dbus_header_create</a> (<a class="el" href="structDBusHeader.html">DBusHeader</a> *header, int message_type, const char *destination, const char *path, const char *interface, const char *member, const char *error_name)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fills in the primary fields of the header, so the header is ready for use.  <a href="#gcabc7d2698ec08845d1af23f3409a7a9"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g674d74081baf6e7531e0d4a286724210">_dbus_header_have_message_untrusted</a> (int max_message_length, <a class="el" href="group__DBusMarshal.html#g0c4521d30d6650a33673a4d7f9cc007c">DBusValidity</a> *validity, int *byte_order, int *fields_array_len, int *header_len, int *body_len, const <a class="el" href="structDBusString.html">DBusString</a> *str, int start, int len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Given data long enough to contain the length of the message body and the fields array, check whether the data is long enough to contain the entire message (assuming the claimed lengths are accurate).  <a href="#g674d74081baf6e7531e0d4a286724210"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g0c3a3f95d9a53b91a0cd0b260196685b">_dbus_header_load</a> (<a class="el" href="structDBusHeader.html">DBusHeader</a> *header, <a class="el" href="group__DBusMarshal.html#gf9dce059725fa793c44b219460cbbe6d">DBusValidationMode</a> mode, <a class="el" href="group__DBusMarshal.html#g0c4521d30d6650a33673a4d7f9cc007c">DBusValidity</a> *validity, int byte_order, int fields_array_len, int header_len, int body_len, const <a class="el" href="structDBusString.html">DBusString</a> *str, int start, int len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a message header from potentially-untrusted data.  <a href="#g0c3a3f95d9a53b91a0cd0b260196685b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g0cff04252f97f6a25552c368199897f5">_dbus_header_update_lengths</a> (<a class="el" href="structDBusHeader.html">DBusHeader</a> *header, int body_len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fills in the correct body length.  <a href="#g0cff04252f97f6a25552c368199897f5"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g4349de00b7754a337526e36fda133464">_dbus_header_set_field_basic</a> (<a class="el" href="structDBusHeader.html">DBusHeader</a> *header, int field, int type, const void *value)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the value of a field with basic type.  <a href="#g4349de00b7754a337526e36fda133464"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g499973a18dcb17d854eaf14101a66736">_dbus_header_get_field_basic</a> (<a class="el" href="structDBusHeader.html">DBusHeader</a> *header, int field, int type, void *value)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the value of a field with basic type.  <a href="#g499973a18dcb17d854eaf14101a66736"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gf4661ba8e7067f349ba03c9f5776bbb0">_dbus_header_get_field_raw</a> (<a class="el" href="structDBusHeader.html">DBusHeader</a> *header, int field, const <a class="el" href="structDBusString.html">DBusString</a> **str, int *pos)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the raw marshaled data for a field.  <a href="#gf4661ba8e7067f349ba03c9f5776bbb0"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g7814248f4d74d109d29dc00487cd9b0c">_dbus_header_delete_field</a> (<a class="el" href="structDBusHeader.html">DBusHeader</a> *header, int field)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Deletes a field, if it exists.  <a href="#g7814248f4d74d109d29dc00487cd9b0c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gd2073f8f2f2ba3b710aa929dced34cc3">_dbus_header_toggle_flag</a> (<a class="el" href="structDBusHeader.html">DBusHeader</a> *header, <a class="el" href="group__DBusTypes.html#gf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a> flag, <a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> value)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Toggles a message flag bit, turning on the bit if value = TRUE and flipping it off if value = FALSE.  <a href="#gd2073f8f2f2ba3b710aa929dced34cc3"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g56619efed3088554b8760edd246b4157">_dbus_header_get_flag</a> (<a class="el" href="structDBusHeader.html">DBusHeader</a> *header, <a class="el" href="group__DBusTypes.html#gf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a> flag)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets a message flag bit, returning TRUE if the bit is set.  <a href="#g56619efed3088554b8760edd246b4157"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#ge5277c7b7bfb7b85e421baceac0398c8">_dbus_header_byteswap</a> (<a class="el" href="structDBusHeader.html">DBusHeader</a> *header, int new_order)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Swaps the header into the given order if required.  <a href="#ge5277c7b7bfb7b85e421baceac0398c8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gf2f5b2f027fa7d24f6179c6dbdf71a83">_dbus_type_signature_next</a> (const char *type_str, int *type_pos)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Skips to the next "complete" type inside a type signature.  <a href="#gf2f5b2f027fa7d24f6179c6dbdf71a83"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g35d70cf69b1196518367e3e68e9b2dd2">_dbus_type_reader_init</a> (<a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *reader, int byte_order, const <a class="el" href="structDBusString.html">DBusString</a> *type_str, int type_pos, const <a class="el" href="structDBusString.html">DBusString</a> *value_str, int value_pos)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initializes a type reader.  <a href="#g35d70cf69b1196518367e3e68e9b2dd2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g3a5845f555f11c33ebaa71a75abff661">_dbus_type_reader_init_types_only</a> (<a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *reader, const <a class="el" href="structDBusString.html">DBusString</a> *type_str, int type_pos)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Like <a class="el" href="group__DBusMarshal.html#g35d70cf69b1196518367e3e68e9b2dd2">_dbus_type_reader_init()</a> but the iteration is over the signature, not over values.  <a href="#g3a5845f555f11c33ebaa71a75abff661"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gb8e39cb8084247d54d7f272c51622a73">_dbus_type_reader_get_current_type</a> (const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *reader)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the type of the value the reader is currently pointing to; or for a types-only reader gets the type it's currently pointing to.  <a href="#gb8e39cb8084247d54d7f272c51622a73"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g6e5439f7ca5ee8a1ce943ddab7611d0d">_dbus_type_reader_get_element_type</a> (const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *reader)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the type of an element of the array the reader is currently pointing to.  <a href="#g6e5439f7ca5ee8a1ce943ddab7611d0d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g2a8ab1152821950b1fe29e000954981c">_dbus_type_reader_get_value_pos</a> (const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *reader)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the current position in the value block.  <a href="#g2a8ab1152821950b1fe29e000954981c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gc87315d74386314ec3b148ef737626d2">_dbus_type_reader_read_raw</a> (const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *reader, const unsigned char **value_location)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the address of the marshaled value in the data being read.  <a href="#gc87315d74386314ec3b148ef737626d2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#ga54355ee98d6721d7a29b5ae7d92eb9a">_dbus_type_reader_read_basic</a> (const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *reader, void *value)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reads a basic-typed value, as with <a class="el" href="group__DBusMarshal.html#gb331e099fa8cf3d94cf33ad7b20c81ae">_dbus_marshal_read_basic()</a>.  <a href="#ga54355ee98d6721d7a29b5ae7d92eb9a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g7def93d676d528c261aa274cea41c29d">_dbus_type_reader_get_array_length</a> (const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *reader)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of bytes in the array.  <a href="#g7def93d676d528c261aa274cea41c29d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#ge9a65c05e58ace9c83352f65af2fe745">_dbus_type_reader_read_fixed_multi</a> (const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *reader, void *value, int *n_elements)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reads a block of fixed-length basic values, from the current point in an array to the end of the array.  <a href="#ge9a65c05e58ace9c83352f65af2fe745"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g082b410820c74b2a6ca816a8e0c91803">_dbus_type_reader_recurse</a> (<a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *reader, <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *sub)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a new reader pointing to the first type and corresponding value that's a child of the current container.  <a href="#g082b410820c74b2a6ca816a8e0c91803"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g746c09512d4905f2d2fac7ed4c3c63c2">_dbus_type_reader_next</a> (<a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *reader)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Skip to the next value on this "level".  <a href="#g746c09512d4905f2d2fac7ed4c3c63c2"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g97a59dbd1597ef1b267457e809f095de">_dbus_type_reader_has_next</a> (const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *reader)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check whether there's another value on this "level".  <a href="#g97a59dbd1597ef1b267457e809f095de"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g4578cc623c8b0978ca780ce0ab950fdb">_dbus_type_reader_get_signature</a> (const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *reader, const <a class="el" href="structDBusString.html">DBusString</a> **str_p, int *start_p, int *len_p)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the string and range of said string containing the signature of the current value.  <a href="#g4578cc623c8b0978ca780ce0ab950fdb"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gaf11ca429434c2c280f5fad34ed95204">_dbus_type_reader_set_basic</a> (<a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *reader, const void *value, const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *realign_root)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets a new value for the basic type value pointed to by the reader, leaving the reader valid to continue reading.  <a href="#gaf11ca429434c2c280f5fad34ed95204"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#ga4057610b3d9e81fed212c17f6599516">_dbus_type_reader_delete</a> (<a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *reader, const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *realign_root)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Recursively deletes any value pointed to by the reader, leaving the reader valid to continue reading.  <a href="#ga4057610b3d9e81fed212c17f6599516"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g229b3858f43ec56de852f62914cf3568">_dbus_type_reader_greater_than</a> (const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *lhs, const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *rhs)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compares two readers, which must be iterating over the same value data.  <a href="#g229b3858f43ec56de852f62914cf3568"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gdeb83962df31e074874e957d17a0d4d1">_dbus_type_writer_init</a> (<a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *writer, int byte_order, <a class="el" href="structDBusString.html">DBusString</a> *type_str, int type_pos, <a class="el" href="structDBusString.html">DBusString</a> *value_str, int value_pos)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a write iterator, which is used to write out values in serialized D-Bus format.  <a href="#gdeb83962df31e074874e957d17a0d4d1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#ga9ecf7e96d5323bc1da9cdf0c3f2c1e7">_dbus_type_writer_init_types_delayed</a> (<a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *writer, int byte_order, <a class="el" href="structDBusString.html">DBusString</a> *value_str, int value_pos)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a write iterator, with the signature to be provided later.  <a href="#ga9ecf7e96d5323bc1da9cdf0c3f2c1e7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g863b2f232a21582f9e6fe1951b09da91">_dbus_type_writer_add_types</a> (<a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *writer, <a class="el" href="structDBusString.html">DBusString</a> *type_str, int type_pos)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds type string to the writer, if it had none.  <a href="#g863b2f232a21582f9e6fe1951b09da91"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g34d675b57c7e6569707d22ba76ae010c">_dbus_type_writer_remove_types</a> (<a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *writer)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes type string from the writer.  <a href="#g34d675b57c7e6569707d22ba76ae010c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g1f101175ce6f33221fcb59f0b46349bd">_dbus_type_writer_init_values_only</a> (<a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *writer, int byte_order, const <a class="el" href="structDBusString.html">DBusString</a> *type_str, int type_pos, <a class="el" href="structDBusString.html">DBusString</a> *value_str, int value_pos)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Like <a class="el" href="group__DBusMarshal.html#gdeb83962df31e074874e957d17a0d4d1">_dbus_type_writer_init()</a>, except the type string passed in should correspond to an existing signature that matches what you're going to write out.  <a href="#g1f101175ce6f33221fcb59f0b46349bd"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g4c0a1036e59dac270141052d951baff2">_dbus_type_writer_recurse</a> (<a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *writer, int container_type, const <a class="el" href="structDBusString.html">DBusString</a> *contained_type, int contained_type_start, <a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *sub)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Opens a new container and writes out the initial information for that container.  <a href="#g4c0a1036e59dac270141052d951baff2"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gcc2b4c348f93898f6269feb0bf055617">_dbus_type_writer_append_array</a> (<a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *writer, const <a class="el" href="structDBusString.html">DBusString</a> *contained_type, int contained_type_start, <a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *sub)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Append to an existing array.  <a href="#gcc2b4c348f93898f6269feb0bf055617"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gcbe7eddf4f9c19da91b742087fcc111a">_dbus_type_writer_unrecurse</a> (<a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *writer, <a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *sub)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Closes a container created by <a class="el" href="group__DBusMarshal.html#g4c0a1036e59dac270141052d951baff2">_dbus_type_writer_recurse()</a> and writes any additional information to the values block.  <a href="#gcbe7eddf4f9c19da91b742087fcc111a"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g0103b0214766b0ff1ca05bcc7f1e631b">_dbus_type_writer_write_basic</a> (<a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *writer, int type, const void *value)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Writes out a basic type.  <a href="#g0103b0214766b0ff1ca05bcc7f1e631b"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gcf99495cbed7462992b6a231563b4528">_dbus_type_writer_write_fixed_multi</a> (<a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *writer, int element_type, const void *value, int n_elements)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Writes a block of fixed-length basic values, i.e.  <a href="#gcf99495cbed7462992b6a231563b4528"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g004da084963a3a74589b28611b9d8398">_dbus_type_writer_write_reader_partial</a> (<a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *writer, <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *reader, const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *start_after, int start_after_new_pos, int start_after_new_len, <a class="el" href="structDBusList.html">DBusList</a> **fixups)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Iterate through all values in the given reader, writing a copy of each value to the writer.  <a href="#g004da084963a3a74589b28611b9d8398"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g4905750705d220efe9dfc71f49bedc11">_dbus_type_writer_write_reader</a> (<a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *writer, <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *reader)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Iterate through all values in the given reader, writing a copy of each value to the writer.  <a href="#g4905750705d220efe9dfc71f49bedc11"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g44efb6d70d7f68fc7dd8523a303dfdb2">_dbus_type_writer_set_enabled</a> (<a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *writer, <a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> enabled)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If disabled, a writer can still be iterated forward and recursed/unrecursed but won't write any values.  <a href="#g44efb6d70d7f68fc7dd8523a303dfdb2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusMarshal.html#g0c4521d30d6650a33673a4d7f9cc007c">DBusValidity</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g42e50826b5cf62921728432a8e35292c">_dbus_validate_signature_with_reason</a> (const <a class="el" href="structDBusString.html">DBusString</a> *type_str, int type_pos, int len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Verifies that the range of type_str from type_pos to type_end is a valid signature.  <a href="#g42e50826b5cf62921728432a8e35292c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusMarshal.html#g0c4521d30d6650a33673a4d7f9cc007c">DBusValidity</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#ge997884ec8091aacb5492c2b5a7eaef9">_dbus_validate_body_with_reason</a> (const <a class="el" href="structDBusString.html">DBusString</a> *expected_signature, int expected_signature_start, int byte_order, int *bytes_remaining, const <a class="el" href="structDBusString.html">DBusString</a> *value_str, int value_pos, int len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Verifies that the range of value_str from value_pos to value_end is a legitimate value of type expected_signature.  <a href="#ge997884ec8091aacb5492c2b5a7eaef9"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g616ba4a0280b10222930aedadb7ea8d9">_dbus_validate_path</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int start, int len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks that the given range of the string is a valid object path name in the D-Bus protocol.  <a href="#g616ba4a0280b10222930aedadb7ea8d9"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g0ad919783f887a9b6f428e262beaeed9">_dbus_validate_interface</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int start, int len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks that the given range of the string is a valid interface name in the D-Bus protocol.  <a href="#g0ad919783f887a9b6f428e262beaeed9"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gf647272768029cb23a4e0d3f493587da">_dbus_validate_member</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int start, int len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks that the given range of the string is a valid member name in the D-Bus protocol.  <a href="#gf647272768029cb23a4e0d3f493587da"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g6d8075f3b60e2e71aad061aa44b120fe">_dbus_validate_error_name</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int start, int len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks that the given range of the string is a valid error name in the D-Bus protocol.  <a href="#g6d8075f3b60e2e71aad061aa44b120fe"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gab91a04fa2a96b8ce8843beae7327cd0">_dbus_validate_bus_name</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int start, int len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks that the given range of the string is a valid bus name in the D-Bus protocol.  <a href="#gab91a04fa2a96b8ce8843beae7327cd0"></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>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g8d7aa58f6484d5d24f275dd65f101676">_dbus_validate_signature</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int start, int len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks that the given range of the string is a valid message type signature in the D-Bus protocol.  <a href="#g8d7aa58f6484d5d24f275dd65f101676"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gde9e7fb2887cc84ac240e81ae6ce1e0b"></a><!-- doxytag: member="DBusMarshal::DEFINE_DBUS_NAME_CHECK" ref="gde9e7fb2887cc84ac240e81ae6ce1e0b" args="(path)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gde9e7fb2887cc84ac240e81ae6ce1e0b">DEFINE_DBUS_NAME_CHECK</a> (path)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">define _dbus_check_is_valid_path() <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4e31d5ee09530399e250f22dfe7c50ca"></a><!-- doxytag: member="DBusMarshal::DEFINE_DBUS_NAME_CHECK" ref="g4e31d5ee09530399e250f22dfe7c50ca" args="(interface)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g4e31d5ee09530399e250f22dfe7c50ca">DEFINE_DBUS_NAME_CHECK</a> (interface)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">define _dbus_check_is_valid_interface() <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g05331b6e706c8fe93c51e1a89f10cd38"></a><!-- doxytag: member="DBusMarshal::DEFINE_DBUS_NAME_CHECK" ref="g05331b6e706c8fe93c51e1a89f10cd38" args="(member)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g05331b6e706c8fe93c51e1a89f10cd38">DEFINE_DBUS_NAME_CHECK</a> (member)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">define _dbus_check_is_valid_member() <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g7a5f8e9fd6aa43b06ce1aaea73620731"></a><!-- doxytag: member="DBusMarshal::DEFINE_DBUS_NAME_CHECK" ref="g7a5f8e9fd6aa43b06ce1aaea73620731" args="(error_name)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g7a5f8e9fd6aa43b06ce1aaea73620731">DEFINE_DBUS_NAME_CHECK</a> (error_name)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">define _dbus_check_is_valid_error_name() <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gbb12405cd5b9873356833c38a29f1503"></a><!-- doxytag: member="DBusMarshal::DEFINE_DBUS_NAME_CHECK" ref="gbb12405cd5b9873356833c38a29f1503" args="(bus_name)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gbb12405cd5b9873356833c38a29f1503">DEFINE_DBUS_NAME_CHECK</a> (bus_name)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">define _dbus_check_is_valid_bus_name() <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g5f3f505a01557250dfc157adb7328863"></a><!-- doxytag: member="DBusMarshal::DEFINE_DBUS_NAME_CHECK" ref="g5f3f505a01557250dfc157adb7328863" args="(signature)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g5f3f505a01557250dfc157adb7328863">DEFINE_DBUS_NAME_CHECK</a> (signature)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">define _dbus_check_is_valid_signature() <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gfc52be1357121d1ba57d2b381ce3bd33"></a><!-- doxytag: member="DBusMarshal::DECLARE_DBUS_NAME_CHECK" ref="gfc52be1357121d1ba57d2b381ce3bd33" args="(path)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gfc52be1357121d1ba57d2b381ce3bd33">DECLARE_DBUS_NAME_CHECK</a> (path)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">defines _dbus_check_is_valid_path() <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g540ccb97245861b105db0066245957be"></a><!-- doxytag: member="DBusMarshal::DECLARE_DBUS_NAME_CHECK" ref="g540ccb97245861b105db0066245957be" args="(interface)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g540ccb97245861b105db0066245957be">DECLARE_DBUS_NAME_CHECK</a> (interface)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">defines _dbus_check_is_valid_interface() <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gbc341dacc35d8243ed6350646bf8e685"></a><!-- doxytag: member="DBusMarshal::DECLARE_DBUS_NAME_CHECK" ref="gbc341dacc35d8243ed6350646bf8e685" args="(member)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gbc341dacc35d8243ed6350646bf8e685">DECLARE_DBUS_NAME_CHECK</a> (member)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">defines _dbus_check_is_valid_member() <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc396456d8607c59950426c253f7f2b06"></a><!-- doxytag: member="DBusMarshal::DECLARE_DBUS_NAME_CHECK" ref="gc396456d8607c59950426c253f7f2b06" args="(error_name)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#gc396456d8607c59950426c253f7f2b06">DECLARE_DBUS_NAME_CHECK</a> (error_name)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">defines _dbus_check_is_valid_error_name() <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1389b299c4eeeb226d819c0c97d51e5b"></a><!-- doxytag: member="DBusMarshal::DECLARE_DBUS_NAME_CHECK" ref="g1389b299c4eeeb226d819c0c97d51e5b" args="(bus_name)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g1389b299c4eeeb226d819c0c97d51e5b">DECLARE_DBUS_NAME_CHECK</a> (bus_name)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">defines _dbus_check_is_valid_bus_name() <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g0b23332725bff9dfa7cec49603cfb149"></a><!-- doxytag: member="DBusMarshal::DECLARE_DBUS_NAME_CHECK" ref="g0b23332725bff9dfa7cec49603cfb149" args="(signature)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusMarshal.html#g0b23332725bff9dfa7cec49603cfb149">DECLARE_DBUS_NAME_CHECK</a> (signature)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">defines _dbus_check_is_valid_signature() <br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
functions to marshal/unmarshal data from the wire 
<p>
Types and functions related to converting primitive data types from wire format to native machine format, and vice versa.<p>
A signature is just a string with multiple types one after the other. for example a type is "i" or "(ii)", a signature is "i(ii)" where i is int and (ii) is struct { int; int; } <hr><h2>Define Documentation</h2>
<a class="anchor" name="gb17853bba6b5508dc2d1eddad7e40946"></a><!-- doxytag: member="dbus-marshal-validate.h::DECLARE_DBUS_NAME_CHECK" ref="gb17853bba6b5508dc2d1eddad7e40946" args="(what)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DECLARE_DBUS_NAME_CHECK          </td>
          <td>(</td>
          <td class="paramtype">what&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;<a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_check_is_valid_##what (const char *name)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
A name check is used in _dbus_return_if_fail(), it's not suitable for validating untrusted data. 
<p>
use _dbus_validate_whatever for that. 
<p>
Definition at line <a class="el" href="dbus-marshal-validate_8h-source.html#l00166">166</a> of file <a class="el" href="dbus-marshal-validate_8h-source.html">dbus-marshal-validate.h</a>.
</div>
</div><p>
<a class="anchor" name="g2d30023893c9483413f63d2b8d4e1fb9"></a><!-- doxytag: member="dbus-marshal-validate.h::DEFINE_DBUS_NAME_CHECK" ref="g2d30023893c9483413f63d2b8d4e1fb9" args="(what)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DEFINE_DBUS_NAME_CHECK          </td>
          <td>(</td>
          <td class="paramtype">what&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>                                                             \
_dbus_check_is_valid_##what (<span class="keyword">const</span> <span class="keywordtype">char</span> *name)                          \
{                                                                       \
  <a class="code" href="structDBusString.html">DBusString</a> str;                                                       \
                                                                        \
  <span class="keywordflow">if</span> (name == <a class="code" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)                                                     \
    <span class="keywordflow">return</span> <a class="code" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>;                                                       \
                                                                        \
  <a class="code" href="group__DBusString.html#g374640ddfa2f0b27a8356e2379ba8043">_dbus_string_init_const</a> (&amp;str, name);                                 \
  <span class="keywordflow">return</span> _dbus_validate_##what (&amp;str, 0,                                \
                                _dbus_string_get_length (&amp;str));        \
}
</pre></div>Define a name check to be used in _dbus_return_if_fail() statements. 
<p>

<p>
Definition at line <a class="el" href="dbus-marshal-validate_8h-source.html#l00171">171</a> of file <a class="el" href="dbus-marshal-validate_8h-source.html">dbus-marshal-validate.h</a>.
</div>
</div><p>
<a class="anchor" name="g225bd010fa638c822271047157a880f2"></a><!-- doxytag: member="dbus-marshal-validate.c::VALID_BUS_NAME_CHARACTER" ref="g225bd010fa638c822271047157a880f2" args="(c)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define VALID_BUS_NAME_CHARACTER          </td>
          <td>(</td>
          <td class="paramtype">c&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment">( ((c) &gt;= <span class="charliteral">'0'</span> &amp;&amp; (c) &lt;= <span class="charliteral">'9'</span>) ||               \
    ((c) &gt;= <span class="charliteral">'A'</span> &amp;&amp; (c) &lt;= <span class="charliteral">'Z'</span>) ||               \
    ((c) &gt;= <span class="charliteral">'a'</span> &amp;&amp; (c) &lt;= <span class="charliteral">'z'</span>) ||               \
    ((c) == <span class="charliteral">'_'</span>) || ((c) == <span class="charliteral">'-'</span>))
</pre></div>Determine wether the given character is valid as a second or later character in a bus name. 
<p>

<p>
Definition at line <a class="el" href="dbus-marshal-validate_8c-source.html#l00935">935</a> of file <a class="el" href="dbus-marshal-validate_8c-source.html">dbus-marshal-validate.c</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-validate_8c-source.html#l00955">_dbus_validate_bus_name()</a>.
</div>
</div><p>
<a class="anchor" name="g1ec58a1d7a35131dd81c6eb99b9a2950"></a><!-- doxytag: member="dbus-marshal-validate.c::VALID_INITIAL_BUS_NAME_CHARACTER" ref="g1ec58a1d7a35131dd81c6eb99b9a2950" args="(c)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define VALID_INITIAL_BUS_NAME_CHARACTER          </td>
          <td>(</td>
          <td class="paramtype">c&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment">( ((c) &gt;= <span class="charliteral">'A'</span> &amp;&amp; (c) &lt;= <span class="charliteral">'Z'</span>) ||               \
    ((c) &gt;= <span class="charliteral">'a'</span> &amp;&amp; (c) &lt;= <span class="charliteral">'z'</span>) ||               \
    ((c) == <span class="charliteral">'_'</span>) || ((c) == <span class="charliteral">'-'</span>))
</pre></div>Determine wether the given character is valid as the first character in a bus name. 
<p>

<p>
Definition at line <a class="el" href="dbus-marshal-validate_8c-source.html#l00926">926</a> of file <a class="el" href="dbus-marshal-validate_8c-source.html">dbus-marshal-validate.c</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-validate_8c-source.html#l00955">_dbus_validate_bus_name()</a>.
</div>
</div><p>
<a class="anchor" name="g8eb3b26eec8ebfeef410caa4acc9570d"></a><!-- doxytag: member="dbus-marshal-validate.c::VALID_INITIAL_NAME_CHARACTER" ref="g8eb3b26eec8ebfeef410caa4acc9570d" args="(c)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define VALID_INITIAL_NAME_CHARACTER          </td>
          <td>(</td>
          <td class="paramtype">c&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment">( ((c) &gt;= <span class="charliteral">'A'</span> &amp;&amp; (c) &lt;= <span class="charliteral">'Z'</span>) ||               \
    ((c) &gt;= <span class="charliteral">'a'</span> &amp;&amp; (c) &lt;= <span class="charliteral">'z'</span>) ||               \
    ((c) == <span class="charliteral">'_'</span>) )
</pre></div>Determine wether the given character is valid as the first character in a name. 
<p>

<p>
Definition at line <a class="el" href="dbus-marshal-validate_8c-source.html#l00680">680</a> of file <a class="el" href="dbus-marshal-validate_8c-source.html">dbus-marshal-validate.c</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-validate_8c-source.html#l00777">_dbus_validate_interface()</a>, and <a class="el" href="dbus-marshal-validate_8c-source.html#l00853">_dbus_validate_member()</a>.
</div>
</div><p>
<a class="anchor" name="g11d63128bf5c1b7e0164be7072c6c6c7"></a><!-- doxytag: member="dbus-marshal-validate.c::VALID_NAME_CHARACTER" ref="g11d63128bf5c1b7e0164be7072c6c6c7" args="(c)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define VALID_NAME_CHARACTER          </td>
          <td>(</td>
          <td class="paramtype">c&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment">( ((c) &gt;= <span class="charliteral">'0'</span> &amp;&amp; (c) &lt;= <span class="charliteral">'9'</span>) ||               \
    ((c) &gt;= <span class="charliteral">'A'</span> &amp;&amp; (c) &lt;= <span class="charliteral">'Z'</span>) ||               \
    ((c) &gt;= <span class="charliteral">'a'</span> &amp;&amp; (c) &lt;= <span class="charliteral">'z'</span>) ||               \
    ((c) == <span class="charliteral">'_'</span>) )
</pre></div>Determine wether the given character is valid as a second or later character in a name. 
<p>

<p>
Definition at line <a class="el" href="dbus-marshal-validate_8c-source.html#l00689">689</a> of file <a class="el" href="dbus-marshal-validate_8c-source.html">dbus-marshal-validate.c</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-validate_8c-source.html#l00777">_dbus_validate_interface()</a>, <a class="el" href="dbus-marshal-validate_8c-source.html#l00853">_dbus_validate_member()</a>, and <a class="el" href="dbus-marshal-validate_8c-source.html#l00712">_dbus_validate_path()</a>.
</div>
</div><p>
<hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="g0c4521d30d6650a33673a4d7f9cc007c"></a><!-- doxytag: member="dbus-marshal-validate.h::DBusValidity" ref="g0c4521d30d6650a33673a4d7f9cc007c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__DBusMarshal.html#g0c4521d30d6650a33673a4d7f9cc007c">DBusValidity</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This is primarily used in unit testing, so we can verify that each invalid message is invalid for the expected reasons. 
<p>
Thus we really want a distinct enum value for every codepath leaving the validator functions. Enum values are specified manually for ease of debugging (so you can see the enum value given a printf) <dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="gg0c4521d30d6650a33673a4d7f9cc007c08cf1e84457c1f41acaf082de2060a65"></a><!-- doxytag: member="DBUS_VALIDITY_UNKNOWN_OOM_ERROR" ref="gg0c4521d30d6650a33673a4d7f9cc007c08cf1e84457c1f41acaf082de2060a65" args="" -->DBUS_VALIDITY_UNKNOWN_OOM_ERROR</em>&nbsp;</td><td>
can't determine validity due to OOM </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg0c4521d30d6650a33673a4d7f9cc007ce68ac5067fe94cdcfb35e115f36298c8"></a><!-- doxytag: member="DBUS_VALID" ref="gg0c4521d30d6650a33673a4d7f9cc007ce68ac5067fe94cdcfb35e115f36298c8" args="" -->DBUS_VALID</em>&nbsp;</td><td>
the data is valid </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg0c4521d30d6650a33673a4d7f9cc007c10bc3fdc9ca42108aa5a7e091f6aae52"></a><!-- doxytag: member="DBUS_INVALID_TOO_MUCH_DATA" ref="gg0c4521d30d6650a33673a4d7f9cc007c10bc3fdc9ca42108aa5a7e091f6aae52" args="" -->DBUS_INVALID_TOO_MUCH_DATA</em>&nbsp;</td><td>
trailing junk makes it invalid </td></tr>
</table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-validate_8h-source.html#l00055">55</a> of file <a class="el" href="dbus-marshal-validate_8h-source.html">dbus-marshal-validate.h</a>.
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g5866a0fd058aed3396402d0456144fd2"></a><!-- doxytag: member="dbus-marshal-basic.c::_dbus_first_type_in_signature" ref="g5866a0fd058aed3396402d0456144fd2" args="(const DBusString *str, int pos)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int _dbus_first_type_in_signature           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>pos</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the first type in the signature. 
<p>
The difference between this and just getting the first byte of the signature is that you won't get DBUS_STRUCT_BEGIN_CHAR, you'll get DBUS_TYPE_STRUCT instead.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>string containing signature </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pos</em>&nbsp;</td><td>where the signature starts </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the first type in the signature </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-basic_8c-source.html#l01458">1458</a> of file <a class="el" href="dbus-marshal-basic_8c-source.html">dbus-marshal-basic.c</a>.
<p>
Referenced by <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#l00908">_dbus_type_reader_read_fixed_multi()</a>, and <a class="el" href="dbus-marshal-recursive_8c-source.html#l00973">_dbus_type_reader_recurse()</a>.
</div>
</div><p>
<a class="anchor" name="g61cc8d9c4e4217be654455d8eb45544c"></a><!-- doxytag: member="dbus-marshal-basic.c::_dbus_first_type_in_signature_c_str" ref="g61cc8d9c4e4217be654455d8eb45544c" args="(const char *str, int pos)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int _dbus_first_type_in_signature_c_str           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>pos</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Similar to <a class="el" href="group__DBusMarshal.html#g5866a0fd058aed3396402d0456144fd2">_dbus_first_type_in_signature</a>, but operates on a C string buffer. 
<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>&nbsp;</td><td>a C string buffer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pos</em>&nbsp;</td><td>where the signature starts </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the first type in the signature </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-basic_8c-source.html#l01473">1473</a> of file <a class="el" href="dbus-marshal-basic_8c-source.html">dbus-marshal-basic.c</a>.
<p>
Referenced by <a class="el" href="dbus-signature_8c-source.html#l00090">dbus_signature_iter_get_current_type()</a>, and <a class="el" href="dbus-signature_8c-source.html#l00144">dbus_signature_iter_get_element_type()</a>.
</div>
</div><p>
<a class="anchor" name="ge5277c7b7bfb7b85e421baceac0398c8"></a><!-- doxytag: member="dbus-marshal-header.c::_dbus_header_byteswap" ref="ge5277c7b7bfb7b85e421baceac0398c8" args="(DBusHeader *header, int new_order)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_header_byteswap           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusHeader.html">DBusHeader</a> *&nbsp;</td>
          <td class="paramname"> <em>header</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>new_order</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Swaps the header into the given order if required. 
<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>header</em>&nbsp;</td><td>the header </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>new_order</em>&nbsp;</td><td>the new byte order </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-header_8c-source.html#l01462">1462</a> of file <a class="el" href="dbus-marshal-header_8c-source.html">dbus-marshal-header.c</a>.
<p>
References <a class="el" href="dbus-marshal-byteswap_8c-source.html#l00220">_dbus_marshal_byteswap()</a>, <a class="el" href="dbus-marshal-header_8h-source.html#l00064">DBusHeader::byte_order</a>, and <a class="el" href="dbus-marshal-header_8h-source.html#l00054">DBusHeader::data</a>.
</div>
</div><p>
<a class="anchor" name="g0d5aad82f8bf5a314dcf3f70930e254b"></a><!-- doxytag: member="dbus-marshal-header.c::_dbus_header_copy" ref="g0d5aad82f8bf5a314dcf3f70930e254b" args="(const DBusHeader *header, DBusHeader *dest)" -->
<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_header_copy           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusHeader.html">DBusHeader</a> *&nbsp;</td>
          <td class="paramname"> <em>header</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusHeader.html">DBusHeader</a> *&nbsp;</td>
          <td class="paramname"> <em>dest</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initializes dest with a copy of the given header. 
<p>
Resets the message serial to 0 on the copy.<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>header</em>&nbsp;</td><td>header to copy </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>destination for copy </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-header_8c-source.html#l00477">477</a> of file <a class="el" href="dbus-marshal-header_8c-source.html">dbus-marshal-header.c</a>.
<p>
References <a class="el" href="dbus-marshal-header_8c-source.html#l00386">_dbus_header_set_serial()</a>, <a class="el" href="dbus-string_8c-source.html#l01472">_dbus_string_copy()</a>, <a class="el" href="dbus-string_8c-source.html#l00262">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c-source.html#l00131">_dbus_string_init_preallocated()</a>, <a class="el" href="dbus-marshal-header_8h-source.html#l00054">DBusHeader::data</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l01311">dbus_message_copy()</a>.
</div>
</div><p>
<a class="anchor" name="gcabc7d2698ec08845d1af23f3409a7a9"></a><!-- doxytag: member="dbus-marshal-header.c::_dbus_header_create" ref="gcabc7d2698ec08845d1af23f3409a7a9" args="(DBusHeader *header, int message_type, const char *destination, const char *path, const char *interface, const char *member, const char *error_name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_header_create           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusHeader.html">DBusHeader</a> *&nbsp;</td>
          <td class="paramname"> <em>header</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>message_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>destination</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>interface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>member</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>error_name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Fills in the primary fields of the header, so the header is ready for use. 
<p>
<a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> may be specified for some or all of the fields to avoid adding those fields. Some combinations of fields don't make sense, and passing them in will trigger an assertion failure.<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>header</em>&nbsp;</td><td>the header </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>message_type</em>&nbsp;</td><td>the message type </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>destination</em>&nbsp;</td><td>destination field or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>path</em>&nbsp;</td><td>path field or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>interface</em>&nbsp;</td><td>interface field or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>member</em>&nbsp;</td><td>member field or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error_name</em>&nbsp;</td><td>error name or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-header_8c-source.html#l00514">514</a> of file <a class="el" href="dbus-marshal-header_8c-source.html">dbus-marshal-header.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string_8c-source.html#l01382">_dbus_string_delete()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l01566">_dbus_type_writer_init_values_only()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l02091">_dbus_type_writer_recurse()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l02161">_dbus_type_writer_unrecurse()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l02293">_dbus_type_writer_write_basic()</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00071">DBusTypeWriter::byte_order</a>, <a class="el" href="dbus-marshal-header_8h-source.html#l00054">DBusHeader::data</a>, <a class="el" href="dbus-protocol_8h-source.html#l00269">DBUS_HEADER_FIELD_DESTINATION</a>, <a class="el" href="dbus-protocol_8h-source.html#l00261">DBUS_HEADER_FIELD_ERROR_NAME</a>, <a class="el" href="dbus-protocol_8h-source.html#l00255">DBUS_HEADER_FIELD_INTERFACE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00257">DBUS_HEADER_FIELD_MEMBER</a>, <a class="el" href="dbus-protocol_8h-source.html#l00251">DBUS_HEADER_FIELD_PATH</a>, <a class="el" href="dbus-protocol_8h-source.html#l00057">DBUS_MAJOR_PROTOCOL_VERSION</a>, <a class="el" href="dbus-protocol_8h-source.html#l00228">DBUS_MESSAGE_TYPE_SIGNAL</a>, <a class="el" href="dbus-protocol_8h-source.html#l00116">DBUS_TYPE_ARRAY</a>, <a class="el" href="dbus-protocol_8h-source.html#l00066">DBUS_TYPE_BYTE</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#l00102">DBUS_TYPE_STRING</a>, <a class="el" href="dbus-protocol_8h-source.html#l00086">DBUS_TYPE_UINT32</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00046">FIELDS_ARRAY_SIGNATURE_OFFSET</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00121">HEADER_END_BEFORE_PADDING</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#l01020">dbus_message_new()</a>, <a class="el" href="dbus-message_8c-source.html#l01197">dbus_message_new_error()</a>, <a class="el" href="dbus-message_8c-source.html#l01063">dbus_message_new_method_call()</a>, <a class="el" href="dbus-message_8c-source.html#l01102">dbus_message_new_method_return()</a>, and <a class="el" href="dbus-message_8c-source.html#l01152">dbus_message_new_signal()</a>.
</div>
</div><p>
<a class="anchor" name="g7814248f4d74d109d29dc00487cd9b0c"></a><!-- doxytag: member="dbus-marshal-header.c::_dbus_header_delete_field" ref="g7814248f4d74d109d29dc00487cd9b0c" args="(DBusHeader *header, int field)" -->
<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_header_delete_field           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusHeader.html">DBusHeader</a> *&nbsp;</td>
          <td class="paramname"> <em>header</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>field</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Deletes a field, if it exists. 
<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>header</em>&nbsp;</td><td>the header </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>field</em>&nbsp;</td><td>the field to delete </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-marshal-header_8c-source.html#l01382">1382</a> of file <a class="el" href="dbus-marshal-header_8c-source.html">dbus-marshal-header.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l01402">_dbus_type_reader_delete()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="gb90a814a27aeeace7e02c4ed130539cf"></a><!-- doxytag: member="dbus-marshal-header.c::_dbus_header_free" ref="gb90a814a27aeeace7e02c4ed130539cf" args="(DBusHeader *header)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_header_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusHeader.html">DBusHeader</a> *&nbsp;</td>
          <td class="paramname"> <em>header</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Frees a header. 
<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>header</em>&nbsp;</td><td>the header </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-header_8c-source.html#l00463">463</a> of file <a class="el" href="dbus-marshal-header_8c-source.html">dbus-marshal-header.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l00262">_dbus_string_free()</a>, and <a class="el" href="dbus-marshal-header_8h-source.html#l00054">DBusHeader::data</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l01311">dbus_message_copy()</a>.
</div>
</div><p>
<a class="anchor" name="g499973a18dcb17d854eaf14101a66736"></a><!-- doxytag: member="dbus-marshal-header.c::_dbus_header_get_field_basic" ref="g499973a18dcb17d854eaf14101a66736" args="(DBusHeader *header, int field, int type, void *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_header_get_field_basic           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusHeader.html">DBusHeader</a> *&nbsp;</td>
          <td class="paramname"> <em>header</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>field</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the value of a field with basic type. 
<p>
If the field doesn't exist, returns <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, otherwise returns <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>header</em>&nbsp;</td><td>the header </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>field</em>&nbsp;</td><td>the field to get </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>the type of the value </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>the value as for <a class="el" href="group__DBusMarshal.html#gb331e099fa8cf3d94cf33ad7b20c81ae">_dbus_marshal_read_basic()</a> </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if the field doesn't exist </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-header_8c-source.html#l01317">1317</a> of file <a class="el" href="dbus-marshal-header_8c-source.html">dbus-marshal-header.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l00503">_dbus_marshal_read_basic()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00247">DBUS_HEADER_FIELD_INVALID</a>, <a class="el" href="dbus-protocol_8h-source.html#l00286">DBUS_HEADER_FIELD_LAST</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00088">EXPECTED_TYPE_OF_FIELD</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#l02909">dbus_message_get_destination()</a>, <a class="el" href="dbus-message_8c-source.html#l02856">dbus_message_get_error_name()</a>, <a class="el" href="dbus-message_8c-source.html#l02686">dbus_message_get_interface()</a>, <a class="el" href="dbus-message_8c-source.html#l02772">dbus_message_get_member()</a>, <a class="el" href="dbus-message_8c-source.html#l02555">dbus_message_get_path()</a>, <a class="el" href="dbus-message_8c-source.html#l00912">dbus_message_get_reply_serial()</a>, and <a class="el" href="dbus-message_8c-source.html#l02969">dbus_message_get_sender()</a>.
</div>
</div><p>
<a class="anchor" name="gf4661ba8e7067f349ba03c9f5776bbb0"></a><!-- doxytag: member="dbus-marshal-header.c::_dbus_header_get_field_raw" ref="gf4661ba8e7067f349ba03c9f5776bbb0" args="(DBusHeader *header, int field, const DBusString **str, int *pos)" -->
<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_header_get_field_raw           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusHeader.html">DBusHeader</a> *&nbsp;</td>
          <td class="paramname"> <em>header</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>field</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> **&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>pos</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the raw marshaled data for a field. 
<p>
If the field doesn't exist, returns <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, otherwise returns <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>. Returns the start of the marshaled data, i.e. usually the byte where the length starts (for strings and arrays) or for basic types just the value itself.<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>header</em>&nbsp;</td><td>the header </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>field</em>&nbsp;</td><td>the field to get </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>return location for the data string </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pos</em>&nbsp;</td><td>return location for start of field value </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if the field doesn't exist </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-header_8c-source.html#l01358">1358</a> of file <a class="el" href="dbus-marshal-header_8c-source.html">dbus-marshal-header.c</a>.
<p>
References <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g56619efed3088554b8760edd246b4157"></a><!-- doxytag: member="dbus-marshal-header.c::_dbus_header_get_flag" ref="g56619efed3088554b8760edd246b4157" args="(DBusHeader *header, dbus_uint32_t flag)" -->
<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_header_get_flag           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusHeader.html">DBusHeader</a> *&nbsp;</td>
          <td class="paramname"> <em>header</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>&nbsp;</td>
          <td class="paramname"> <em>flag</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets a message flag bit, returning TRUE if the bit is set. 
<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>header</em>&nbsp;</td><td>the header </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flag</em>&nbsp;</td><td>the message flag to get </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the flag is set </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-header_8c-source.html#l01445">1445</a> of file <a class="el" href="dbus-marshal-header_8c-source.html">dbus-marshal-header.c</a>.
<p>
References <a class="el" href="dbus-marshal-header_8h-source.html#l00054">DBusHeader::data</a>, and <a class="el" href="dbus-marshal-header_8c-source.html#l00056">FLAGS_OFFSET</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l02504">dbus_message_get_auto_start()</a>, and <a class="el" href="dbus-message_8c-source.html#l02462">dbus_message_get_no_reply()</a>.
</div>
</div><p>
<a class="anchor" name="g4427247494fc5c988498c5a87d42092d"></a><!-- doxytag: member="dbus-marshal-header.c::_dbus_header_get_message_type" ref="g4427247494fc5c988498c5a87d42092d" args="(DBusHeader *header)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int _dbus_header_get_message_type           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusHeader.html">DBusHeader</a> *&nbsp;</td>
          <td class="paramname"> <em>header</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the type of 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>header</em>&nbsp;</td><td>the header </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the type </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-header_8c-source.html#l00368">368</a> of file <a class="el" href="dbus-marshal-header_8c-source.html">dbus-marshal-header.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-marshal-header_8h-source.html#l00054">DBusHeader::data</a>, <a class="el" href="dbus-protocol_8h-source.html#l00220">DBUS_MESSAGE_TYPE_INVALID</a>, and <a class="el" href="dbus-marshal-header_8c-source.html#l00054">TYPE_OFFSET</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l01417">dbus_message_get_type()</a>.
</div>
</div><p>
<a class="anchor" name="g7ec7222423db42935aae4a24499ee0fb"></a><!-- doxytag: member="dbus-marshal-header.c::_dbus_header_get_serial" ref="g7ec7222423db42935aae4a24499ee0fb" args="(DBusHeader *header)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#gf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a> _dbus_header_get_serial           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusHeader.html">DBusHeader</a> *&nbsp;</td>
          <td class="paramname"> <em>header</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
See <a class="el" href="group__DBusMessage.html#g89b6eb41aed10c6d5f4a3bc0fe018a6b">dbus_message_get_serial()</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>header</em>&nbsp;</td><td>the header </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the client serial </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-header_8c-source.html#l00409">409</a> of file <a class="el" href="dbus-marshal-header_8c-source.html">dbus-marshal-header.c</a>.
<p>
References <a class="el" href="dbus-marshal-basic_8c-source.html#l00465">_dbus_marshal_read_uint32()</a>, <a class="el" href="dbus-marshal-header_8h-source.html#l00064">DBusHeader::byte_order</a>, <a class="el" href="dbus-marshal-header_8h-source.html#l00054">DBusHeader::data</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-marshal-header_8c-source.html#l00062">SERIAL_OFFSET</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-header_8c-source.html#l00386">_dbus_header_set_serial()</a>, and <a class="el" href="dbus-message_8c-source.html#l00876">dbus_message_get_serial()</a>.
</div>
</div><p>
<a class="anchor" name="g674d74081baf6e7531e0d4a286724210"></a><!-- doxytag: member="dbus-marshal-header.c::_dbus_header_have_message_untrusted" ref="g674d74081baf6e7531e0d4a286724210" args="(int max_message_length, DBusValidity *validity, int *byte_order, int *fields_array_len, int *header_len, int *body_len, const DBusString *str, int start, int len)" -->
<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_header_have_message_untrusted           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>max_message_length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__DBusMarshal.html#g0c4521d30d6650a33673a4d7f9cc007c">DBusValidity</a> *&nbsp;</td>
          <td class="paramname"> <em>validity</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>byte_order</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>fields_array_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>header_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>body_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Given data long enough to contain the length of the message body and the fields array, check whether the data is long enough to contain the entire message (assuming the claimed lengths are accurate). 
<p>
Also checks that the lengths are in sanity parameters.<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>max_message_length</em>&nbsp;</td><td>maximum length of a valid message </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>validity</em>&nbsp;</td><td>return location for why the data is invalid if it is </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>byte_order</em>&nbsp;</td><td>return location for byte order </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fields_array_len</em>&nbsp;</td><td>return location for claimed fields array length </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>header_len</em>&nbsp;</td><td>return location for claimed header length </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>body_len</em>&nbsp;</td><td>return location for claimed body length </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>the data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>start</em>&nbsp;</td><td>start of data, 8-aligned </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>length of data </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the data is long enough for the claimed length, and the lengths were valid </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-header_8c-source.html#l00656">656</a> of file <a class="el" href="dbus-marshal-header_8c-source.html">dbus-marshal-header.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-internals_8h-source.html#l00207">_DBUS_INT32_MAX</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l00465">_dbus_marshal_read_uint32()</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00060">BODY_LENGTH_OFFSET</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00052">BYTE_ORDER_OFFSET</a>, <a class="el" href="dbus-protocol_8h-source.html#l00054">DBUS_BIG_ENDIAN</a>, <a class="el" href="dbus-protocol_8h-source.html#l00053">DBUS_LITTLE_ENDIAN</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-marshal-header_8c-source.html#l00064">FIELDS_ARRAY_LENGTH_OFFSET</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00066">FIRST_FIELD_OFFSET</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l03592">_dbus_message_loader_queue_messages()</a>.
</div>
</div><p>
<a class="anchor" name="gf939f7ccf175ff3056f76b7673b20ccb"></a><!-- doxytag: member="dbus-marshal-header.c::_dbus_header_init" ref="gf939f7ccf175ff3056f76b7673b20ccb" args="(DBusHeader *header, int byte_order)" -->
<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_header_init           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusHeader.html">DBusHeader</a> *&nbsp;</td>
          <td class="paramname"> <em>header</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>byte_order</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initializes a header, but doesn't prepare it for use; to make the header valid, you have to call <a class="el" href="group__DBusMarshal.html#gcabc7d2698ec08845d1af23f3409a7a9">_dbus_header_create()</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>header</em>&nbsp;</td><td>header to initialize </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>byte_order</em>&nbsp;</td><td>byte order of the header </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-header_8c-source.html#l00446">446</a> of file <a class="el" href="dbus-marshal-header_8c-source.html">dbus-marshal-header.c</a>.
<p>
References <a class="el" href="dbus-marshal-header_8c-source.html#l00426">_dbus_header_reinit()</a>, <a class="el" href="dbus-string_8c-source.html#l00131">_dbus_string_init_preallocated()</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>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g0c3a3f95d9a53b91a0cd0b260196685b"></a><!-- doxytag: member="dbus-marshal-header.c::_dbus_header_load" ref="g0c3a3f95d9a53b91a0cd0b260196685b" args="(DBusHeader *header, DBusValidationMode mode, DBusValidity *validity, int byte_order, int fields_array_len, int header_len, int body_len, const DBusString *str, int start, int len)" -->
<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_header_load           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusHeader.html">DBusHeader</a> *&nbsp;</td>
          <td class="paramname"> <em>header</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__DBusMarshal.html#gf9dce059725fa793c44b219460cbbe6d">DBusValidationMode</a>&nbsp;</td>
          <td class="paramname"> <em>mode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__DBusMarshal.html#g0c4521d30d6650a33673a4d7f9cc007c">DBusValidity</a> *&nbsp;</td>
          <td class="paramname"> <em>validity</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>byte_order</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>fields_array_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>header_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>body_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Creates a message header from potentially-untrusted data. 
<p>
The return value is <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if there was enough memory and the data was valid. If it returns <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, the header will be created. If it returns <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> and *validity == <a class="el" href="group__DBusMarshal.html#gg0c4521d30d6650a33673a4d7f9cc007c08cf1e84457c1f41acaf082de2060a65">DBUS_VALIDITY_UNKNOWN_OOM_ERROR</a>, then there wasn't enough memory. If it returns <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> and *validity != <a class="el" href="group__DBusMarshal.html#gg0c4521d30d6650a33673a4d7f9cc007c08cf1e84457c1f41acaf082de2060a65">DBUS_VALIDITY_UNKNOWN_OOM_ERROR</a> then the data was invalid.<p>
The byte_order, fields_array_len, and body_len args should be from <a class="el" href="group__DBusMarshal.html#g674d74081baf6e7531e0d4a286724210">_dbus_header_have_message_untrusted()</a>. Validation performed in <a class="el" href="group__DBusMarshal.html#g674d74081baf6e7531e0d4a286724210">_dbus_header_have_message_untrusted()</a> is assumed to have been already done.<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>header</em>&nbsp;</td><td>the header (must be initialized) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>mode</em>&nbsp;</td><td>whether to do validation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>validity</em>&nbsp;</td><td>return location for invalidity reason </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>byte_order</em>&nbsp;</td><td>byte order from header </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fields_array_len</em>&nbsp;</td><td>claimed length of fields array </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>body_len</em>&nbsp;</td><td>claimed length of body </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>header_len</em>&nbsp;</td><td>claimed length of header </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>a string </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>start</em>&nbsp;</td><td>start of header, 8-aligned </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>length of string to look at </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 or data was invalid, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> otherwise </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-header_8c-source.html#l00948">948</a> of file <a class="el" href="dbus-marshal-header_8c-source.html">dbus-marshal-header.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string_8c-source.html#l01567">_dbus_string_copy_len()</a>, <a class="el" href="dbus-string_8c-source.html#l00854">_dbus_string_set_length()</a>, <a class="el" href="dbus-string_8c-source.html#l02774">_dbus_string_validate_nul()</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#l00822">_dbus_type_reader_get_value_pos()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00717">_dbus_type_reader_init()</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#l00973">_dbus_type_reader_recurse()</a>, <a class="el" href="dbus-marshal-validate_8c-source.html#l00630">_dbus_validate_body_with_reason()</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00060">BODY_LENGTH_OFFSET</a>, <a class="el" href="dbus-marshal-header_8h-source.html#l00064">DBusHeader::byte_order</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00052">BYTE_ORDER_OFFSET</a>, <a class="el" href="dbus-marshal-header_8h-source.html#l00054">DBusHeader::data</a>, <a class="el" href="dbus-protocol_8h-source.html#l00247">DBUS_HEADER_FIELD_INVALID</a>, <a class="el" href="dbus-protocol_8h-source.html#l00286">DBUS_HEADER_FIELD_LAST</a>, <a class="el" href="dbus-protocol_8h-source.html#l00057">DBUS_MAJOR_PROTOCOL_VERSION</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#l00116">DBUS_TYPE_ARRAY</a>, <a class="el" href="dbus-protocol_8h-source.html#l00066">DBUS_TYPE_BYTE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00060">DBUS_TYPE_INVALID</a>, <a class="el" href="dbus-protocol_8h-source.html#l00132">DBUS_TYPE_STRUCT</a>, <a class="el" href="dbus-protocol_8h-source.html#l00086">DBUS_TYPE_UINT32</a>, <a class="el" href="dbus-protocol_8h-source.html#l00120">DBUS_TYPE_VARIANT</a>, <a class="el" href="group__DBusMarshal.html#gg0c4521d30d6650a33673a4d7f9cc007ce68ac5067fe94cdcfb35e115f36298c8">DBUS_VALID</a>, <a class="el" href="group__DBusMarshal.html#gg0c4521d30d6650a33673a4d7f9cc007c08cf1e84457c1f41acaf082de2060a65">DBUS_VALIDITY_UNKNOWN_OOM_ERROR</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-marshal-header_8h-source.html#l00059">DBusHeader::fields</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00064">FIELDS_ARRAY_LENGTH_OFFSET</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00066">FIRST_FIELD_OFFSET</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00056">FLAGS_OFFSET</a>, <a class="el" href="dbus-marshal-header_8h-source.html#l00063">DBusHeader::padding</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00062">SERIAL_OFFSET</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00054">TYPE_OFFSET</a>, <a class="el" href="dbus-marshal-header_8h-source.html#l00046">DBusHeaderField::value_pos</a>, and <a class="el" href="dbus-marshal-header_8c-source.html#l00058">VERSION_OFFSET</a>.
</div>
</div><p>
<a class="anchor" name="gcb9244bf214bcb53d851d2ce640b3931"></a><!-- doxytag: member="dbus-marshal-header.c::_dbus_header_reinit" ref="gcb9244bf214bcb53d851d2ce640b3931" args="(DBusHeader *header, int byte_order)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_header_reinit           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusHeader.html">DBusHeader</a> *&nbsp;</td>
          <td class="paramname"> <em>header</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>byte_order</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Re-initializes a header that was previously initialized and never freed. 
<p>
After this, to make the header valid you have to call <a class="el" href="group__DBusMarshal.html#gcabc7d2698ec08845d1af23f3409a7a9">_dbus_header_create()</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>header</em>&nbsp;</td><td>header to re-initialize </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>byte_order</em>&nbsp;</td><td>byte order of the header </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-header_8c-source.html#l00426">426</a> of file <a class="el" href="dbus-marshal-header_8c-source.html">dbus-marshal-header.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l00854">_dbus_string_set_length()</a>, <a class="el" href="dbus-marshal-header_8h-source.html#l00064">DBusHeader::byte_order</a>, <a class="el" href="dbus-marshal-header_8h-source.html#l00054">DBusHeader::data</a>, and <a class="el" href="dbus-marshal-header_8h-source.html#l00063">DBusHeader::padding</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-header_8c-source.html#l00446">_dbus_header_init()</a>.
</div>
</div><p>
<a class="anchor" name="g4349de00b7754a337526e36fda133464"></a><!-- doxytag: member="dbus-marshal-header.c::_dbus_header_set_field_basic" ref="g4349de00b7754a337526e36fda133464" args="(DBusHeader *header, int field, int type, const void *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_header_set_field_basic           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusHeader.html">DBusHeader</a> *&nbsp;</td>
          <td class="paramname"> <em>header</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>field</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the value of a field with basic type. 
<p>
If the value is a string value, it isn't allowed to be <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>. If the field doesn't exist, it will be created.<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>header</em>&nbsp;</td><td>the header </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>field</em>&nbsp;</td><td>the field to set </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>the type of the value </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>the value as for <a class="el" href="group__DBusMarshal.html#g854526bdf221a5e82b2e14581ac17d8f">_dbus_marshal_set_basic()</a> </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-marshal-header_8c-source.html#l01239">1239</a> of file <a class="el" href="dbus-marshal-header_8c-source.html">dbus-marshal-header.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-internals_8h-source.html#l00121">_dbus_assert_not_reached</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l02125">_dbus_type_writer_append_array()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l01566">_dbus_type_writer_init_values_only()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l02161">_dbus_type_writer_unrecurse()</a>, DBusTypeWriter::array, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00071">DBusTypeWriter::byte_order</a>, <a class="el" href="dbus-protocol_8h-source.html#l00286">DBUS_HEADER_FIELD_LAST</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00048">FIELDS_ARRAY_ELEMENT_SIGNATURE_OFFSET</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00064">FIELDS_ARRAY_LENGTH_OFFSET</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00046">FIELDS_ARRAY_SIGNATURE_OFFSET</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00066">FIRST_FIELD_OFFSET</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00121">HEADER_END_BEFORE_PADDING</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, <a class="el" href="structDBusTypeWriter.html#fe24080d2be45fb6033833a1a38d5d1a">DBusTypeWriter::u</a>, and <a class="el" href="dbus-marshal-recursive_8h-source.html#l00082">DBusTypeWriter::value_pos</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l00892">dbus_message_set_reply_serial()</a>.
</div>
</div><p>
<a class="anchor" name="gd92e0b1992cf96a4da642a4a54a5d26d"></a><!-- doxytag: member="dbus-marshal-header.c::_dbus_header_set_serial" ref="gd92e0b1992cf96a4da642a4a54a5d26d" args="(DBusHeader *header, dbus_uint32_t serial)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_header_set_serial           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusHeader.html">DBusHeader</a> *&nbsp;</td>
          <td class="paramname"> <em>header</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>&nbsp;</td>
          <td class="paramname"> <em>serial</em></td><td>&nbsp;</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 header. 
<p>
This can only be done once on a header.<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>header</em>&nbsp;</td><td>the header </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>serial</em>&nbsp;</td><td>the serial </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-header_8c-source.html#l00386">386</a> of file <a class="el" href="dbus-marshal-header_8c-source.html">dbus-marshal-header.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#l00409">_dbus_header_get_serial()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l00265">_dbus_marshal_set_uint32()</a>, and <a class="el" href="dbus-marshal-header_8c-source.html#l00062">SERIAL_OFFSET</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-header_8c-source.html#l00477">_dbus_header_copy()</a>, and <a class="el" href="dbus-message_8c-source.html#l00170">_dbus_message_set_serial()</a>.
</div>
</div><p>
<a class="anchor" name="gd2073f8f2f2ba3b710aa929dced34cc3"></a><!-- doxytag: member="dbus-marshal-header.c::_dbus_header_toggle_flag" ref="gd2073f8f2f2ba3b710aa929dced34cc3" args="(DBusHeader *header, dbus_uint32_t flag, dbus_bool_t value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_header_toggle_flag           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusHeader.html">DBusHeader</a> *&nbsp;</td>
          <td class="paramname"> <em>header</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>&nbsp;</td>
          <td class="paramname"> <em>flag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Toggles a message flag bit, turning on the bit if value = TRUE and flipping it off if value = FALSE. 
<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>header</em>&nbsp;</td><td>the header </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flag</em>&nbsp;</td><td>the message flag to toggle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>toggle on or off </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-header_8c-source.html#l01423">1423</a> of file <a class="el" href="dbus-marshal-header_8c-source.html">dbus-marshal-header.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l00457">_dbus_string_get_data_len()</a>, <a class="el" href="dbus-marshal-header_8h-source.html#l00054">DBusHeader::data</a>, and <a class="el" href="dbus-marshal-header_8c-source.html#l00056">FLAGS_OFFSET</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l02485">dbus_message_set_auto_start()</a>, and <a class="el" href="dbus-message_8c-source.html#l02443">dbus_message_set_no_reply()</a>.
</div>
</div><p>
<a class="anchor" name="g0cff04252f97f6a25552c368199897f5"></a><!-- doxytag: member="dbus-marshal-header.c::_dbus_header_update_lengths" ref="g0cff04252f97f6a25552c368199897f5" args="(DBusHeader *header, int body_len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_header_update_lengths           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusHeader.html">DBusHeader</a> *&nbsp;</td>
          <td class="paramname"> <em>header</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>body_len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Fills in the correct body length. 
<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>header</em>&nbsp;</td><td>the header </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>body_len</em>&nbsp;</td><td>the length of the body </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-header_8c-source.html#l01175">1175</a> of file <a class="el" href="dbus-marshal-header_8c-source.html">dbus-marshal-header.c</a>.
<p>
References <a class="el" href="dbus-marshal-basic_8c-source.html#l00265">_dbus_marshal_set_uint32()</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00060">BODY_LENGTH_OFFSET</a>, <a class="el" href="dbus-marshal-header_8h-source.html#l00064">DBusHeader::byte_order</a>, and <a class="el" href="dbus-marshal-header_8h-source.html#l00054">DBusHeader::data</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l00285">_dbus_message_lock()</a>.
</div>
</div><p>
<a class="anchor" name="g609a4b8c0b65096890766fda73a4c40f"></a><!-- doxytag: member="dbus-marshal-byteswap.c::_dbus_marshal_byteswap" ref="g609a4b8c0b65096890766fda73a4c40f" args="(const DBusString *signature, int signature_start, int old_byte_order, int new_byte_order, DBusString *value_str, int value_pos)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_marshal_byteswap           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>signature</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>signature_start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>old_byte_order</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>new_byte_order</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>value_str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>value_pos</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Byteswaps the marshaled data in the given value_str. 
<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>signature</em>&nbsp;</td><td>the types in the value_str </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>signature_start</em>&nbsp;</td><td>where in signature is the signature </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>old_byte_order</em>&nbsp;</td><td>the old byte order </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>new_byte_order</em>&nbsp;</td><td>the new byte order </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value_str</em>&nbsp;</td><td>the string containing the body </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value_pos</em>&nbsp;</td><td>where the values start </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-byteswap_8c-source.html#l00220">220</a> of file <a class="el" href="dbus-marshal-byteswap_8c-source.html">dbus-marshal-byteswap.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string_8c-source.html#l00457">_dbus_string_get_data_len()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00745">_dbus_type_reader_init_types_only()</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-marshal-header_8c-source.html#l01462">_dbus_header_byteswap()</a>.
</div>
</div><p>
<a class="anchor" name="gb331e099fa8cf3d94cf33ad7b20c81ae"></a><!-- doxytag: member="dbus-marshal-basic.c::_dbus_marshal_read_basic" ref="gb331e099fa8cf3d94cf33ad7b20c81ae" args="(const DBusString *str, int pos, int type, void *value, int byte_order, int *new_pos)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_marshal_read_basic           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>byte_order</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>new_pos</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Demarshals a basic-typed value. 
<p>
The "value" pointer is always the address of a variable of the basic type. So e.g. if the basic type is "double" then the pointer is a double*, and if it's "char*" then the pointer is a "char**".<p>
A value of type <a class="el" href="unionDBusBasicValue.html">DBusBasicValue</a> is guaranteed to be large enough to hold any of the types that may be returned, which is handy if you are trying to do things generically. For example you can pass a DBusBasicValue* in to this function, and then pass the same DBusBasicValue* in to _dbus_marshal_basic_type() in order to move a value from one place to another.<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>&nbsp;</td><td>the string containing the data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pos</em>&nbsp;</td><td>position in the string </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>type of value to demarshal </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>pointer to return value data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>byte_order</em>&nbsp;</td><td>the byte order </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>new_pos</em>&nbsp;</td><td>pointer to update with new position, or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-basic_8c-source.html#l00503">503</a> of file <a class="el" href="dbus-marshal-basic_8c-source.html">dbus-marshal-basic.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-internals_8h-source.html#l00121">_dbus_assert_not_reached</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l00465">_dbus_marshal_read_uint32()</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#l00266">_dbus_warn_check_failed()</a>, <a class="el" href="dbus-marshal-basic_8h-source.html#l00167">DBusBasicValue::byt</a>, <a class="el" href="dbus-protocol_8h-source.html#l00070">DBUS_TYPE_BOOLEAN</a>, <a class="el" href="dbus-protocol_8h-source.html#l00066">DBUS_TYPE_BYTE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00098">DBUS_TYPE_DOUBLE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00074">DBUS_TYPE_INT16</a>, <a class="el" href="dbus-protocol_8h-source.html#l00082">DBUS_TYPE_INT32</a>, <a class="el" href="dbus-protocol_8h-source.html#l00090">DBUS_TYPE_INT64</a>, <a class="el" href="dbus-signature_8c-source.html#l00306">dbus_type_is_basic()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00106">DBUS_TYPE_OBJECT_PATH</a>, <a class="el" href="dbus-protocol_8h-source.html#l00110">DBUS_TYPE_SIGNATURE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00102">DBUS_TYPE_STRING</a>, <a class="el" href="dbus-protocol_8h-source.html#l00078">DBUS_TYPE_UINT16</a>, <a class="el" href="dbus-protocol_8h-source.html#l00086">DBUS_TYPE_UINT32</a>, <a class="el" href="dbus-protocol_8h-source.html#l00094">DBUS_TYPE_UINT64</a>, <a class="el" href="dbus-marshal-basic_8h-source.html#l00168">DBusBasicValue::str</a>, <a class="el" href="dbus-marshal-basic_8h-source.html#l00157">DBusBasicValue::u16</a>, <a class="el" href="dbus-marshal-basic_8h-source.html#l00159">DBusBasicValue::u32</a>, and <a class="el" href="dbus-marshal-basic_8h-source.html#l00162">DBusBasicValue::u64</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-header_8c-source.html#l01317">_dbus_header_get_field_basic()</a>, and <a class="el" href="dbus-marshal-recursive_8c-source.html#l00854">_dbus_type_reader_read_basic()</a>.
</div>
</div><p>
<a class="anchor" name="g6dd82a202c19758cbf76dbed2946615d"></a><!-- doxytag: member="dbus-marshal-basic.c::_dbus_marshal_read_uint32" ref="g6dd82a202c19758cbf76dbed2946615d" args="(const DBusString *str, int pos, int byte_order, int *new_pos)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#gf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a> _dbus_marshal_read_uint32           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>byte_order</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>new_pos</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Convenience function to demarshal a 32 bit unsigned integer. 
<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>&nbsp;</td><td>the string containing the data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>byte_order</em>&nbsp;</td><td>the byte order </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pos</em>&nbsp;</td><td>the position in the string </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>new_pos</em>&nbsp;</td><td>the new position of the string </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the demarshaled integer. </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-basic_8c-source.html#l00465">465</a> of file <a class="el" href="dbus-marshal-basic_8c-source.html">dbus-marshal-basic.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-header_8c-source.html#l00409">_dbus_header_get_serial()</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00656">_dbus_header_have_message_untrusted()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l00503">_dbus_marshal_read_basic()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l01147">_dbus_marshal_skip_array()</a>, and <a class="el" href="dbus-marshal-basic_8c-source.html#l01080">_dbus_marshal_skip_basic()</a>.
</div>
</div><p>
<a class="anchor" name="g854526bdf221a5e82b2e14581ac17d8f"></a><!-- doxytag: member="dbus-marshal-basic.c::_dbus_marshal_set_basic" ref="g854526bdf221a5e82b2e14581ac17d8f" args="(DBusString *str, int pos, int type, const void *value, int byte_order, int *old_end_pos, int *new_end_pos)" -->
<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_marshal_set_basic           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>byte_order</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>old_end_pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>new_end_pos</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets an existing basic type value to a new value. 
<p>
Arguments work the same way as _dbus_marshal_basic_type().<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>&nbsp;</td><td>the string </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pos</em>&nbsp;</td><td>location of the current value </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>the type of the current and new values </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>the address of the new value </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>byte_order</em>&nbsp;</td><td>byte order for marshaling </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>old_end_pos</em>&nbsp;</td><td>location to store end position of the old value, or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>new_end_pos</em>&nbsp;</td><td>location to store end position of the new value, or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-basic_8c-source.html#l00382">382</a> of file <a class="el" href="dbus-marshal-basic_8c-source.html">dbus-marshal-basic.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-internals_8h-source.html#l00121">_dbus_assert_not_reached</a>, <a class="el" href="dbus-marshal-basic_8h-source.html#l00167">DBusBasicValue::byt</a>, <a class="el" href="dbus-protocol_8h-source.html#l00070">DBUS_TYPE_BOOLEAN</a>, <a class="el" href="dbus-protocol_8h-source.html#l00066">DBUS_TYPE_BYTE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00098">DBUS_TYPE_DOUBLE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00074">DBUS_TYPE_INT16</a>, <a class="el" href="dbus-protocol_8h-source.html#l00082">DBUS_TYPE_INT32</a>, <a class="el" href="dbus-protocol_8h-source.html#l00090">DBUS_TYPE_INT64</a>, <a class="el" href="dbus-protocol_8h-source.html#l00106">DBUS_TYPE_OBJECT_PATH</a>, <a class="el" href="dbus-protocol_8h-source.html#l00110">DBUS_TYPE_SIGNATURE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00102">DBUS_TYPE_STRING</a>, <a class="el" href="dbus-protocol_8h-source.html#l00078">DBUS_TYPE_UINT16</a>, <a class="el" href="dbus-protocol_8h-source.html#l00086">DBUS_TYPE_UINT32</a>, <a class="el" href="dbus-protocol_8h-source.html#l00094">DBUS_TYPE_UINT64</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-marshal-basic_8h-source.html#l00168">DBusBasicValue::str</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, <a class="el" href="dbus-marshal-basic_8h-source.html#l00157">DBusBasicValue::u16</a>, and <a class="el" href="dbus-marshal-basic_8h-source.html#l00159">DBusBasicValue::u32</a>.
</div>
</div><p>
<a class="anchor" name="g4bcfb6a664c7e46c7ffc31f96d532a02"></a><!-- doxytag: member="dbus-marshal-basic.c::_dbus_marshal_set_uint32" ref="g4bcfb6a664c7e46c7ffc31f96d532a02" args="(DBusString *str, int pos, dbus_uint32_t value, int byte_order)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_marshal_set_uint32           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>pos</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>&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>byte_order</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets the 4 bytes at the given offset to a marshaled unsigned integer, replacing anything found there previously. 
<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>&nbsp;</td><td>the string to write the marshalled int to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pos</em>&nbsp;</td><td>the byte offset where int should be written </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>the value </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>byte_order</em>&nbsp;</td><td>the byte order to use </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-basic_8c-source.html#l00265">265</a> of file <a class="el" href="dbus-marshal-basic_8c-source.html">dbus-marshal-basic.c</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-header_8c-source.html#l00386">_dbus_header_set_serial()</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l01175">_dbus_header_update_lengths()</a>, and <a class="el" href="dbus-marshal-recursive_8c-source.html#l02161">_dbus_type_writer_unrecurse()</a>.
</div>
</div><p>
<a class="anchor" name="g8d9c5bcc039d9099df197a125a7259b8"></a><!-- doxytag: member="dbus-marshal-basic.c::_dbus_marshal_skip_array" ref="g8d9c5bcc039d9099df197a125a7259b8" args="(const DBusString *str, int element_type, int byte_order, int *pos)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_marshal_skip_array           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>element_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>byte_order</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>pos</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Skips an array, returning the next position. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>the string containing the data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>element_type</em>&nbsp;</td><td>the type of array elements </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>byte_order</em>&nbsp;</td><td>the byte order </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pos</em>&nbsp;</td><td>pointer to position in the string, updated on return to new position </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-basic_8c-source.html#l01147">1147</a> of file <a class="el" href="dbus-marshal-basic_8c-source.html">dbus-marshal-basic.c</a>.
<p>
References <a class="el" href="dbus-marshal-basic_8c-source.html#l00465">_dbus_marshal_read_uint32()</a>, and <a class="el" href="dbus-marshal-basic_8c-source.html#l01175">_dbus_type_get_alignment()</a>.
</div>
</div><p>
<a class="anchor" name="gfd1ab7e9bd8e74cc41f03c76f4dce2dd"></a><!-- doxytag: member="dbus-marshal-basic.c::_dbus_marshal_skip_basic" ref="gfd1ab7e9bd8e74cc41f03c76f4dce2dd" args="(const DBusString *str, int type, int byte_order, int *pos)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_marshal_skip_basic           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>byte_order</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>pos</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Skips over a basic-typed value, reporting the following position. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>the string containing the data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>type of value to read </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>byte_order</em>&nbsp;</td><td>the byte order </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pos</em>&nbsp;</td><td>pointer to position in the string, updated on return to new position </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-basic_8c-source.html#l01080">1080</a> of file <a class="el" href="dbus-marshal-basic_8c-source.html">dbus-marshal-basic.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-internals_8h-source.html#l00121">_dbus_assert_not_reached</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l00465">_dbus_marshal_read_uint32()</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#l00054">DBUS_BIG_ENDIAN</a>, <a class="el" href="dbus-protocol_8h-source.html#l00053">DBUS_LITTLE_ENDIAN</a>, <a class="el" href="dbus-protocol_8h-source.html#l00070">DBUS_TYPE_BOOLEAN</a>, <a class="el" href="dbus-protocol_8h-source.html#l00066">DBUS_TYPE_BYTE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00098">DBUS_TYPE_DOUBLE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00074">DBUS_TYPE_INT16</a>, <a class="el" href="dbus-protocol_8h-source.html#l00082">DBUS_TYPE_INT32</a>, <a class="el" href="dbus-protocol_8h-source.html#l00090">DBUS_TYPE_INT64</a>, <a class="el" href="dbus-protocol_8h-source.html#l00106">DBUS_TYPE_OBJECT_PATH</a>, <a class="el" href="dbus-protocol_8h-source.html#l00110">DBUS_TYPE_SIGNATURE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00102">DBUS_TYPE_STRING</a>, <a class="el" href="dbus-protocol_8h-source.html#l00078">DBUS_TYPE_UINT16</a>, <a class="el" href="dbus-protocol_8h-source.html#l00086">DBUS_TYPE_UINT32</a>, and <a class="el" href="dbus-protocol_8h-source.html#l00094">DBUS_TYPE_UINT64</a>.
</div>
</div><p>
<a class="anchor" name="g54323d48921de8c5bd04ae01548312bb"></a><!-- doxytag: member="dbus-marshal-basic.c::_dbus_marshal_write_basic" ref="g54323d48921de8c5bd04ae01548312bb" args="(DBusString *str, int insert_at, int type, const void *value, int byte_order, int *pos_after)" -->
<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_marshal_write_basic           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>insert_at</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>byte_order</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>pos_after</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Marshals a basic-typed value. 
<p>
The "value" pointer is always the address of a variable containing the basic type value. So for example for int32 it will be dbus_int32_t*, and for string it will be const char**. This is for symmetry with <a class="el" href="group__DBusMarshal.html#gb331e099fa8cf3d94cf33ad7b20c81ae">_dbus_marshal_read_basic()</a> and to have a simple consistent rule.<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>&nbsp;</td><td>string to marshal to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>insert_at</em>&nbsp;</td><td>where to insert the value </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>type of value </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>pointer to a variable containing the value </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>byte_order</em>&nbsp;</td><td>byte order </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pos_after</em>&nbsp;</td><td><a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> or the position after the type </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-basic_8c-source.html#l00793">793</a> of file <a class="el" href="dbus-marshal-basic_8c-source.html">dbus-marshal-basic.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-internals_8h-source.html#l00121">_dbus_assert_not_reached</a>, <a class="el" href="dbus-string_8c-source.html#l00581">_dbus_string_insert_byte()</a>, <a class="el" href="dbus-marshal-basic_8h-source.html#l00167">DBusBasicValue::byt</a>, <a class="el" href="dbus-protocol_8h-source.html#l00070">DBUS_TYPE_BOOLEAN</a>, <a class="el" href="dbus-protocol_8h-source.html#l00066">DBUS_TYPE_BYTE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00098">DBUS_TYPE_DOUBLE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00074">DBUS_TYPE_INT16</a>, <a class="el" href="dbus-protocol_8h-source.html#l00082">DBUS_TYPE_INT32</a>, <a class="el" href="dbus-protocol_8h-source.html#l00090">DBUS_TYPE_INT64</a>, <a class="el" href="dbus-signature_8c-source.html#l00306">dbus_type_is_basic()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00106">DBUS_TYPE_OBJECT_PATH</a>, <a class="el" href="dbus-protocol_8h-source.html#l00110">DBUS_TYPE_SIGNATURE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00102">DBUS_TYPE_STRING</a>, <a class="el" href="dbus-protocol_8h-source.html#l00078">DBUS_TYPE_UINT16</a>, <a class="el" href="dbus-protocol_8h-source.html#l00086">DBUS_TYPE_UINT32</a>, <a class="el" href="dbus-protocol_8h-source.html#l00094">DBUS_TYPE_UINT64</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-marshal-basic_8h-source.html#l00168">DBusBasicValue::str</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, <a class="el" href="dbus-marshal-basic_8h-source.html#l00157">DBusBasicValue::u16</a>, and <a class="el" href="dbus-marshal-basic_8h-source.html#l00159">DBusBasicValue::u32</a>.
</div>
</div><p>
<a class="anchor" name="g990da87b984d8917da26b89a6470fdf5"></a><!-- doxytag: member="dbus-marshal-basic.c::_dbus_marshal_write_fixed_multi" ref="g990da87b984d8917da26b89a6470fdf5" args="(DBusString *str, int insert_at, int element_type, const void *value, int n_elements, int byte_order, int *pos_after)" -->
<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_marshal_write_fixed_multi           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>insert_at</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>element_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>n_elements</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>byte_order</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>pos_after</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Marshals a block of values of fixed-length type all at once, as an optimization. 
<p>
<a class="el" href="group__DBusSignature.html#g435ffc74ae015cc193175f5b864872bc">dbus_type_is_fixed()</a> returns <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> for fixed-length types, which are the basic types minus the string-like types.<p>
The value argument should be the adddress of an array, so e.g. "const dbus_uint32_t**"<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>&nbsp;</td><td>string to marshal to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>insert_at</em>&nbsp;</td><td>where to insert the value </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>element_type</em>&nbsp;</td><td>type of array elements </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>address of an array to marshal </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>n_elements</em>&nbsp;</td><td>number of elements in the array </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>byte_order</em>&nbsp;</td><td>byte order </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pos_after</em>&nbsp;</td><td><a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> or the position after the type </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-basic_8c-source.html#l01022">1022</a> of file <a class="el" href="dbus-marshal-basic_8c-source.html">dbus-marshal-basic.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-internals_8h-source.html#l00121">_dbus_assert_not_reached</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l01257">_dbus_type_to_string()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00070">DBUS_TYPE_BOOLEAN</a>, <a class="el" href="dbus-protocol_8h-source.html#l00066">DBUS_TYPE_BYTE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00098">DBUS_TYPE_DOUBLE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00074">DBUS_TYPE_INT16</a>, <a class="el" href="dbus-protocol_8h-source.html#l00082">DBUS_TYPE_INT32</a>, <a class="el" href="dbus-protocol_8h-source.html#l00090">DBUS_TYPE_INT64</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#l00078">DBUS_TYPE_UINT16</a>, <a class="el" href="dbus-protocol_8h-source.html#l00086">DBUS_TYPE_UINT32</a>, <a class="el" href="dbus-protocol_8h-source.html#l00094">DBUS_TYPE_UINT64</a>, and <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-recursive_8c-source.html#l02341">_dbus_type_writer_write_fixed_multi()</a>.
</div>
</div><p>
<a class="anchor" name="g44e670d715bb678045f3d79b35920b0b"></a><!-- doxytag: member="dbus-marshal-basic.c::_dbus_pack_uint32" ref="g44e670d715bb678045f3d79b35920b0b" args="(dbus_uint32_t value, int byte_order, unsigned char *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_pack_uint32           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__DBusTypes.html#gf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a>&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>byte_order</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&nbsp;</td>
          <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Packs a 32 bit unsigned integer into a data pointer. 
<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>value</em>&nbsp;</td><td>the value </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>byte_order</em>&nbsp;</td><td>the byte order to use </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>the data pointer </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-basic_8c-source.html#l00098">98</a> of file <a class="el" href="dbus-marshal-basic_8c-source.html">dbus-marshal-basic.c</a>.
</div>
</div><p>
<a class="anchor" name="gec86e8e1ae2f25b673ae6d900ab323c7"></a><!-- doxytag: member="dbus-marshal-basic.c::_dbus_swap_array" ref="gec86e8e1ae2f25b673ae6d900ab323c7" args="(unsigned char *data, int n_elements, int alignment)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_swap_array           </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>n_elements</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>alignment</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Swaps the elements of an array to the opposite byte order. 
<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>data</em>&nbsp;</td><td>start of array </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>n_elements</em>&nbsp;</td><td>number of elements </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>alignment</em>&nbsp;</td><td>size of each element </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-basic_8c-source.html#l00886">886</a> of file <a class="el" href="dbus-marshal-basic_8c-source.html">dbus-marshal-basic.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>.
</div>
</div><p>
<a class="anchor" name="g2ba80f227880e442c140bc67653b0abd"></a><!-- doxytag: member="dbus-marshal-basic.c::_dbus_type_get_alignment" ref="g2ba80f227880e442c140bc67653b0abd" args="(int typecode)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int _dbus_type_get_alignment           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>typecode</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the alignment requirement for the given type; will be 1, 4, or 8. 
<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>typecode</em>&nbsp;</td><td>the type </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>alignment of 1, 4, or 8 </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-basic_8c-source.html#l01175">1175</a> of file <a class="el" href="dbus-marshal-basic_8c-source.html">dbus-marshal-basic.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00121">_dbus_assert_not_reached</a>, <a class="el" href="dbus-protocol_8h-source.html#l00116">DBUS_TYPE_ARRAY</a>, <a class="el" href="dbus-protocol_8h-source.html#l00070">DBUS_TYPE_BOOLEAN</a>, <a class="el" href="dbus-protocol_8h-source.html#l00066">DBUS_TYPE_BYTE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00139">DBUS_TYPE_DICT_ENTRY</a>, <a class="el" href="dbus-protocol_8h-source.html#l00098">DBUS_TYPE_DOUBLE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00074">DBUS_TYPE_INT16</a>, <a class="el" href="dbus-protocol_8h-source.html#l00082">DBUS_TYPE_INT32</a>, <a class="el" href="dbus-protocol_8h-source.html#l00090">DBUS_TYPE_INT64</a>, <a class="el" href="dbus-protocol_8h-source.html#l00106">DBUS_TYPE_OBJECT_PATH</a>, <a class="el" href="dbus-protocol_8h-source.html#l00110">DBUS_TYPE_SIGNATURE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00102">DBUS_TYPE_STRING</a>, <a class="el" href="dbus-protocol_8h-source.html#l00132">DBUS_TYPE_STRUCT</a>, <a class="el" href="dbus-protocol_8h-source.html#l00078">DBUS_TYPE_UINT16</a>, <a class="el" href="dbus-protocol_8h-source.html#l00086">DBUS_TYPE_UINT32</a>, <a class="el" href="dbus-protocol_8h-source.html#l00094">DBUS_TYPE_UINT64</a>, and <a class="el" href="dbus-protocol_8h-source.html#l00120">DBUS_TYPE_VARIANT</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-basic_8c-source.html#l01147">_dbus_marshal_skip_array()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00908">_dbus_type_reader_read_fixed_multi()</a>, and <a class="el" href="dbus-message_8c-source.html#l02291">dbus_message_iter_append_fixed_array()</a>.
</div>
</div><p>
<a class="anchor" name="ga1bf18d3c95d4d4632fbdfe3a1d22bed"></a><!-- doxytag: member="dbus-marshal-basic.c::_dbus_type_is_valid" ref="ga1bf18d3c95d4d4632fbdfe3a1d22bed" args="(int typecode)" -->
<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_type_is_valid           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>typecode</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the typecode is a valid typecode. 
<p>
<a class="el" href="group__DBusProtocol.html#ga9588da889743b2119dc6664712ae51e">DBUS_TYPE_INVALID</a> surprisingly enough is not considered valid, and random unknown bytes aren't either. This function is safe with untrusted data.<p>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if valid </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-basic_8c-source.html#l01223">1223</a> of file <a class="el" href="dbus-marshal-basic_8c-source.html">dbus-marshal-basic.c</a>.
<p>
References <a class="el" href="dbus-protocol_8h-source.html#l00116">DBUS_TYPE_ARRAY</a>, <a class="el" href="dbus-protocol_8h-source.html#l00070">DBUS_TYPE_BOOLEAN</a>, <a class="el" href="dbus-protocol_8h-source.html#l00066">DBUS_TYPE_BYTE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00139">DBUS_TYPE_DICT_ENTRY</a>, <a class="el" href="dbus-protocol_8h-source.html#l00098">DBUS_TYPE_DOUBLE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00074">DBUS_TYPE_INT16</a>, <a class="el" href="dbus-protocol_8h-source.html#l00082">DBUS_TYPE_INT32</a>, <a class="el" href="dbus-protocol_8h-source.html#l00090">DBUS_TYPE_INT64</a>, <a class="el" href="dbus-protocol_8h-source.html#l00106">DBUS_TYPE_OBJECT_PATH</a>, <a class="el" href="dbus-protocol_8h-source.html#l00110">DBUS_TYPE_SIGNATURE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00102">DBUS_TYPE_STRING</a>, <a class="el" href="dbus-protocol_8h-source.html#l00132">DBUS_TYPE_STRUCT</a>, <a class="el" href="dbus-protocol_8h-source.html#l00078">DBUS_TYPE_UINT16</a>, <a class="el" href="dbus-protocol_8h-source.html#l00086">DBUS_TYPE_UINT32</a>, <a class="el" href="dbus-protocol_8h-source.html#l00094">DBUS_TYPE_UINT64</a>, <a class="el" href="dbus-protocol_8h-source.html#l00120">DBUS_TYPE_VARIANT</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-validate_8c-source.html#l00050">_dbus_validate_signature_with_reason()</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#l00284">dbus_type_is_container()</a>, and <a class="el" href="dbus-signature_8c-source.html#l00335">dbus_type_is_fixed()</a>.
</div>
</div><p>
<a class="anchor" name="ga4057610b3d9e81fed212c17f6599516"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_reader_delete" ref="ga4057610b3d9e81fed212c17f6599516" args="(DBusTypeReader *reader, const DBusTypeReader *realign_root)" -->
<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_type_reader_delete           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *&nbsp;</td>
          <td class="paramname"> <em>reader</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *&nbsp;</td>
          <td class="paramname"> <em>realign_root</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Recursively deletes any value pointed to by the reader, leaving the reader valid to continue reading. 
<p>
Any other readers will be invalidated.<p>
The provided realign_root is the reader to start from when realigning the data that follows the newly-set value. See <a class="el" href="group__DBusMarshal.html#gaf11ca429434c2c280f5fad34ed95204">_dbus_type_reader_set_basic()</a> for more details on the realign_root paramter.<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000017">Todo:</a></b></dt><dd>for now this does not delete the typecodes associated with the value, so this function should only be used for array elements.</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>reader</em>&nbsp;</td><td>reader indicating where to delete a value </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>realign_root</em>&nbsp;</td><td>realign from here </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-recursive_8c-source.html#l01402">1402</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00057">DBusTypeReader::klass</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-marshal-header_8c-source.html#l01382">_dbus_header_delete_field()</a>.
</div>
</div><p>
<a class="anchor" name="g7def93d676d528c261aa274cea41c29d"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_reader_get_array_length" ref="g7def93d676d528c261aa274cea41c29d" args="(const DBusTypeReader *reader)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int _dbus_type_reader_get_array_length           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *&nbsp;</td>
          <td class="paramname"> <em>reader</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the number of bytes in the array. 
<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>reader</em>&nbsp;</td><td>the reader to read from </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the number of bytes in the array </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-recursive_8c-source.html#l00884">884</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00057">DBusTypeReader::klass</a>, and <a class="el" href="dbus-marshal-recursive_8c-source.html#l00116">DBusTypeReaderClass::types_only</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l01995">dbus_message_iter_get_array_len()</a>.
</div>
</div><p>
<a class="anchor" name="gb8e39cb8084247d54d7f272c51622a73"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_reader_get_current_type" ref="gb8e39cb8084247d54d7f272c51622a73" args="(const DBusTypeReader *reader)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int _dbus_type_reader_get_current_type           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *&nbsp;</td>
          <td class="paramname"> <em>reader</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the type of the value the reader is currently pointing to; or for a types-only reader gets the type it's currently pointing to. 
<p>
If the reader is at the end of a block or end of a container such as an array, returns <a class="el" href="group__DBusProtocol.html#ga9588da889743b2119dc6664712ae51e">DBUS_TYPE_INVALID</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>reader</em>&nbsp;</td><td>the reader </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-recursive_8c-source.html#l00770">770</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l01458">_dbus_first_type_in_signature()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l01257">_dbus_type_to_string()</a>, <a class="el" href="structDBusTypeReaderClass.html#023bc5274f7bf1f45f29822aebae96a1">DBusTypeReaderClass::check_finished</a>, <a class="el" href="dbus-protocol_8h-source.html#l00160">DBUS_DICT_ENTRY_BEGIN_CHAR</a>, <a class="el" href="dbus-protocol_8h-source.html#l00164">DBUS_DICT_ENTRY_END_CHAR</a>, <a class="el" href="dbus-protocol_8h-source.html#l00152">DBUS_STRUCT_BEGIN_CHAR</a>, <a class="el" href="dbus-protocol_8h-source.html#l00156">DBUS_STRUCT_END_CHAR</a>, <a class="el" href="dbus-protocol_8h-source.html#l00060">DBUS_TYPE_INVALID</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00048">DBusTypeReader::finished</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00057">DBusTypeReader::klass</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00053">DBusTypeReader::type_pos</a>, and <a class="el" href="dbus-marshal-recursive_8h-source.html#l00052">DBusTypeReader::type_str</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-header_8c-source.html#l00948">_dbus_header_load()</a>, <a class="el" href="dbus-message_8c-source.html#l00641">_dbus_message_iter_get_args_valist()</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#l01345">_dbus_type_reader_set_basic()</a>, <a class="el" href="dbus-message_8c-source.html#l01817">dbus_message_iter_get_arg_type()</a>, <a class="el" href="dbus-message_8c-source.html#l02036">dbus_message_iter_get_fixed_array()</a>, and <a class="el" href="dbus-message_8c-source.html#l01742">dbus_message_iter_init()</a>.
</div>
</div><p>
<a class="anchor" name="g6e5439f7ca5ee8a1ce943ddab7611d0d"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_reader_get_element_type" ref="g6e5439f7ca5ee8a1ce943ddab7611d0d" args="(const DBusTypeReader *reader)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int _dbus_type_reader_get_element_type           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *&nbsp;</td>
          <td class="paramname"> <em>reader</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the type of an element of the array the reader is currently pointing to. 
<p>
It's an error to call this if <a class="el" href="group__DBusMarshal.html#gb8e39cb8084247d54d7f272c51622a73">_dbus_type_reader_get_current_type()</a> doesn't return <a class="el" href="group__DBusProtocol.html#g8912f600f81a773066ca03d9163613a9">DBUS_TYPE_ARRAY</a> for this reader.<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>reader</em>&nbsp;</td><td>the reader </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-recursive_8c-source.html#l00805">805</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l01458">_dbus_first_type_in_signature()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00770">_dbus_type_reader_get_current_type()</a>, and <a class="el" href="dbus-protocol_8h-source.html#l00116">DBUS_TYPE_ARRAY</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l00641">_dbus_message_iter_get_args_valist()</a>, and <a class="el" href="dbus-message_8c-source.html#l01836">dbus_message_iter_get_element_type()</a>.
</div>
</div><p>
<a class="anchor" name="g4578cc623c8b0978ca780ce0ab950fdb"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_reader_get_signature" ref="g4578cc623c8b0978ca780ce0ab950fdb" args="(const DBusTypeReader *reader, const DBusString **str_p, int *start_p, int *len_p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_type_reader_get_signature           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *&nbsp;</td>
          <td class="paramname"> <em>reader</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> **&nbsp;</td>
          <td class="paramname"> <em>str_p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>start_p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>len_p</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the string and range of said string containing the signature of the current value. 
<p>
Essentially a more complete version of <a class="el" href="group__DBusMarshal.html#gb8e39cb8084247d54d7f272c51622a73">_dbus_type_reader_get_current_type()</a> (returns the full type rather than only the outside of the onion).<p>
Note though that the first byte in a struct signature is <a class="el" href="group__DBusProtocol.html#g725657eca93175475e0694b858f51fd6">DBUS_STRUCT_BEGIN_CHAR</a> while the current type will be <a class="el" href="group__DBusProtocol.html#ge4b22a74b9edb0ec0ff6e0294794d3f9">DBUS_TYPE_STRUCT</a> so it isn't true that the first byte of the signature is always the same as the current type. Another difference is that this function will still return a signature when inside an empty array; say you recurse into empty array of int32, the signature is "i" but the current type will always be <a class="el" href="group__DBusProtocol.html#ga9588da889743b2119dc6664712ae51e">DBUS_TYPE_INVALID</a> since there are no elements to be currently pointing to.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>reader</em>&nbsp;</td><td>the reader </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>str_p</em>&nbsp;</td><td>place to return the string with the type in it </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>start_p</em>&nbsp;</td><td>place to return start of the type </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len_p</em>&nbsp;</td><td>place to return the length of the type </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-recursive_8c-source.html#l01107">1107</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-marshal-recursive_8h-source.html#l00053">DBusTypeReader::type_pos</a>, and <a class="el" href="dbus-marshal-recursive_8h-source.html#l00052">DBusTypeReader::type_str</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l01898">dbus_message_iter_get_signature()</a>.
</div>
</div><p>
<a class="anchor" name="g2a8ab1152821950b1fe29e000954981c"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_reader_get_value_pos" ref="g2a8ab1152821950b1fe29e000954981c" args="(const DBusTypeReader *reader)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int _dbus_type_reader_get_value_pos           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *&nbsp;</td>
          <td class="paramname"> <em>reader</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Gets the current position in the value block. 
<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>reader</em>&nbsp;</td><td>the reader </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-recursive_8c-source.html#l00822">822</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-marshal-recursive_8h-source.html#l00055">DBusTypeReader::value_pos</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-header_8c-source.html#l00948">_dbus_header_load()</a>.
</div>
</div><p>
<a class="anchor" name="g229b3858f43ec56de852f62914cf3568"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_reader_greater_than" ref="g229b3858f43ec56de852f62914cf3568" args="(const DBusTypeReader *lhs, const DBusTypeReader *rhs)" -->
<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_type_reader_greater_than           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *&nbsp;</td>
          <td class="paramname"> <em>lhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *&nbsp;</td>
          <td class="paramname"> <em>rhs</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Compares two readers, which must be iterating over the same value data. 
<p>
Returns <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the first parameter is further along than the second parameter.<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>lhs</em>&nbsp;</td><td>left-hand-side (first) parameter </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>rhs</em>&nbsp;</td><td>left-hand-side (first) parameter </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>whether lhs is greater than rhs </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-recursive_8c-source.html#l01437">1437</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00055">DBusTypeReader::value_pos</a>, and <a class="el" href="dbus-marshal-recursive_8h-source.html#l00054">DBusTypeReader::value_str</a>.
</div>
</div><p>
<a class="anchor" name="g97a59dbd1597ef1b267457e809f095de"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_reader_has_next" ref="g97a59dbd1597ef1b267457e809f095de" args="(const DBusTypeReader *reader)" -->
<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_type_reader_has_next           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *&nbsp;</td>
          <td class="paramname"> <em>reader</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Check whether there's another value on this "level". 
<p>
e.g. the next field in a struct, the next value in an array. Returns FALSE at the end of the current container.<p>
You probably don't want to use this; it makes for an awkward for/while loop. A nicer one is "while ((current_type = get_current_type()) != INVALID)"<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>reader</em>&nbsp;</td><td>the reader </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>FALSE if nothing more to read at or below this level </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-recursive_8c-source.html#l01076">1076</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-marshal-recursive_8c-source.html#l01036">_dbus_type_reader_next()</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l01773">dbus_message_iter_has_next()</a>.
</div>
</div><p>
<a class="anchor" name="g35d70cf69b1196518367e3e68e9b2dd2"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_reader_init" ref="g35d70cf69b1196518367e3e68e9b2dd2" args="(DBusTypeReader *reader, int byte_order, const DBusString *type_str, int type_pos, const DBusString *value_str, int value_pos)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_type_reader_init           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *&nbsp;</td>
          <td class="paramname"> <em>reader</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>byte_order</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>type_str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>type_pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>value_str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>value_pos</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initializes a type reader. 
<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>reader</em>&nbsp;</td><td>the reader </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>byte_order</em>&nbsp;</td><td>the byte order of the block to read </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type_str</em>&nbsp;</td><td>the signature of the block to read </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type_pos</em>&nbsp;</td><td>location of signature </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value_str</em>&nbsp;</td><td>the string containing values block </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value_pos</em>&nbsp;</td><td>start of values block </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-recursive_8c-source.html#l00717">717</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-marshal-recursive_8h-source.html#l00057">DBusTypeReader::klass</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00053">DBusTypeReader::type_pos</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00052">DBusTypeReader::type_str</a>, and <a class="el" href="dbus-marshal-recursive_8h-source.html#l00055">DBusTypeReader::value_pos</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-header_8c-source.html#l00948">_dbus_header_load()</a>, and <a class="el" href="dbus-message_8c-source.html#l01742">dbus_message_iter_init()</a>.
</div>
</div><p>
<a class="anchor" name="g3a5845f555f11c33ebaa71a75abff661"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_reader_init_types_only" ref="g3a5845f555f11c33ebaa71a75abff661" args="(DBusTypeReader *reader, const DBusString *type_str, int type_pos)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_type_reader_init_types_only           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *&nbsp;</td>
          <td class="paramname"> <em>reader</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>type_str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>type_pos</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Like <a class="el" href="group__DBusMarshal.html#g35d70cf69b1196518367e3e68e9b2dd2">_dbus_type_reader_init()</a> but the iteration is over the signature, not over values. 
<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>reader</em>&nbsp;</td><td>the reader </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type_str</em>&nbsp;</td><td>the signature string </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type_pos</em>&nbsp;</td><td>location in the signature string </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-recursive_8c-source.html#l00745">745</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00211">_DBUS_INT_MAX</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00057">DBusTypeReader::klass</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00053">DBusTypeReader::type_pos</a>, and <a class="el" href="dbus-marshal-recursive_8h-source.html#l00052">DBusTypeReader::type_str</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-byteswap_8c-source.html#l00220">_dbus_marshal_byteswap()</a>, and <a class="el" href="dbus-marshal-validate_8c-source.html#l00630">_dbus_validate_body_with_reason()</a>.
</div>
</div><p>
<a class="anchor" name="g746c09512d4905f2d2fac7ed4c3c63c2"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_reader_next" ref="g746c09512d4905f2d2fac7ed4c3c63c2" args="(DBusTypeReader *reader)" -->
<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_type_reader_next           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *&nbsp;</td>
          <td class="paramname"> <em>reader</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Skip to the next value on this "level". 
<p>
e.g. the next field in a struct, the next value in an array. Returns FALSE at the end of the current container.<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>reader</em>&nbsp;</td><td>the reader </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>FALSE if nothing more to read at or below this level </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-recursive_8c-source.html#l01036">1036</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-marshal-recursive_8c-source.html#l00770">_dbus_type_reader_get_current_type()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l01257">_dbus_type_to_string()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00060">DBUS_TYPE_INVALID</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00057">DBusTypeReader::klass</a>, <a class="el" href="structDBusTypeReaderClass.html#1b4a87e6f61339456f2e8d0ce873f379">DBusTypeReaderClass::next</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00053">DBusTypeReader::type_pos</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00052">DBusTypeReader::type_str</a>, and <a class="el" href="dbus-marshal-recursive_8h-source.html#l00055">DBusTypeReader::value_pos</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-header_8c-source.html#l00948">_dbus_header_load()</a>, <a class="el" href="dbus-message_8c-source.html#l00641">_dbus_message_iter_get_args_valist()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l01076">_dbus_type_reader_has_next()</a>, and <a class="el" href="dbus-message_8c-source.html#l01792">dbus_message_iter_next()</a>.
</div>
</div><p>
<a class="anchor" name="ga54355ee98d6721d7a29b5ae7d92eb9a"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_reader_read_basic" ref="ga54355ee98d6721d7a29b5ae7d92eb9a" args="(const DBusTypeReader *reader, void *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_type_reader_read_basic           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *&nbsp;</td>
          <td class="paramname"> <em>reader</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Reads a basic-typed value, as with <a class="el" href="group__DBusMarshal.html#gb331e099fa8cf3d94cf33ad7b20c81ae">_dbus_marshal_read_basic()</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>reader</em>&nbsp;</td><td>the reader </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>the address of the value </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-recursive_8c-source.html#l00854">854</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l00503">_dbus_marshal_read_basic()</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_8h-source.html#l00046">DBusTypeReader::byte_order</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00057">DBusTypeReader::klass</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00053">DBusTypeReader::type_pos</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00052">DBusTypeReader::type_str</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00116">DBusTypeReaderClass::types_only</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00055">DBusTypeReader::value_pos</a>, and <a class="el" href="dbus-marshal-recursive_8h-source.html#l00054">DBusTypeReader::value_str</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-header_8c-source.html#l00948">_dbus_header_load()</a>, <a class="el" href="dbus-message_8c-source.html#l00641">_dbus_message_iter_get_args_valist()</a>, and <a class="el" href="dbus-message_8c-source.html#l01964">dbus_message_iter_get_basic()</a>.
</div>
</div><p>
<a class="anchor" name="ge9a65c05e58ace9c83352f65af2fe745"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_reader_read_fixed_multi" ref="ge9a65c05e58ace9c83352f65af2fe745" args="(const DBusTypeReader *reader, void *value, int *n_elements)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_type_reader_read_fixed_multi           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *&nbsp;</td>
          <td class="paramname"> <em>reader</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>n_elements</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Reads a block of fixed-length basic values, from the current point in an array to the end of the array. 
<p>
Does not work for arrays of string or container types.<p>
This function returns the array in-place; it does not make a copy, and it does not swap the bytes.<p>
If you ask for <a class="el" href="group__DBusProtocol.html#gc30c00bb6de04d0886cfbace276ec353">DBUS_TYPE_DOUBLE</a> you will get a "const double*" back and the "value" argument should be a "const double**" and so on.<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>reader</em>&nbsp;</td><td>the reader to read from </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>place to return the array values </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>n_elements</em>&nbsp;</td><td>place to return number of array elements </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-recursive_8c-source.html#l00908">908</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l01458">_dbus_first_type_in_signature()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l01175">_dbus_type_get_alignment()</a>, DBusTypeReader::array, <a class="el" href="dbus-protocol_8h-source.html#l00060">DBUS_TYPE_INVALID</a>, <a class="el" href="dbus-signature_8c-source.html#l00335">dbus_type_is_fixed()</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00057">DBusTypeReader::klass</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00053">DBusTypeReader::type_pos</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00052">DBusTypeReader::type_str</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00116">DBusTypeReaderClass::types_only</a>, <a class="el" href="structDBusTypeReader.html#da12bed6758840dc19b1fcb271fb01be">DBusTypeReader::u</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00055">DBusTypeReader::value_pos</a>, and <a class="el" href="dbus-marshal-recursive_8h-source.html#l00054">DBusTypeReader::value_str</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l00641">_dbus_message_iter_get_args_valist()</a>, and <a class="el" href="dbus-message_8c-source.html#l02036">dbus_message_iter_get_fixed_array()</a>.
</div>
</div><p>
<a class="anchor" name="gc87315d74386314ec3b148ef737626d2"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_reader_read_raw" ref="gc87315d74386314ec3b148ef737626d2" args="(const DBusTypeReader *reader, const unsigned char **value_location)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_type_reader_read_raw           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *&nbsp;</td>
          <td class="paramname"> <em>reader</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char **&nbsp;</td>
          <td class="paramname"> <em>value_location</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the address of the marshaled value in the data being read. 
<p>
The address may not be aligned; you have to align it to the type of the value you want to read. Most of the demarshal routines do this for you.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>reader</em>&nbsp;</td><td>the reader </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value_location</em>&nbsp;</td><td>the address of the marshaled value </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-recursive_8c-source.html#l00837">837</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00057">DBusTypeReader::klass</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00116">DBusTypeReaderClass::types_only</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00055">DBusTypeReader::value_pos</a>, and <a class="el" href="dbus-marshal-recursive_8h-source.html#l00054">DBusTypeReader::value_str</a>.
</div>
</div><p>
<a class="anchor" name="g082b410820c74b2a6ca816a8e0c91803"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_reader_recurse" ref="g082b410820c74b2a6ca816a8e0c91803" args="(DBusTypeReader *reader, DBusTypeReader *sub)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_type_reader_recurse           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *&nbsp;</td>
          <td class="paramname"> <em>reader</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *&nbsp;</td>
          <td class="paramname"> <em>sub</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize a new reader pointing to the first type and corresponding value that's a child of the current container. 
<p>
It's an error to call this if the current type is a non-container.<p>
Note that <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> traverses values, not types. So if you have an empty array of array of int, you can't recurse into it. You can only recurse into each element.<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>reader</em>&nbsp;</td><td>the reader </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sub</em>&nbsp;</td><td>a reader to init pointing to the first child </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-recursive_8c-source.html#l00973">973</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-internals_8h-source.html#l00121">_dbus_assert_not_reached</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l01458">_dbus_first_type_in_signature()</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#l00266">_dbus_warn_check_failed()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00116">DBUS_TYPE_ARRAY</a>, <a class="el" href="dbus-protocol_8h-source.html#l00139">DBUS_TYPE_DICT_ENTRY</a>, <a class="el" href="dbus-protocol_8h-source.html#l00060">DBUS_TYPE_INVALID</a>, <a class="el" href="dbus-protocol_8h-source.html#l00132">DBUS_TYPE_STRUCT</a>, <a class="el" href="dbus-protocol_8h-source.html#l00120">DBUS_TYPE_VARIANT</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00115">DBusTypeReaderClass::id</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00057">DBusTypeReader::klass</a>, <a class="el" href="structDBusTypeReaderClass.html#be8f7f4433f8c8eaf0c5f8d445101391">DBusTypeReaderClass::recurse</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00053">DBusTypeReader::type_pos</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00052">DBusTypeReader::type_str</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00116">DBusTypeReaderClass::types_only</a>, and <a class="el" href="dbus-marshal-recursive_8h-source.html#l00055">DBusTypeReader::value_pos</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-header_8c-source.html#l00948">_dbus_header_load()</a>, <a class="el" href="dbus-message_8c-source.html#l00641">_dbus_message_iter_get_args_valist()</a>, and <a class="el" href="dbus-message_8c-source.html#l01873">dbus_message_iter_recurse()</a>.
</div>
</div><p>
<a class="anchor" name="gaf11ca429434c2c280f5fad34ed95204"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_reader_set_basic" ref="gaf11ca429434c2c280f5fad34ed95204" args="(DBusTypeReader *reader, const void *value, const DBusTypeReader *realign_root)" -->
<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_type_reader_set_basic           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *&nbsp;</td>
          <td class="paramname"> <em>reader</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *&nbsp;</td>
          <td class="paramname"> <em>realign_root</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sets a new value for the basic type value pointed to by the reader, leaving the reader valid to continue reading. 
<p>
Any other readers will be invalidated if you set a variable-length type such as a string.<p>
The provided realign_root is the reader to start from when realigning the data that follows the newly-set value. The reader parameter must point to a value below the realign_root parameter. If the type being set is fixed-length, then realign_root may be <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>. Only values reachable from realign_root will be realigned, so if your string contains other values you will need to deal with those somehow yourself. It is OK if realign_root is the same reader as the reader parameter, though if you aren't setting the root it may not be such a good idea.<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000015">Todo:</a></b></dt><dd><a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> currently takes "const" versions of the type and value strings, and this function modifies those strings by casting away the const, which is of course bad if we want to get picky. (To be truly clean you'd have an object which contained the type and value strings and set_basic would be a method on that object... this would also make <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> the same thing as DBusTypeMark. But since <a class="el" href="structDBusMessage.html">DBusMessage</a> is effectively that object for D-Bus it doesn't seem worth creating some random object.)</dd></dl>
<dl compact><dt><b><a class="el" href="todo.html#_todo000015">Todo:</a></b></dt><dd>optimize this by only rewriting until the old and new values are at the same alignment. Frequently this should result in only replacing the value that's immediately at hand.</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>reader</em>&nbsp;</td><td>reader indicating where to set a new value </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>address of the value to set </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>realign_root</em>&nbsp;</td><td>realign from here </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-recursive_8c-source.html#l01345">1345</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</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-basic_8c-source.html#l01257">_dbus_type_to_string()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l01402">_dbus_verbose_bytes_of_string()</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-marshal-recursive_8h-source.html#l00057">DBusTypeReader::klass</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00053">DBusTypeReader::type_pos</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00052">DBusTypeReader::type_str</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00116">DBusTypeReaderClass::types_only</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00055">DBusTypeReader::value_pos</a>, and <a class="el" href="dbus-marshal-recursive_8h-source.html#l00054">DBusTypeReader::value_str</a>.
</div>
</div><p>
<a class="anchor" name="gf2f5b2f027fa7d24f6179c6dbdf71a83"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_signature_next" ref="gf2f5b2f027fa7d24f6179c6dbdf71a83" args="(const char *type_str, int *type_pos)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_type_signature_next           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>type_str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>type_pos</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Skips to the next "complete" type inside a type signature. 
<p>
The signature is read starting at type_pos, and the next type position is stored in the same variable.<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>type_str</em>&nbsp;</td><td>a type signature (must be valid) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type_pos</em>&nbsp;</td><td>an integer position in the type signature (in and out) </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-recursive_8c-source.html#l00327">327</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-protocol_8h-source.html#l00160">DBUS_DICT_ENTRY_BEGIN_CHAR</a>, <a class="el" href="dbus-protocol_8h-source.html#l00164">DBUS_DICT_ENTRY_END_CHAR</a>, <a class="el" href="dbus-protocol_8h-source.html#l00152">DBUS_STRUCT_BEGIN_CHAR</a>, <a class="el" href="dbus-protocol_8h-source.html#l00156">DBUS_STRUCT_END_CHAR</a>, <a class="el" href="dbus-protocol_8h-source.html#l00116">DBUS_TYPE_ARRAY</a>, <a class="el" href="dbus-protocol_8h-source.html#l00060">DBUS_TYPE_INVALID</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-signature_8c-source.html#l00110">dbus_signature_iter_get_signature()</a>, and <a class="el" href="dbus-signature_8c-source.html#l00162">dbus_signature_iter_next()</a>.
</div>
</div><p>
<a class="anchor" name="g48a595c2b26dce6e9c25ce040e5247e5"></a><!-- doxytag: member="dbus-marshal-basic.c::_dbus_type_to_string" ref="g48a595c2b26dce6e9c25ce040e5247e5" args="(int typecode)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* _dbus_type_to_string           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>typecode</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns a string describing the given type. 
<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>typecode</em>&nbsp;</td><td>the type to describe </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>a constant string describing the type </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-basic_8c-source.html#l01257">1257</a> of file <a class="el" href="dbus-marshal-basic_8c-source.html">dbus-marshal-basic.c</a>.
<p>
References <a class="el" href="dbus-protocol_8h-source.html#l00160">DBUS_DICT_ENTRY_BEGIN_CHAR</a>, <a class="el" href="dbus-protocol_8h-source.html#l00164">DBUS_DICT_ENTRY_END_CHAR</a>, <a class="el" href="dbus-protocol_8h-source.html#l00152">DBUS_STRUCT_BEGIN_CHAR</a>, <a class="el" href="dbus-protocol_8h-source.html#l00156">DBUS_STRUCT_END_CHAR</a>, <a class="el" href="dbus-protocol_8h-source.html#l00116">DBUS_TYPE_ARRAY</a>, <a class="el" href="dbus-protocol_8h-source.html#l00070">DBUS_TYPE_BOOLEAN</a>, <a class="el" href="dbus-protocol_8h-source.html#l00066">DBUS_TYPE_BYTE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00139">DBUS_TYPE_DICT_ENTRY</a>, <a class="el" href="dbus-protocol_8h-source.html#l00098">DBUS_TYPE_DOUBLE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00074">DBUS_TYPE_INT16</a>, <a class="el" href="dbus-protocol_8h-source.html#l00082">DBUS_TYPE_INT32</a>, <a class="el" href="dbus-protocol_8h-source.html#l00090">DBUS_TYPE_INT64</a>, <a class="el" href="dbus-protocol_8h-source.html#l00060">DBUS_TYPE_INVALID</a>, <a class="el" href="dbus-protocol_8h-source.html#l00106">DBUS_TYPE_OBJECT_PATH</a>, <a class="el" href="dbus-protocol_8h-source.html#l00110">DBUS_TYPE_SIGNATURE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00102">DBUS_TYPE_STRING</a>, <a class="el" href="dbus-protocol_8h-source.html#l00132">DBUS_TYPE_STRUCT</a>, <a class="el" href="dbus-protocol_8h-source.html#l00078">DBUS_TYPE_UINT16</a>, <a class="el" href="dbus-protocol_8h-source.html#l00086">DBUS_TYPE_UINT32</a>, <a class="el" href="dbus-protocol_8h-source.html#l00094">DBUS_TYPE_UINT64</a>, and <a class="el" href="dbus-protocol_8h-source.html#l00120">DBUS_TYPE_VARIANT</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-basic_8c-source.html#l00503">_dbus_marshal_read_basic()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l01080">_dbus_marshal_skip_basic()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l01022">_dbus_marshal_write_fixed_multi()</a>, <a class="el" href="dbus-message_8c-source.html#l00641">_dbus_message_iter_get_args_valist()</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#l01036">_dbus_type_reader_next()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00973">_dbus_type_reader_recurse()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l01345">_dbus_type_reader_set_basic()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l02161">_dbus_type_writer_unrecurse()</a>, and <a class="el" href="dbus-message_8c-source.html#l01514">dbus_message_append_args_valist()</a>.
</div>
</div><p>
<a class="anchor" name="g863b2f232a21582f9e6fe1951b09da91"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_writer_add_types" ref="g863b2f232a21582f9e6fe1951b09da91" args="(DBusTypeWriter *writer, DBusString *type_str, int type_pos)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_type_writer_add_types           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>type_str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>type_pos</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Adds type string to the writer, if it had none. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>the writer to init </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type_str</em>&nbsp;</td><td>type string to add </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type_pos</em>&nbsp;</td><td>type position </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-recursive_8c-source.html#l01528">1528</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00080">DBusTypeWriter::type_pos</a>, and <a class="el" href="dbus-marshal-recursive_8h-source.html#l00079">DBusTypeWriter::type_str</a>.
</div>
</div><p>
<a class="anchor" name="gcc2b4c348f93898f6269feb0bf055617"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_writer_append_array" ref="gcc2b4c348f93898f6269feb0bf055617" args="(DBusTypeWriter *writer, const DBusString *contained_type, int contained_type_start, DBusTypeWriter *sub)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_type_writer_append_array           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>contained_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>contained_type_start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *&nbsp;</td>
          <td class="paramname"> <em>sub</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Append to an existing array. 
<p>
Essentially, the writer will read an existing length at the write location; jump over that length; and write new fields. On unrecurse(), the existing length will be updated.<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>writer</em>&nbsp;</td><td>the writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>contained_type</em>&nbsp;</td><td>element type </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>contained_type_start</em>&nbsp;</td><td>position of element type </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sub</em>&nbsp;</td><td>the subwriter to init </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-marshal-recursive_8c-source.html#l02125">2125</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-protocol_8h-source.html#l00116">DBUS_TYPE_ARRAY</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-header_8c-source.html#l01239">_dbus_header_set_field_basic()</a>.
</div>
</div><p>
<a class="anchor" name="gdeb83962df31e074874e957d17a0d4d1"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_writer_init" ref="gdeb83962df31e074874e957d17a0d4d1" args="(DBusTypeWriter *writer, int byte_order, DBusString *type_str, int type_pos, DBusString *value_str, int value_pos)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_type_writer_init           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>byte_order</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>type_str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>type_pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>value_str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>value_pos</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize a write iterator, which is used to write out values in serialized D-Bus format. 
<p>
The type_pos passed in is expected to be inside an already-valid, though potentially empty, type signature. This means that the byte after type_pos must be either <a class="el" href="group__DBusProtocol.html#ga9588da889743b2119dc6664712ae51e">DBUS_TYPE_INVALID</a> (aka nul) or some other valid type. <a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> won't enforce that the signature is already valid (you can append the nul byte at the end if you like), but just be aware that you need the nul byte eventually and <a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> isn't going to write it for you.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>the writer to init </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>byte_order</em>&nbsp;</td><td>the byte order to marshal into </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type_str</em>&nbsp;</td><td>the string to write typecodes into </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type_pos</em>&nbsp;</td><td>where to insert typecodes </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value_str</em>&nbsp;</td><td>the string to write values into </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value_pos</em>&nbsp;</td><td>where to insert values </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-recursive_8c-source.html#l01475">1475</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-marshal-recursive_8h-source.html#l00071">DBusTypeWriter::byte_order</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00073">DBusTypeWriter::container_type</a>, <a class="el" href="dbus-protocol_8h-source.html#l00060">DBUS_TYPE_INVALID</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00077">DBusTypeWriter::enabled</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00080">DBusTypeWriter::type_pos</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00075">DBusTypeWriter::type_pos_is_expectation</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00079">DBusTypeWriter::type_str</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00082">DBusTypeWriter::value_pos</a>, and <a class="el" href="dbus-marshal-recursive_8h-source.html#l00081">DBusTypeWriter::value_str</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-recursive_8c-source.html#l01510">_dbus_type_writer_init_types_delayed()</a>, and <a class="el" href="dbus-marshal-recursive_8c-source.html#l01566">_dbus_type_writer_init_values_only()</a>.
</div>
</div><p>
<a class="anchor" name="ga9ecf7e96d5323bc1da9cdf0c3f2c1e7"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_writer_init_types_delayed" ref="ga9ecf7e96d5323bc1da9cdf0c3f2c1e7" args="(DBusTypeWriter *writer, int byte_order, DBusString *value_str, int value_pos)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_type_writer_init_types_delayed           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>byte_order</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>value_str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>value_pos</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize a write iterator, with the signature to be provided later. 
<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>writer</em>&nbsp;</td><td>the writer to init </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>byte_order</em>&nbsp;</td><td>the byte order to marshal into </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value_str</em>&nbsp;</td><td>the string to write values into </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value_pos</em>&nbsp;</td><td>where to insert values </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-recursive_8c-source.html#l01510">1510</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-marshal-recursive_8c-source.html#l01475">_dbus_type_writer_init()</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l02064">dbus_message_iter_init_append()</a>.
</div>
</div><p>
<a class="anchor" name="g1f101175ce6f33221fcb59f0b46349bd"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_writer_init_values_only" ref="g1f101175ce6f33221fcb59f0b46349bd" args="(DBusTypeWriter *writer, int byte_order, const DBusString *type_str, int type_pos, DBusString *value_str, int value_pos)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_type_writer_init_values_only           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>byte_order</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>type_str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>type_pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>value_str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>value_pos</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Like <a class="el" href="group__DBusMarshal.html#gdeb83962df31e074874e957d17a0d4d1">_dbus_type_writer_init()</a>, except the type string passed in should correspond to an existing signature that matches what you're going to write out. 
<p>
The writer will check what you write vs. this existing signature.<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>writer</em>&nbsp;</td><td>the writer to init </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>byte_order</em>&nbsp;</td><td>the byte order to marshal into </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type_str</em>&nbsp;</td><td>the string with signature </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type_pos</em>&nbsp;</td><td>start of signature </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value_str</em>&nbsp;</td><td>the string to write values into </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value_pos</em>&nbsp;</td><td>where to insert values </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-recursive_8c-source.html#l01566">1566</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-marshal-recursive_8c-source.html#l01475">_dbus_type_writer_init()</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, and <a class="el" href="dbus-marshal-recursive_8h-source.html#l00075">DBusTypeWriter::type_pos_is_expectation</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-header_8c-source.html#l00514">_dbus_header_create()</a>, and <a class="el" href="dbus-marshal-header_8c-source.html#l01239">_dbus_header_set_field_basic()</a>.
</div>
</div><p>
<a class="anchor" name="g4c0a1036e59dac270141052d951baff2"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_writer_recurse" ref="g4c0a1036e59dac270141052d951baff2" args="(DBusTypeWriter *writer, int container_type, const DBusString *contained_type, int contained_type_start, DBusTypeWriter *sub)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_type_writer_recurse           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>container_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>contained_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>contained_type_start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *&nbsp;</td>
          <td class="paramname"> <em>sub</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Opens a new container and writes out the initial information for that container. 
<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>writer</em>&nbsp;</td><td>the writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>container_type</em>&nbsp;</td><td>the type of the container to open </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>contained_type</em>&nbsp;</td><td>the array element type or variant content type </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>contained_type_start</em>&nbsp;</td><td>position to look for the type </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sub</em>&nbsp;</td><td>the new sub-writer to write container contents </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-marshal-recursive_8c-source.html#l02091">2091</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-header_8c-source.html#l00514">_dbus_header_create()</a>, and <a class="el" href="dbus-message_8c-source.html#l02336">dbus_message_iter_open_container()</a>.
</div>
</div><p>
<a class="anchor" name="g34d675b57c7e6569707d22ba76ae010c"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_writer_remove_types" ref="g34d675b57c7e6569707d22ba76ae010c" args="(DBusTypeWriter *writer)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_type_writer_remove_types           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Removes type string from the writer. 
<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>writer</em>&nbsp;</td><td>the writer to remove from </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-recursive_8c-source.html#l01545">1545</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00080">DBusTypeWriter::type_pos</a>, and <a class="el" href="dbus-marshal-recursive_8h-source.html#l00079">DBusTypeWriter::type_str</a>.
</div>
</div><p>
<a class="anchor" name="g44efb6d70d7f68fc7dd8523a303dfdb2"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_writer_set_enabled" ref="g44efb6d70d7f68fc7dd8523a303dfdb2" args="(DBusTypeWriter *writer, dbus_bool_t enabled)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_type_writer_set_enabled           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&nbsp;</td>
          <td class="paramname"> <em>enabled</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
If disabled, a writer can still be iterated forward and recursed/unrecursed but won't write any values. 
<p>
Types will still be written unless the writer is a "values only" writer, because the writer needs access to a valid signature to be able to iterate.<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>writer</em>&nbsp;</td><td>the type writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>enabled</em>&nbsp;</td><td><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if values should be written </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-recursive_8c-source.html#l02729">2729</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-marshal-recursive_8h-source.html#l00077">DBusTypeWriter::enabled</a>, and <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-recursive_8c-source.html#l02659">_dbus_type_writer_write_reader_partial()</a>.
</div>
</div><p>
<a class="anchor" name="gcbe7eddf4f9c19da91b742087fcc111a"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_writer_unrecurse" ref="gcbe7eddf4f9c19da91b742087fcc111a" args="(DBusTypeWriter *writer, DBusTypeWriter *sub)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_type_writer_unrecurse           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *&nbsp;</td>
          <td class="paramname"> <em>sub</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Closes a container created by <a class="el" href="group__DBusMarshal.html#g4c0a1036e59dac270141052d951baff2">_dbus_type_writer_recurse()</a> and writes any additional information to the values block. 
<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>writer</em>&nbsp;</td><td>the writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>sub</em>&nbsp;</td><td>the sub-writer created by <a class="el" href="group__DBusMarshal.html#g4c0a1036e59dac270141052d951baff2">_dbus_type_writer_recurse()</a> </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-marshal-recursive_8c-source.html#l02161">2161</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l00265">_dbus_marshal_set_uint32()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l01257">_dbus_type_to_string()</a>, DBusTypeWriter::array, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00071">DBusTypeWriter::byte_order</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00073">DBusTypeWriter::container_type</a>, <a class="el" href="dbus-protocol_8h-source.html#l00164">DBUS_DICT_ENTRY_END_CHAR</a>, <a class="el" href="dbus-protocol_8h-source.html#l00156">DBUS_STRUCT_END_CHAR</a>, <a class="el" href="dbus-protocol_8h-source.html#l00116">DBUS_TYPE_ARRAY</a>, <a class="el" href="dbus-protocol_8h-source.html#l00139">DBUS_TYPE_DICT_ENTRY</a>, <a class="el" href="dbus-protocol_8h-source.html#l00060">DBUS_TYPE_INVALID</a>, <a class="el" href="dbus-protocol_8h-source.html#l00132">DBUS_TYPE_STRUCT</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00080">DBusTypeWriter::type_pos</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00075">DBusTypeWriter::type_pos_is_expectation</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00079">DBusTypeWriter::type_str</a>, <a class="el" href="structDBusTypeWriter.html#fe24080d2be45fb6033833a1a38d5d1a">DBusTypeWriter::u</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00082">DBusTypeWriter::value_pos</a>, and <a class="el" href="dbus-marshal-recursive_8h-source.html#l00081">DBusTypeWriter::value_str</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-header_8c-source.html#l00514">_dbus_header_create()</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l01239">_dbus_header_set_field_basic()</a>, and <a class="el" href="dbus-message_8c-source.html#l02405">dbus_message_iter_close_container()</a>.
</div>
</div><p>
<a class="anchor" name="g0103b0214766b0ff1ca05bcc7f1e631b"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_writer_write_basic" ref="g0103b0214766b0ff1ca05bcc7f1e631b" args="(DBusTypeWriter *writer, int type, const void *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_type_writer_write_basic           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Writes out a basic type. 
<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>writer</em>&nbsp;</td><td>the writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>the type to write </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>the address of the value to write </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-marshal-recursive_8c-source.html#l02293">2293</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00121">_dbus_assert_not_reached</a>, <a class="el" href="dbus-string_8c-source.html#l00951">_dbus_string_alloc_space()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00075">DBusTypeWriter::type_pos_is_expectation</a>, and <a class="el" href="dbus-marshal-recursive_8h-source.html#l00079">DBusTypeWriter::type_str</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-header_8c-source.html#l00514">_dbus_header_create()</a>, and <a class="el" href="dbus-message_8c-source.html#l02232">dbus_message_iter_append_basic()</a>.
</div>
</div><p>
<a class="anchor" name="gcf99495cbed7462992b6a231563b4528"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_writer_write_fixed_multi" ref="gcf99495cbed7462992b6a231563b4528" args="(DBusTypeWriter *writer, int element_type, const void *value, int n_elements)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_type_writer_write_fixed_multi           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>element_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>n_elements</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Writes a block of fixed-length basic values, i.e. 
<p>
those that are both <a class="el" href="group__DBusSignature.html#g435ffc74ae015cc193175f5b864872bc">dbus_type_is_fixed()</a> and _dbus_type_is_basic(). The block must be written inside an array.<p>
The value parameter should be the address of said array of values, so e.g. if it's an array of double, pass in "const double**"<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>writer</em>&nbsp;</td><td>the writer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>element_type</em>&nbsp;</td><td>type of stuff in the array </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>address of the array </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>n_elements</em>&nbsp;</td><td>number of elements in the array </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-marshal-recursive_8c-source.html#l02341">2341</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-internals_8h-source.html#l00121">_dbus_assert_not_reached</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l01022">_dbus_marshal_write_fixed_multi()</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00073">DBusTypeWriter::container_type</a>, <a class="el" href="dbus-protocol_8h-source.html#l00116">DBUS_TYPE_ARRAY</a>, <a class="el" href="dbus-signature_8c-source.html#l00335">dbus_type_is_fixed()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00080">DBusTypeWriter::type_pos</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00075">DBusTypeWriter::type_pos_is_expectation</a>, and <a class="el" href="dbus-marshal-recursive_8h-source.html#l00082">DBusTypeWriter::value_pos</a>.
<p>
Referenced by <a class="el" href="dbus-message_8c-source.html#l02291">dbus_message_iter_append_fixed_array()</a>.
</div>
</div><p>
<a class="anchor" name="g4905750705d220efe9dfc71f49bedc11"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_writer_write_reader" ref="g4905750705d220efe9dfc71f49bedc11" args="(DBusTypeWriter *writer, DBusTypeReader *reader)" -->
<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_type_writer_write_reader           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *&nbsp;</td>
          <td class="paramname"> <em>reader</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Iterate through all values in the given reader, writing a copy of each value to the writer. 
<p>
The reader will be moved forward to its end position.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>writer</em>&nbsp;</td><td>the writer to copy to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reader</em>&nbsp;</td><td>the reader to copy from </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-marshal-recursive_8c-source.html#l02713">2713</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-marshal-recursive_8c-source.html#l02659">_dbus_type_writer_write_reader_partial()</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="g004da084963a3a74589b28611b9d8398"></a><!-- doxytag: member="dbus-marshal-recursive.c::_dbus_type_writer_write_reader_partial" ref="g004da084963a3a74589b28611b9d8398" args="(DBusTypeWriter *writer, DBusTypeReader *reader, const DBusTypeReader *start_after, int start_after_new_pos, int start_after_new_len, DBusList **fixups)" -->
<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_type_writer_write_reader_partial           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusTypeWriter.html">DBusTypeWriter</a> *&nbsp;</td>
          <td class="paramname"> <em>writer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *&nbsp;</td>
          <td class="paramname"> <em>reader</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a> *&nbsp;</td>
          <td class="paramname"> <em>start_after</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>start_after_new_pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>start_after_new_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&nbsp;</td>
          <td class="paramname"> <em>fixups</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Iterate through all values in the given reader, writing a copy of each value to the writer. 
<p>
The reader will be moved forward to its end position.<p>
If a reader start_after is provided, it should be a reader for the same data as the reader to be written. Only values occurring after the value pointed to by start_after will be written to the writer.<p>
If start_after is provided, then the copy of the reader will be partial. This means that array lengths will not have been copied. The assumption is that you wrote a new version of the value at start_after to the writer. You have to pass in the start position and length of the new value. (If you are deleting the value at start_after, pass in 0 for the length.)<p>
If the fixups parameter is non-<a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, then any array length that was read but not written due to start_after will be provided as a <a class="el" href="structDBusArrayLenFixup.html">DBusArrayLenFixup</a>. The fixup contains the position of the array length in the source data, and the correct array length assuming you combine the source data before start_after with the written data at start_after and beyond.<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>writer</em>&nbsp;</td><td>the writer to copy to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reader</em>&nbsp;</td><td>the reader to copy from </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>start_after</em>&nbsp;</td><td><a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> or a reader showing where to start </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>start_after_new_pos</em>&nbsp;</td><td>the position of start_after equivalent in the target data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>start_after_new_len</em>&nbsp;</td><td>the length of start_after equivalent in the target data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fixups</em>&nbsp;</td><td>list to append <a class="el" href="structDBusArrayLenFixup.html">DBusArrayLenFixup</a> if the write was partial </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-marshal-recursive_8c-source.html#l02659">2659</a> of file <a class="el" href="dbus-marshal-recursive_8c-source.html">dbus-marshal-recursive.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l01382">_dbus_string_delete()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l02729">_dbus_type_writer_set_enabled()</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00077">DBusTypeWriter::enabled</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00080">DBusTypeWriter::type_pos</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00079">DBusTypeWriter::type_str</a>, <a class="el" href="dbus-marshal-recursive_8h-source.html#l00082">DBusTypeWriter::value_pos</a>, and <a class="el" href="dbus-marshal-recursive_8h-source.html#l00081">DBusTypeWriter::value_str</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-recursive_8c-source.html#l02713">_dbus_type_writer_write_reader()</a>.
</div>
</div><p>
<a class="anchor" name="ge997884ec8091aacb5492c2b5a7eaef9"></a><!-- doxytag: member="dbus-marshal-validate.c::_dbus_validate_body_with_reason" ref="ge997884ec8091aacb5492c2b5a7eaef9" args="(const DBusString *expected_signature, int expected_signature_start, int byte_order, int *bytes_remaining, const DBusString *value_str, int value_pos, int len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusMarshal.html#g0c4521d30d6650a33673a4d7f9cc007c">DBusValidity</a> _dbus_validate_body_with_reason           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>expected_signature</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>expected_signature_start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>byte_order</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>bytes_remaining</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>value_str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>value_pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Verifies that the range of value_str from value_pos to value_end is a legitimate value of type expected_signature. 
<p>
If this function returns <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, it will be safe to iterate over the values with <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a>. The signature is assumed to be already valid.<p>
If bytes_remaining is not <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, then leftover bytes will be stored there and <a class="el" href="group__DBusMarshal.html#gg0c4521d30d6650a33673a4d7f9cc007ce68ac5067fe94cdcfb35e115f36298c8">DBUS_VALID</a> returned. If it is <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, then <a class="el" href="group__DBusMarshal.html#gg0c4521d30d6650a33673a4d7f9cc007c10bc3fdc9ca42108aa5a7e091f6aae52">DBUS_INVALID_TOO_MUCH_DATA</a> will be returned if bytes are left over.<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>expected_signature</em>&nbsp;</td><td>the expected types in the value_str </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>expected_signature_start</em>&nbsp;</td><td>where in expected_signature is the signature </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>byte_order</em>&nbsp;</td><td>the byte order </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>bytes_remaining</em>&nbsp;</td><td>place to store leftover bytes </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value_str</em>&nbsp;</td><td>the string containing the body </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value_pos</em>&nbsp;</td><td>where the values start </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>length of values after value_pos </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMarshal.html#gg0c4521d30d6650a33673a4d7f9cc007ce68ac5067fe94cdcfb35e115f36298c8">DBUS_VALID</a> if valid, reason why invalid otherwise </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-validate_8c-source.html#l00630">630</a> of file <a class="el" href="dbus-marshal-validate_8c-source.html">dbus-marshal-validate.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00745">_dbus_type_reader_init_types_only()</a>, <a class="el" href="group__DBusMarshal.html#gg0c4521d30d6650a33673a4d7f9cc007c10bc3fdc9ca42108aa5a7e091f6aae52">DBUS_INVALID_TOO_MUCH_DATA</a>, <a class="el" href="group__DBusMarshal.html#gg0c4521d30d6650a33673a4d7f9cc007ce68ac5067fe94cdcfb35e115f36298c8">DBUS_VALID</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-header_8c-source.html#l00948">_dbus_header_load()</a>.
</div>
</div><p>
<a class="anchor" name="gab91a04fa2a96b8ce8843beae7327cd0"></a><!-- doxytag: member="dbus-marshal-validate.c::_dbus_validate_bus_name" ref="gab91a04fa2a96b8ce8843beae7327cd0" args="(const DBusString *str, int start, int len)" -->
<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_validate_bus_name           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks that the given range of the string is a valid bus name in the D-Bus protocol. 
<p>
This includes a length restriction, etc., see the specification.<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000023">Todo:</a></b></dt><dd>this is inconsistent with most of <a class="el" href="structDBusString.html">DBusString</a> in that it allows a start,len range that extends past the string end.</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>str</em>&nbsp;</td><td>the string </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>start</em>&nbsp;</td><td>first byte index to check </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>number of bytes to check </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the byte range exists and is a valid name </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-validate_8c-source.html#l00955">955</a> of file <a class="el" href="dbus-marshal-validate_8c-source.html">dbus-marshal-validate.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-protocol_8h-source.html#l00174">DBUS_MAXIMUM_NAME_LENGTH</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, <a class="el" href="dbus-marshal-validate_8c-source.html#l00935">VALID_BUS_NAME_CHARACTER</a>, and <a class="el" href="dbus-marshal-validate_8c-source.html#l00926">VALID_INITIAL_BUS_NAME_CHARACTER</a>.
</div>
</div><p>
<a class="anchor" name="g6d8075f3b60e2e71aad061aa44b120fe"></a><!-- doxytag: member="dbus-marshal-validate.c::_dbus_validate_error_name" ref="g6d8075f3b60e2e71aad061aa44b120fe" args="(const DBusString *str, int start, int len)" -->
<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_validate_error_name           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks that the given range of the string is a valid error name in the D-Bus protocol. 
<p>
This includes a length restriction, etc., see the specification.<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000022">Todo:</a></b></dt><dd>this is inconsistent with most of <a class="el" href="structDBusString.html">DBusString</a> in that it allows a start,len range that extends past the string end.</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>str</em>&nbsp;</td><td>the string </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>start</em>&nbsp;</td><td>first byte index to check </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>number of bytes to check </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the byte range exists and is a valid name </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-validate_8c-source.html#l00914">914</a> of file <a class="el" href="dbus-marshal-validate_8c-source.html">dbus-marshal-validate.c</a>.
<p>
References <a class="el" href="dbus-marshal-validate_8c-source.html#l00777">_dbus_validate_interface()</a>.
</div>
</div><p>
<a class="anchor" name="g0ad919783f887a9b6f428e262beaeed9"></a><!-- doxytag: member="dbus-marshal-validate.c::_dbus_validate_interface" ref="g0ad919783f887a9b6f428e262beaeed9" args="(const DBusString *str, int start, int len)" -->
<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_validate_interface           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks that the given range of the string is a valid interface name in the D-Bus protocol. 
<p>
This includes a length restriction and an ASCII subset, see the specification.<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000020">Todo:</a></b></dt><dd>this is inconsistent with most of <a class="el" href="structDBusString.html">DBusString</a> in that it allows a start,len range that extends past the string end.</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>str</em>&nbsp;</td><td>the string </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>start</em>&nbsp;</td><td>first byte index to check </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>number of bytes to check </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the byte range exists and is a valid name </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-validate_8c-source.html#l00777">777</a> of file <a class="el" href="dbus-marshal-validate_8c-source.html">dbus-marshal-validate.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-protocol_8h-source.html#l00174">DBUS_MAXIMUM_NAME_LENGTH</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, <a class="el" href="dbus-marshal-validate_8c-source.html#l00680">VALID_INITIAL_NAME_CHARACTER</a>, and <a class="el" href="dbus-marshal-validate_8c-source.html#l00689">VALID_NAME_CHARACTER</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-validate_8c-source.html#l00914">_dbus_validate_error_name()</a>.
</div>
</div><p>
<a class="anchor" name="gf647272768029cb23a4e0d3f493587da"></a><!-- doxytag: member="dbus-marshal-validate.c::_dbus_validate_member" ref="gf647272768029cb23a4e0d3f493587da" args="(const DBusString *str, int start, int len)" -->
<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_validate_member           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks that the given range of the string is a valid member name in the D-Bus protocol. 
<p>
This includes a length restriction, etc., see the specification.<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000021">Todo:</a></b></dt><dd>this is inconsistent with most of <a class="el" href="structDBusString.html">DBusString</a> in that it allows a start,len range that extends past the string end.</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>str</em>&nbsp;</td><td>the string </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>start</em>&nbsp;</td><td>first byte index to check </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>number of bytes to check </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the byte range exists and is a valid name </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-validate_8c-source.html#l00853">853</a> of file <a class="el" href="dbus-marshal-validate_8c-source.html">dbus-marshal-validate.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-protocol_8h-source.html#l00174">DBUS_MAXIMUM_NAME_LENGTH</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, <a class="el" href="dbus-marshal-validate_8c-source.html#l00680">VALID_INITIAL_NAME_CHARACTER</a>, and <a class="el" href="dbus-marshal-validate_8c-source.html#l00689">VALID_NAME_CHARACTER</a>.
</div>
</div><p>
<a class="anchor" name="g616ba4a0280b10222930aedadb7ea8d9"></a><!-- doxytag: member="dbus-marshal-validate.c::_dbus_validate_path" ref="g616ba4a0280b10222930aedadb7ea8d9" args="(const DBusString *str, int start, int len)" -->
<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_validate_path           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks that the given range of the string is a valid object path name in the D-Bus protocol. 
<p>
Part of the validation ensures that the object path contains only ASCII.<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000018">Todo:</a></b></dt><dd>this is inconsistent with most of <a class="el" href="structDBusString.html">DBusString</a> in that it allows a start,len range that extends past the string end.</dd></dl>
<dl compact><dt><b><a class="el" href="todo.html#_todo000018">Todo:</a></b></dt><dd>change spec to disallow more things, such as spaces in the path name</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>str</em>&nbsp;</td><td>the string </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>start</em>&nbsp;</td><td>first byte index to check </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>number of bytes to check </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the byte range exists and is a valid name </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-validate_8c-source.html#l00712">712</a> of file <a class="el" href="dbus-marshal-validate_8c-source.html">dbus-marshal-validate.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, and <a class="el" href="dbus-marshal-validate_8c-source.html#l00689">VALID_NAME_CHARACTER</a>.
</div>
</div><p>
<a class="anchor" name="g8d7aa58f6484d5d24f275dd65f101676"></a><!-- doxytag: member="dbus-marshal-validate.c::_dbus_validate_signature" ref="g8d7aa58f6484d5d24f275dd65f101676" args="(const DBusString *str, int start, int len)" -->
<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_validate_signature           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Checks that the given range of the string is a valid message type signature in the D-Bus protocol. 
<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000024">Todo:</a></b></dt><dd>this is inconsistent with most of <a class="el" href="structDBusString.html">DBusString</a> in that it allows a start,len range that extends past the string end.</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>str</em>&nbsp;</td><td>the string </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>start</em>&nbsp;</td><td>first byte index to check </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>number of bytes to check </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the byte range exists and is a valid signature </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-validate_8c-source.html#l01054">1054</a> of file <a class="el" href="dbus-marshal-validate_8c-source.html">dbus-marshal-validate.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-marshal-validate_8c-source.html#l00050">_dbus_validate_signature_with_reason()</a>, <a class="el" href="group__DBusMarshal.html#gg0c4521d30d6650a33673a4d7f9cc007ce68ac5067fe94cdcfb35e115f36298c8">DBUS_VALID</a>, and <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>.
<p>
Referenced by <a class="el" href="dbus-signature_8c-source.html#l00231">dbus_signature_validate()</a>.
</div>
</div><p>
<a class="anchor" name="g42e50826b5cf62921728432a8e35292c"></a><!-- doxytag: member="dbus-marshal-validate.c::_dbus_validate_signature_with_reason" ref="g42e50826b5cf62921728432a8e35292c" args="(const DBusString *type_str, int type_pos, int len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusMarshal.html#g0c4521d30d6650a33673a4d7f9cc007c">DBusValidity</a> _dbus_validate_signature_with_reason           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>type_str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>type_pos</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Verifies that the range of type_str from type_pos to type_end is a valid signature. 
<p>
If this function returns <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, it will be safe to iterate over the signature with a types-only <a class="el" href="structDBusTypeReader.html">DBusTypeReader</a>. The range passed in should NOT include the terminating nul/DBUS_TYPE_INVALID.<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>type_str</em>&nbsp;</td><td>the string </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type_pos</em>&nbsp;</td><td>where the typecodes start </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>length of typecodes </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMarshal.html#gg0c4521d30d6650a33673a4d7f9cc007ce68ac5067fe94cdcfb35e115f36298c8">DBUS_VALID</a> if valid, reason why invalid otherwise </dd></dl>

<p>
Definition at line <a class="el" href="dbus-marshal-validate_8c-source.html#l00050">50</a> of file <a class="el" href="dbus-marshal-validate_8c-source.html">dbus-marshal-validate.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-internals_8h-source.html#l00207">_DBUS_INT32_MAX</a>, <a class="el" href="dbus-internals_8h-source.html#l00157">_DBUS_INT_TO_POINTER</a>, <a class="el" href="dbus-list_8c-source.html#l00246">_dbus_list_append()</a>, <a class="el" href="dbus-list_8c-source.html#l00549">_dbus_list_clear()</a>, <a class="el" href="dbus-list_8c-source.html#l00679">_dbus_list_pop_last()</a>, <a class="el" href="dbus-internals_8h-source.html#l00156">_DBUS_POINTER_TO_INT</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l01223">_dbus_type_is_valid()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00160">DBUS_DICT_ENTRY_BEGIN_CHAR</a>, <a class="el" href="dbus-protocol_8h-source.html#l00164">DBUS_DICT_ENTRY_END_CHAR</a>, <a class="el" href="dbus-protocol_8h-source.html#l00177">DBUS_MAXIMUM_SIGNATURE_LENGTH</a>, <a class="el" href="dbus-protocol_8h-source.html#l00215">DBUS_MAXIMUM_TYPE_RECURSION_DEPTH</a>, <a class="el" href="dbus-protocol_8h-source.html#l00152">DBUS_STRUCT_BEGIN_CHAR</a>, <a class="el" href="dbus-protocol_8h-source.html#l00156">DBUS_STRUCT_END_CHAR</a>, <a class="el" href="dbus-protocol_8h-source.html#l00116">DBUS_TYPE_ARRAY</a>, <a class="el" href="dbus-protocol_8h-source.html#l00070">DBUS_TYPE_BOOLEAN</a>, <a class="el" href="dbus-protocol_8h-source.html#l00066">DBUS_TYPE_BYTE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00139">DBUS_TYPE_DICT_ENTRY</a>, <a class="el" href="dbus-protocol_8h-source.html#l00098">DBUS_TYPE_DOUBLE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00074">DBUS_TYPE_INT16</a>, <a class="el" href="dbus-protocol_8h-source.html#l00082">DBUS_TYPE_INT32</a>, <a class="el" href="dbus-protocol_8h-source.html#l00090">DBUS_TYPE_INT64</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-protocol_8h-source.html#l00106">DBUS_TYPE_OBJECT_PATH</a>, <a class="el" href="dbus-protocol_8h-source.html#l00110">DBUS_TYPE_SIGNATURE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00102">DBUS_TYPE_STRING</a>, <a class="el" href="dbus-protocol_8h-source.html#l00132">DBUS_TYPE_STRUCT</a>, <a class="el" href="dbus-protocol_8h-source.html#l00078">DBUS_TYPE_UINT16</a>, <a class="el" href="dbus-protocol_8h-source.html#l00086">DBUS_TYPE_UINT32</a>, <a class="el" href="dbus-protocol_8h-source.html#l00094">DBUS_TYPE_UINT64</a>, <a class="el" href="dbus-protocol_8h-source.html#l00120">DBUS_TYPE_VARIANT</a>, <a class="el" href="group__DBusMarshal.html#gg0c4521d30d6650a33673a4d7f9cc007ce68ac5067fe94cdcfb35e115f36298c8">DBUS_VALID</a>, <a class="el" href="group__DBusMarshal.html#gg0c4521d30d6650a33673a4d7f9cc007c08cf1e84457c1f41acaf082de2060a65">DBUS_VALIDITY_UNKNOWN_OOM_ERROR</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-validate_8c-source.html#l01054">_dbus_validate_signature()</a>.
</div>
</div><p>
<a class="anchor" name="g7f3320a0b0f7633cdf5c149588ae9bd9"></a><!-- doxytag: member="dbus-marshal-basic.c::_dbus_verbose_bytes" ref="g7f3320a0b0f7633cdf5c149588ae9bd9" args="(const unsigned char *data, int len, int offset)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_verbose_bytes           </td>
          <td>(</td>
          <td class="paramtype">const unsigned char *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>offset</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
If in verbose mode, print a block of binary data. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>the data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>the length of the data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>where to start counting for byte indexes </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-basic_8c-source.html#l01316">1316</a> of file <a class="el" href="dbus-marshal-basic_8c-source.html">dbus-marshal-basic.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-protocol_8h-source.html#l00054">DBUS_BIG_ENDIAN</a>, and <a class="el" href="dbus-protocol_8h-source.html#l00053">DBUS_LITTLE_ENDIAN</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-basic_8c-source.html#l01402">_dbus_verbose_bytes_of_string()</a>.
</div>
</div><p>
<a class="anchor" name="g3926bb35edf78d114cf0c341fe3258e0"></a><!-- doxytag: member="dbus-marshal-basic.c::_dbus_verbose_bytes_of_string" ref="g3926bb35edf78d114cf0c341fe3258e0" args="(const DBusString *str, int start, int len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void _dbus_verbose_bytes_of_string           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Dump the given part of the string to verbose log. 
<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>&nbsp;</td><td>the string </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>start</em>&nbsp;</td><td>the start of range to dump </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>length of range </td></tr>
  </table>
</dl>

<p>
Definition at line <a class="el" href="dbus-marshal-basic_8c-source.html#l01402">1402</a> of file <a class="el" href="dbus-marshal-basic_8c-source.html">dbus-marshal-basic.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, and <a class="el" href="dbus-marshal-basic_8c-source.html#l01316">_dbus_verbose_bytes()</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00270">_dbus_read()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l01345">_dbus_type_reader_set_basic()</a>, and <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00330">_dbus_write()</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&nbsp;
<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>

Anon7 - 2021