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

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



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


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

<!-- Generated by Doxygen 1.7.6.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Linked list</div>  </div>
<div class="ingroups"><a class="el" href="group__DBusInternals.html">D-Bus secret internal implementation details</a></div></div><!--header-->
<div class="contents">

<p><a class="el" href="structDBusList.html" title="A node in a linked list.">DBusList</a> data structure.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structDBusList.html">DBusList</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A node in a linked list.  <a href="structDBusList.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#gaede4ace46d5ee497d75074bfec4490a2">_dbus_list_get_next_link</a>(list, link)&#160;&#160;&#160;((link)-&gt;next == *(list) ? <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> : (link)-&gt;next)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the next link in the list, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> if there are no more links.  <a href="#gaede4ace46d5ee497d75074bfec4490a2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#ga6637493bf5fc09bddb44ac295c475cae">_dbus_list_get_prev_link</a>(list, link)&#160;&#160;&#160;((link) == *(list) ? <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> : (link)-&gt;prev)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the previous link in the list, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> if there are no more links.  <a href="#ga6637493bf5fc09bddb44ac295c475cae"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDBusList.html">DBusList</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#gac20b9981531cef590d49a59240344cd8">_dbus_list_alloc_link</a> (void *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a linked list node.  <a href="#gac20b9981531cef590d49a59240344cd8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#ga6e824f717125ce40c549d5402e32610f">_dbus_list_free_link</a> (<a class="el" href="structDBusList.html">DBusList</a> *link)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees a linked list node allocated with _dbus_list_alloc_link.  <a href="#ga6e824f717125ce40c549d5402e32610f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#gad99045e79db46159babe69718f343053">_dbus_list_append</a> (<a class="el" href="structDBusList.html">DBusList</a> **list, void *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a value to the list.  <a href="#gad99045e79db46159babe69718f343053"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#gab4aa60e0466ac7075f3d1751909d6a52">_dbus_list_prepend</a> (<a class="el" href="structDBusList.html">DBusList</a> **list, void *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Prepends a value to the list.  <a href="#gab4aa60e0466ac7075f3d1751909d6a52"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#ga20e549175e2b8f450f907592dc39d953">_dbus_list_append_link</a> (<a class="el" href="structDBusList.html">DBusList</a> **list, <a class="el" href="structDBusList.html">DBusList</a> *link)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a link to the list.  <a href="#ga20e549175e2b8f450f907592dc39d953"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#gab3dd068e3bd8a319c0d12150785050a7">_dbus_list_prepend_link</a> (<a class="el" href="structDBusList.html">DBusList</a> **list, <a class="el" href="structDBusList.html">DBusList</a> *link)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Prepends a link to the list.  <a href="#gab3dd068e3bd8a319c0d12150785050a7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#ga2dacb82db59f0012951d8245017473c9">_dbus_list_insert_after</a> (<a class="el" href="structDBusList.html">DBusList</a> **list, <a class="el" href="structDBusList.html">DBusList</a> *after_this_link, void *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts data into the list after the given existing link.  <a href="#ga2dacb82db59f0012951d8245017473c9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#ga0d1fde0acf1330cb41a9c290c7ae87b5">_dbus_list_insert_before_link</a> (<a class="el" href="structDBusList.html">DBusList</a> **list, <a class="el" href="structDBusList.html">DBusList</a> *before_this_link, <a class="el" href="structDBusList.html">DBusList</a> *link)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts a link into the list before the given existing link.  <a href="#ga0d1fde0acf1330cb41a9c290c7ae87b5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#ga20f6b11dd53979b94b6c4822ff6c1141">_dbus_list_insert_after_link</a> (<a class="el" href="structDBusList.html">DBusList</a> **list, <a class="el" href="structDBusList.html">DBusList</a> *after_this_link, <a class="el" href="structDBusList.html">DBusList</a> *link)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts a link into the list after the given existing link.  <a href="#ga20f6b11dd53979b94b6c4822ff6c1141"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#ga202e6ac8ad3e4a9d4413e0248ffcf3e3">_dbus_list_remove</a> (<a class="el" href="structDBusList.html">DBusList</a> **list, void *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes a value from the list.  <a href="#ga202e6ac8ad3e4a9d4413e0248ffcf3e3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#gad93f1fc853914144e94fc7a7dc0945aa">_dbus_list_remove_last</a> (<a class="el" href="structDBusList.html">DBusList</a> **list, void *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes a value from the list.  <a href="#gad93f1fc853914144e94fc7a7dc0945aa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDBusList.html">DBusList</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#ga5929ad5253d2f538158e513e9df3002b">_dbus_list_find_last</a> (<a class="el" href="structDBusList.html">DBusList</a> **list, void *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds a value in the list.  <a href="#ga5929ad5253d2f538158e513e9df3002b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#ga57f1fc73dc1a4f8a7bf9860e000b1703">_dbus_list_unlink</a> (<a class="el" href="structDBusList.html">DBusList</a> **list, <a class="el" href="structDBusList.html">DBusList</a> *link)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the given link from the list, but doesn't free it.  <a href="#ga57f1fc73dc1a4f8a7bf9860e000b1703"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#ga40abea762d9cb44e5ec6b31b1769dc2e">_dbus_list_remove_link</a> (<a class="el" href="structDBusList.html">DBusList</a> **list, <a class="el" href="structDBusList.html">DBusList</a> *link)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes a link from the list.  <a href="#ga40abea762d9cb44e5ec6b31b1769dc2e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#gaa36d13444a050a923941c53650b72f9d">_dbus_list_clear</a> (<a class="el" href="structDBusList.html">DBusList</a> **list)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees all links in the list and sets the list head to <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a>.  <a href="#gaa36d13444a050a923941c53650b72f9d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDBusList.html">DBusList</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#ga1e26ce4fb4acb50593bd5ed2f4eeb3ae">_dbus_list_get_first_link</a> (<a class="el" href="structDBusList.html">DBusList</a> **list)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the first link in the list.  <a href="#ga1e26ce4fb4acb50593bd5ed2f4eeb3ae"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDBusList.html">DBusList</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#ga42736fb02458bfffed948a509962c059">_dbus_list_get_last_link</a> (<a class="el" href="structDBusList.html">DBusList</a> **list)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the last link in the list.  <a href="#ga42736fb02458bfffed948a509962c059"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#ga18afc36fff1636a71295bcc7a75dc4f6">_dbus_list_get_last</a> (<a class="el" href="structDBusList.html">DBusList</a> **list)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the last data in the list.  <a href="#ga18afc36fff1636a71295bcc7a75dc4f6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#ga254e18f698f5fc518bde031e723e67c6">_dbus_list_get_first</a> (<a class="el" href="structDBusList.html">DBusList</a> **list)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the first data in the list.  <a href="#ga254e18f698f5fc518bde031e723e67c6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDBusList.html">DBusList</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#gaab9a957eca9bf5466bbf377a23b4b25c">_dbus_list_pop_first_link</a> (<a class="el" href="structDBusList.html">DBusList</a> **list)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the first link in the list and returns it.  <a href="#gaab9a957eca9bf5466bbf377a23b4b25c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#gacb96c9d3e9a869e63b8db4f8913a5a60">_dbus_list_pop_first</a> (<a class="el" href="structDBusList.html">DBusList</a> **list)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the first value in the list and returns it.  <a href="#gacb96c9d3e9a869e63b8db4f8913a5a60"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#gaad2ba56c77f2bba8e1e8dcb4b24542a6">_dbus_list_pop_last</a> (<a class="el" href="structDBusList.html">DBusList</a> **list)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the last value in the list and returns it.  <a href="#gaad2ba56c77f2bba8e1e8dcb4b24542a6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#ga1a85785891866750c9438bc10ad0350a">_dbus_list_copy</a> (<a class="el" href="structDBusList.html">DBusList</a> **list, <a class="el" href="structDBusList.html">DBusList</a> **dest)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies a list.  <a href="#ga1a85785891866750c9438bc10ad0350a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#gaa2144a5489bb35b16b2b671488ad597c">_dbus_list_get_length</a> (<a class="el" href="structDBusList.html">DBusList</a> **list)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the length of a list.  <a href="#gaa2144a5489bb35b16b2b671488ad597c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#ga8dd69084b53361803a765e6d53d5b9d1">_dbus_list_foreach</a> (<a class="el" href="structDBusList.html">DBusList</a> **list, DBusForeachFunction function, void *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls the given function for each element in the list.  <a href="#ga8dd69084b53361803a765e6d53d5b9d1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusList.html#ga1d0e850f8e151630fa94d3b05e6038d9">_dbus_list_length_is_one</a> (<a class="el" href="structDBusList.html">DBusList</a> **list)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether length is exactly one.  <a href="#ga1d0e850f8e151630fa94d3b05e6038d9"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p><a class="el" href="structDBusList.html" title="A node in a linked list.">DBusList</a> data structure. </p>
<p>Types and functions related to <a class="el" href="structDBusList.html" title="A node in a linked list.">DBusList</a>. </p>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="gaede4ace46d5ee497d75074bfec4490a2"></a><!-- doxytag: member="dbus&#45;list.h::_dbus_list_get_next_link" ref="gaede4ace46d5ee497d75074bfec4490a2" args="(list, link)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define <a class="el" href="group__DBusList.html#gaede4ace46d5ee497d75074bfec4490a2">_dbus_list_get_next_link</a></td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">list, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">link&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;((link)-&gt;next == *(list) ? <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> : (link)-&gt;next)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the next link in the list, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> if there are no more links. </p>
<p>Used for iteration.</p>
<div class="fragment"><pre class="fragment"> <a class="code" href="structDBusList.html" title="A node in a linked list.">DBusList</a> *link;
 link = <a class="code" href="group__DBusList.html#ga1e26ce4fb4acb50593bd5ed2f4eeb3ae" title="Gets the first link in the list.">_dbus_list_get_first_link</a> (&amp;list);
 <span class="keywordflow">while</span> (link != <a class="code" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a>)
   {
     printf (<span class="stringliteral">&quot;value is %p\n&quot;</span>, link-&gt;<a class="code" href="structDBusList.html#a29ab457bcf9092252bb0c4282c727055" title="Data stored at this element.">data</a>);
     link = <a class="code" href="group__DBusList.html#gaede4ace46d5ee497d75074bfec4490a2" title="Gets the next link in the list, or NULL if there are no more links.">_dbus_list_get_next_link</a> (&amp;link);
   }
</pre></div><dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>address of the list head. </td></tr>
    <tr><td class="paramname">link</td><td>current link. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the next link, or NULL if none. </dd></dl>

<p>Definition at line <a class="el" href="dbus-list_8h_source.html#l00090">90</a> of file <a class="el" href="dbus-list_8h_source.html">dbus-list.h</a>.</p>

<p>Referenced by <a class="el" href="dbus-list_8c_source.html#l00542">_dbus_list_clear()</a>, <a class="el" href="dbus-list_8c_source.html#l00697">_dbus_list_copy()</a>, <a class="el" href="dbus-list_8c_source.html#l00759">_dbus_list_foreach()</a>, <a class="el" href="dbus-list_8c_source.html#l00730">_dbus_list_get_length()</a>, <a class="el" href="dbus-list_8c_source.html#l00415">_dbus_list_remove()</a>, <a class="el" href="dbus-object-tree_8c_source.html#l00903">_dbus_object_tree_dispatch_and_unlock()</a>, <a class="el" href="dbus-timeout_8c_source.html#l00239">_dbus_timeout_list_set_functions()</a>, <a class="el" href="dbus-watch_8c_source.html#l00296">_dbus_watch_list_set_functions()</a>, <a class="el" href="dbus-watch_8c_source.html#l00465">_dbus_watch_list_toggle_all_watches()</a>, <a class="el" href="dbus-address_8c_source.html#l00244">dbus_address_entry_get_value()</a>, <a class="el" href="dbus-connection_8c_source.html#l04549">dbus_connection_dispatch()</a>, and <a class="el" href="dbus-address_8c_source.html#l00363">dbus_parse_address()</a>.</p>

</div>
</div>
<a class="anchor" id="ga6637493bf5fc09bddb44ac295c475cae"></a><!-- doxytag: member="dbus&#45;list.h::_dbus_list_get_prev_link" ref="ga6637493bf5fc09bddb44ac295c475cae" args="(list, link)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define <a class="el" href="group__DBusList.html#ga6637493bf5fc09bddb44ac295c475cae">_dbus_list_get_prev_link</a></td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">list, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">link&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;((link) == *(list) ? <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> : (link)-&gt;prev)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the previous link in the list, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> if there are no more links. </p>
<p>Used for iteration.</p>
<div class="fragment"><pre class="fragment"> <a class="code" href="structDBusList.html" title="A node in a linked list.">DBusList</a> *link;
 link = <a class="code" href="group__DBusList.html#ga42736fb02458bfffed948a509962c059" title="Gets the last link in the list.">_dbus_list_get_last_link</a> (&amp;list);
 <span class="keywordflow">while</span> (link != <a class="code" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a>)
   {
     printf (<span class="stringliteral">&quot;value is %p\n&quot;</span>, link-&gt;<a class="code" href="structDBusList.html#a29ab457bcf9092252bb0c4282c727055" title="Data stored at this element.">data</a>);
     link = <a class="code" href="group__DBusList.html#ga6637493bf5fc09bddb44ac295c475cae" title="Gets the previous link in the list, or NULL if there are no more links.">_dbus_list_get_prev_link</a> (&amp;link);
   }
</pre></div><dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>address of the list head. </td></tr>
    <tr><td class="paramname">link</td><td>current link. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the previous link, or NULL if none. </dd></dl>

<p>Definition at line <a class="el" href="dbus-list_8h_source.html#l00091">91</a> of file <a class="el" href="dbus-list_8h_source.html">dbus-list.h</a>.</p>

<p>Referenced by <a class="el" href="dbus-list_8c_source.html#l00472">_dbus_list_find_last()</a>, and <a class="el" href="dbus-connection_8c_source.html#l05563">dbus_connection_remove_filter()</a>.</p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="gac20b9981531cef590d49a59240344cd8"></a><!-- doxytag: member="dbus&#45;list.c::_dbus_list_alloc_link" ref="gac20b9981531cef590d49a59240344cd8" args="(void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structDBusList.html">DBusList</a>* <a class="el" href="group__DBusList.html#gac20b9981531cef590d49a59240344cd8">_dbus_list_alloc_link</a> </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Allocates a linked list node. </p>
<p>Useful for preallocating nodes and using <a class="el" href="group__DBusList.html#ga20e549175e2b8f450f907592dc39d953" title="Appends a link to the list.">_dbus_list_append_link()</a> to avoid allocations.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>the value to store in the link. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a newly allocated link. </dd></dl>

<p>Definition at line <a class="el" href="dbus-list_8c_source.html#l00242">242</a> of file <a class="el" href="dbus-list_8c_source.html">dbus-list.c</a>.</p>

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

</div>
</div>
<a class="anchor" id="gad99045e79db46159babe69718f343053"></a><!-- doxytag: member="dbus&#45;list.c::_dbus_list_append" ref="gad99045e79db46159babe69718f343053" args="(DBusList **list, void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusList.html#gad99045e79db46159babe69718f343053">_dbus_list_append</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Appends a value to the list. </p>
<p>May return <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if insufficient memory exists to add a list link. This is a constant-time operation.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>address of the list head. </td></tr>
    <tr><td class="paramname">data</td><td>the value to append. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success. </dd></dl>

<p>Definition at line <a class="el" href="dbus-list_8c_source.html#l00270">270</a> of file <a class="el" href="dbus-list_8c_source.html">dbus-list.c</a>.</p>

<p>References <a class="el" href="dbus-list_8c_source.html#l00292">_dbus_list_prepend()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-list_8h_source.html#l00037">next</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-list_8c_source.html#l00697">_dbus_list_copy()</a>, <a class="el" href="dbus-object-tree_8c_source.html#l00903">_dbus_object_tree_dispatch_and_unlock()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00221">_dbus_split_paths_and_append()</a>, <a class="el" href="dbus-timeout_8c_source.html#l00310">_dbus_timeout_list_add_timeout()</a>, <a class="el" href="dbus-marshal-validate_8c_source.html#l00051">_dbus_validate_signature_with_reason()</a>, <a class="el" href="dbus-watch_8c_source.html#l00376">_dbus_watch_list_add_watch()</a>, <a class="el" href="dbus-connection_8c_source.html#l05511">dbus_connection_add_filter()</a>, and <a class="el" href="dbus-address_8c_source.html#l00363">dbus_parse_address()</a>.</p>

</div>
</div>
<a class="anchor" id="ga20e549175e2b8f450f907592dc39d953"></a><!-- doxytag: member="dbus&#45;list.c::_dbus_list_append_link" ref="ga20e549175e2b8f450f907592dc39d953" args="(DBusList **list, DBusList *link)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusList.html#ga20e549175e2b8f450f907592dc39d953">_dbus_list_append_link</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> *&#160;</td>
          <td class="paramname"><em>link</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Appends a link to the list. </p>
<p>Cannot fail due to out of memory. This is a constant-time operation.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>address of the list head. </td></tr>
    <tr><td class="paramname">link</td><td>the link to append. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-list_8c_source.html#l00315">315</a> of file <a class="el" href="dbus-list_8c_source.html">dbus-list.c</a>.</p>

<p>References <a class="el" href="dbus-list_8c_source.html#l00333">_dbus_list_prepend_link()</a>, and <a class="el" href="dbus-list_8h_source.html#l00037">next</a>.</p>

<p>Referenced by <a class="el" href="dbus-connection_8c_source.html#l00480">_dbus_connection_queue_received_message_link()</a>, <a class="el" href="dbus-connection_8c_source.html#l00545">_dbus_connection_queue_synthesized_message_link()</a>, <a class="el" href="dbus-list_8c_source.html#l00376">_dbus_list_insert_before_link()</a>, and <a class="el" href="dbus-message_8c_source.html#l00280">_dbus_message_add_counter_link()</a>.</p>

</div>
</div>
<a class="anchor" id="gaa36d13444a050a923941c53650b72f9d"></a><!-- doxytag: member="dbus&#45;list.c::_dbus_list_clear" ref="gaa36d13444a050a923941c53650b72f9d" args="(DBusList **list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusList.html#gaa36d13444a050a923941c53650b72f9d">_dbus_list_clear</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>list</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Frees all links in the list and sets the list head to <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a>. </p>
<p>Does not free the data in each link, for obvious reasons. This is a linear-time operation.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>address of the list head. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-list_8c_source.html#l00542">542</a> of file <a class="el" href="dbus-list_8c_source.html">dbus-list.c</a>.</p>

<p>References <a class="el" href="dbus-list_8h_source.html#l00090">_dbus_list_get_next_link</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-auth_8c_source.html#l02346">_dbus_auth_unref()</a>, <a class="el" href="dbus-list_8c_source.html#l00697">_dbus_list_copy()</a>, <a class="el" href="dbus-message_8c_source.html#l03925">_dbus_message_loader_unref()</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00172">_dbus_pending_call_set_reply_unlocked()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00221">_dbus_split_paths_and_append()</a>, <a class="el" href="dbus-timeout_8c_source.html#l00211">_dbus_timeout_list_free()</a>, <a class="el" href="dbus-marshal-validate_8c_source.html#l00051">_dbus_validate_signature_with_reason()</a>, <a class="el" href="dbus-watch_8c_source.html#l00249">_dbus_watch_list_free()</a>, <a class="el" href="dbus-connection_8c_source.html#l04549">dbus_connection_dispatch()</a>, and <a class="el" href="dbus-address_8c_source.html#l00363">dbus_parse_address()</a>.</p>

</div>
</div>
<a class="anchor" id="ga1a85785891866750c9438bc10ad0350a"></a><!-- doxytag: member="dbus&#45;list.c::_dbus_list_copy" ref="ga1a85785891866750c9438bc10ad0350a" args="(DBusList **list, DBusList **dest)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusList.html#ga1a85785891866750c9438bc10ad0350a">_dbus_list_copy</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>dest</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copies a list. </p>
<p>This is a linear-time operation. If there isn't enough memory to copy the entire list, the destination list will be set to <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>address of the head of the list to copy. </td></tr>
    <tr><td class="paramname">dest</td><td>address where the copied list should be placed. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory. </dd></dl>

<p>Definition at line <a class="el" href="dbus-list_8c_source.html#l00697">697</a> of file <a class="el" href="dbus-list_8c_source.html">dbus-list.c</a>.</p>

<p>References <a class="el" href="dbus-list_8c_source.html#l00270">_dbus_list_append()</a>, <a class="el" href="dbus-list_8c_source.html#l00542">_dbus_list_clear()</a>, <a class="el" href="dbus-list_8h_source.html#l00090">_dbus_list_get_next_link</a>, <a class="el" href="dbus-list_8h_source.html#l00038">data</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

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

</div>
</div>
<a class="anchor" id="ga5929ad5253d2f538158e513e9df3002b"></a><!-- doxytag: member="dbus&#45;list.c::_dbus_list_find_last" ref="ga5929ad5253d2f538158e513e9df3002b" args="(DBusList **list, void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structDBusList.html">DBusList</a>* <a class="el" href="group__DBusList.html#ga5929ad5253d2f538158e513e9df3002b">_dbus_list_find_last</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Finds a value in the list. </p>
<p>Returns the last link with value equal to the given data pointer. This is a linear-time operation. Returns <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> if no value found that matches.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>address of the list head. </td></tr>
    <tr><td class="paramname">data</td><td>the value to find. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the link if found </dd></dl>

<p>Definition at line <a class="el" href="dbus-list_8c_source.html#l00472">472</a> of file <a class="el" href="dbus-list_8c_source.html">dbus-list.c</a>.</p>

<p>References <a class="el" href="dbus-list_8c_source.html#l00580">_dbus_list_get_last_link()</a>, <a class="el" href="dbus-list_8h_source.html#l00091">_dbus_list_get_prev_link</a>, <a class="el" href="dbus-list_8h_source.html#l00038">data</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-list_8c_source.html#l00446">_dbus_list_remove_last()</a>, <a class="el" href="dbus-message_8c_source.html#l04302">_dbus_message_loader_queue_messages()</a>, and <a class="el" href="dbus-message_8c_source.html#l00352">_dbus_message_remove_counter()</a>.</p>

</div>
</div>
<a class="anchor" id="ga8dd69084b53361803a765e6d53d5b9d1"></a><!-- doxytag: member="dbus&#45;list.c::_dbus_list_foreach" ref="ga8dd69084b53361803a765e6d53d5b9d1" args="(DBusList **list, DBusForeachFunction function, void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusList.html#ga8dd69084b53361803a765e6d53d5b9d1">_dbus_list_foreach</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DBusForeachFunction&#160;</td>
          <td class="paramname"><em>function</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Calls the given function for each element in the list. </p>
<p>The function is passed the list element as its first argument, and the given data as its second argument.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>address of the head of the list. </td></tr>
    <tr><td class="paramname">function</td><td>function to call for each element. </td></tr>
    <tr><td class="paramname">data</td><td>extra data for the function. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-list_8c_source.html#l00759">759</a> of file <a class="el" href="dbus-list_8c_source.html">dbus-list.c</a>.</p>

<p>References <a class="el" href="dbus-list_8h_source.html#l00090">_dbus_list_get_next_link</a>, <a class="el" href="dbus-list_8h_source.html#l00038">data</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-message_8c_source.html#l03925">_dbus_message_loader_unref()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00221">_dbus_split_paths_and_append()</a>, <a class="el" href="dbus-timeout_8c_source.html#l00211">_dbus_timeout_list_free()</a>, <a class="el" href="dbus-timeout_8c_source.html#l00239">_dbus_timeout_list_set_functions()</a>, <a class="el" href="dbus-watch_8c_source.html#l00249">_dbus_watch_list_free()</a>, <a class="el" href="dbus-watch_8c_source.html#l00296">_dbus_watch_list_set_functions()</a>, and <a class="el" href="dbus-connection_8c_source.html#l04549">dbus_connection_dispatch()</a>.</p>

</div>
</div>
<a class="anchor" id="ga6e824f717125ce40c549d5402e32610f"></a><!-- doxytag: member="dbus&#45;list.c::_dbus_list_free_link" ref="ga6e824f717125ce40c549d5402e32610f" args="(DBusList *link)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusList.html#ga6e824f717125ce40c549d5402e32610f">_dbus_list_free_link</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> *&#160;</td>
          <td class="paramname"><em>link</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Frees a linked list node allocated with _dbus_list_alloc_link. </p>
<p>Does not free the data in the node.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">link</td><td>the list node </td></tr>
  </table>
  </dd>
</dl>

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

<p>Referenced by <a class="el" href="dbus-connection_8c_source.html#l01249">_dbus_connection_new_for_transport()</a>, <a class="el" href="dbus-connection_8c_source.html#l00399">_dbus_connection_unlock()</a>, <a class="el" href="dbus-connection_8c_source.html#l04549">dbus_connection_dispatch()</a>, and <a class="el" href="dbus-connection_8c_source.html#l03191">dbus_connection_free_preallocated_send()</a>.</p>

</div>
</div>
<a class="anchor" id="ga254e18f698f5fc518bde031e723e67c6"></a><!-- doxytag: member="dbus&#45;list.c::_dbus_list_get_first" ref="ga254e18f698f5fc518bde031e723e67c6" args="(DBusList **list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* <a class="el" href="group__DBusList.html#ga254e18f698f5fc518bde031e723e67c6">_dbus_list_get_first</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>list</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the first data in the list. </p>
<p>This is a constant-time operation.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>address of the list head. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the first data in the list, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> for an empty list. </dd></dl>

<p>Definition at line <a class="el" href="dbus-list_8c_source.html#l00612">612</a> of file <a class="el" href="dbus-list_8c_source.html">dbus-list.c</a>.</p>

<p>References <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

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

</div>
</div>
<a class="anchor" id="ga1e26ce4fb4acb50593bd5ed2f4eeb3ae"></a><!-- doxytag: member="dbus&#45;list.c::_dbus_list_get_first_link" ref="ga1e26ce4fb4acb50593bd5ed2f4eeb3ae" args="(DBusList **list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structDBusList.html">DBusList</a>* <a class="el" href="group__DBusList.html#ga1e26ce4fb4acb50593bd5ed2f4eeb3ae">_dbus_list_get_first_link</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>list</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the first link in the list. </p>
<p>This is a constant-time operation.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>address of the list head. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the first link, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> for an empty list. </dd></dl>

<p>Definition at line <a class="el" href="dbus-list_8c_source.html#l00567">567</a> of file <a class="el" href="dbus-list_8c_source.html">dbus-list.c</a>.</p>

<p>Referenced by <a class="el" href="dbus-list_8c_source.html#l00649">_dbus_list_pop_first()</a>, <a class="el" href="dbus-list_8c_source.html#l00628">_dbus_list_pop_first_link()</a>, <a class="el" href="dbus-object-tree_8c_source.html#l00903">_dbus_object_tree_dispatch_and_unlock()</a>, <a class="el" href="dbus-timeout_8c_source.html#l00239">_dbus_timeout_list_set_functions()</a>, <a class="el" href="dbus-watch_8c_source.html#l00296">_dbus_watch_list_set_functions()</a>, <a class="el" href="dbus-watch_8c_source.html#l00465">_dbus_watch_list_toggle_all_watches()</a>, <a class="el" href="dbus-address_8c_source.html#l00244">dbus_address_entry_get_value()</a>, <a class="el" href="dbus-connection_8c_source.html#l04549">dbus_connection_dispatch()</a>, and <a class="el" href="dbus-address_8c_source.html#l00363">dbus_parse_address()</a>.</p>

</div>
</div>
<a class="anchor" id="ga18afc36fff1636a71295bcc7a75dc4f6"></a><!-- doxytag: member="dbus&#45;list.c::_dbus_list_get_last" ref="ga18afc36fff1636a71295bcc7a75dc4f6" args="(DBusList **list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* <a class="el" href="group__DBusList.html#ga18afc36fff1636a71295bcc7a75dc4f6">_dbus_list_get_last</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>list</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the last data in the list. </p>
<p>This is a constant-time operation.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>address of the list head. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the last data in the list, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> for an empty list. </dd></dl>

<p>Definition at line <a class="el" href="dbus-list_8c_source.html#l00596">596</a> of file <a class="el" href="dbus-list_8c_source.html">dbus-list.c</a>.</p>

<p>References <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

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

</div>
</div>
<a class="anchor" id="ga42736fb02458bfffed948a509962c059"></a><!-- doxytag: member="dbus&#45;list.c::_dbus_list_get_last_link" ref="ga42736fb02458bfffed948a509962c059" args="(DBusList **list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structDBusList.html">DBusList</a>* <a class="el" href="group__DBusList.html#ga42736fb02458bfffed948a509962c059">_dbus_list_get_last_link</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>list</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the last link in the list. </p>
<p>This is a constant-time operation.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>address of the list head. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the last link, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> for an empty list. </dd></dl>

<p>Definition at line <a class="el" href="dbus-list_8c_source.html#l00580">580</a> of file <a class="el" href="dbus-list_8c_source.html">dbus-list.c</a>.</p>

<p>References <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-connection_8c_source.html#l00625">_dbus_connection_message_sent_unlocked()</a>, <a class="el" href="dbus-list_8c_source.html#l00472">_dbus_list_find_last()</a>, <a class="el" href="dbus-list_8c_source.html#l00672">_dbus_list_pop_last()</a>, and <a class="el" href="dbus-connection_8c_source.html#l05563">dbus_connection_remove_filter()</a>.</p>

</div>
</div>
<a class="anchor" id="gaa2144a5489bb35b16b2b671488ad597c"></a><!-- doxytag: member="dbus&#45;list.c::_dbus_list_get_length" ref="gaa2144a5489bb35b16b2b671488ad597c" args="(DBusList **list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__DBusList.html#gaa2144a5489bb35b16b2b671488ad597c">_dbus_list_get_length</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>list</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the length of a list. </p>
<p>This is a linear-time operation.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>address of the head of the list </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of elements in the list. </dd></dl>

<p>Definition at line <a class="el" href="dbus-list_8c_source.html#l00730">730</a> of file <a class="el" href="dbus-list_8c_source.html">dbus-list.c</a>.</p>

<p>References <a class="el" href="dbus-list_8h_source.html#l00090">_dbus_list_get_next_link</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

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

</div>
</div>
<a class="anchor" id="ga2dacb82db59f0012951d8245017473c9"></a><!-- doxytag: member="dbus&#45;list.c::_dbus_list_insert_after" ref="ga2dacb82db59f0012951d8245017473c9" args="(DBusList **list, DBusList *after_this_link, void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusList.html#ga2dacb82db59f0012951d8245017473c9">_dbus_list_insert_after</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> *&#160;</td>
          <td class="paramname"><em>after_this_link</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Inserts data into the list after the given existing link. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>the list to modify </td></tr>
    <tr><td class="paramname">after_this_link</td><td>existing link to insert after, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> to prepend </td></tr>
    <tr><td class="paramname">data</td><td>the value to insert </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if memory allocation fails </dd></dl>

<p>Definition at line <a class="el" href="dbus-list_8c_source.html#l00348">348</a> of file <a class="el" href="dbus-list_8c_source.html">dbus-list.c</a>.</p>

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

</div>
</div>
<a class="anchor" id="ga20f6b11dd53979b94b6c4822ff6c1141"></a><!-- doxytag: member="dbus&#45;list.c::_dbus_list_insert_after_link" ref="ga20f6b11dd53979b94b6c4822ff6c1141" args="(DBusList **list, DBusList *after_this_link, DBusList *link)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusList.html#ga20f6b11dd53979b94b6c4822ff6c1141">_dbus_list_insert_after_link</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> *&#160;</td>
          <td class="paramname"><em>after_this_link</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> *&#160;</td>
          <td class="paramname"><em>link</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Inserts a link into the list after the given existing link. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>the list to modify </td></tr>
    <tr><td class="paramname">after_this_link</td><td>existing link to insert after, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> to prepend </td></tr>
    <tr><td class="paramname">link</td><td>the link to insert </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-list_8c_source.html#l00394">394</a> of file <a class="el" href="dbus-list_8c_source.html">dbus-list.c</a>.</p>

<p>References <a class="el" href="dbus-list_8c_source.html#l00333">_dbus_list_prepend_link()</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

</div>
</div>
<a class="anchor" id="ga0d1fde0acf1330cb41a9c290c7ae87b5"></a><!-- doxytag: member="dbus&#45;list.c::_dbus_list_insert_before_link" ref="ga0d1fde0acf1330cb41a9c290c7ae87b5" args="(DBusList **list, DBusList *before_this_link, DBusList *link)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusList.html#ga0d1fde0acf1330cb41a9c290c7ae87b5">_dbus_list_insert_before_link</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> *&#160;</td>
          <td class="paramname"><em>before_this_link</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> *&#160;</td>
          <td class="paramname"><em>link</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Inserts a link into the list before the given existing link. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>the list to modify </td></tr>
    <tr><td class="paramname">before_this_link</td><td>existing link to insert before, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> to append </td></tr>
    <tr><td class="paramname">link</td><td>the link to insert </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-list_8c_source.html#l00376">376</a> of file <a class="el" href="dbus-list_8c_source.html">dbus-list.c</a>.</p>

<p>References <a class="el" href="dbus-list_8c_source.html#l00315">_dbus_list_append_link()</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

</div>
</div>
<a class="anchor" id="ga1d0e850f8e151630fa94d3b05e6038d9"></a><!-- doxytag: member="dbus&#45;list.c::_dbus_list_length_is_one" ref="ga1d0e850f8e151630fa94d3b05e6038d9" args="(DBusList **list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusList.html#ga1d0e850f8e151630fa94d3b05e6038d9">_dbus_list_length_is_one</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>list</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Check whether length is exactly one. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>the list </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if length is exactly one </dd></dl>

<p>Definition at line <a class="el" href="dbus-list_8c_source.html#l00783">783</a> of file <a class="el" href="dbus-list_8c_source.html">dbus-list.c</a>.</p>

<p>References <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

</div>
</div>
<a class="anchor" id="gacb96c9d3e9a869e63b8db4f8913a5a60"></a><!-- doxytag: member="dbus&#45;list.c::_dbus_list_pop_first" ref="gacb96c9d3e9a869e63b8db4f8913a5a60" args="(DBusList **list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* <a class="el" href="group__DBusList.html#gacb96c9d3e9a869e63b8db4f8913a5a60">_dbus_list_pop_first</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>list</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Removes the first value in the list and returns it. </p>
<p>This is a constant-time operation.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>address of the list head. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the first data in the list, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> for an empty list. </dd></dl>

<p>Definition at line <a class="el" href="dbus-list_8c_source.html#l00649">649</a> of file <a class="el" href="dbus-list_8c_source.html">dbus-list.c</a>.</p>

<p>References <a class="el" href="dbus-list_8c_source.html#l00567">_dbus_list_get_first_link()</a>, <a class="el" href="dbus-list_8c_source.html#l00527">_dbus_list_remove_link()</a>, <a class="el" href="dbus-list_8h_source.html#l00038">data</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-message_8c_source.html#l04382">_dbus_message_loader_pop_message()</a>, and <a class="el" href="dbus-connection_8c_source.html#l03935">dbus_connection_steal_borrowed_message()</a>.</p>

</div>
</div>
<a class="anchor" id="gaab9a957eca9bf5466bbf377a23b4b25c"></a><!-- doxytag: member="dbus&#45;list.c::_dbus_list_pop_first_link" ref="gaab9a957eca9bf5466bbf377a23b4b25c" args="(DBusList **list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structDBusList.html">DBusList</a>* <a class="el" href="group__DBusList.html#gaab9a957eca9bf5466bbf377a23b4b25c">_dbus_list_pop_first_link</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>list</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Removes the first link in the list and returns it. </p>
<p>This is a constant-time operation.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>address of the list head. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the first link in the list, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> for an empty list. </dd></dl>

<p>Definition at line <a class="el" href="dbus-list_8c_source.html#l00628">628</a> of file <a class="el" href="dbus-list_8c_source.html">dbus-list.c</a>.</p>

<p>References <a class="el" href="dbus-list_8c_source.html#l00567">_dbus_list_get_first_link()</a>, <a class="el" href="dbus-list_8c_source.html#l00499">_dbus_list_unlink()</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-connection_8c_source.html#l00399">_dbus_connection_unlock()</a>, and <a class="el" href="dbus-message_8c_source.html#l04396">_dbus_message_loader_pop_message_link()</a>.</p>

</div>
</div>
<a class="anchor" id="gaad2ba56c77f2bba8e1e8dcb4b24542a6"></a><!-- doxytag: member="dbus&#45;list.c::_dbus_list_pop_last" ref="gaad2ba56c77f2bba8e1e8dcb4b24542a6" args="(DBusList **list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* <a class="el" href="group__DBusList.html#gaad2ba56c77f2bba8e1e8dcb4b24542a6">_dbus_list_pop_last</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>list</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Removes the last value in the list and returns it. </p>
<p>This is a constant-time operation.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>address of the list head. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the last data in the list, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> for an empty list. </dd></dl>

<p>Definition at line <a class="el" href="dbus-list_8c_source.html#l00672">672</a> of file <a class="el" href="dbus-list_8c_source.html">dbus-list.c</a>.</p>

<p>References <a class="el" href="dbus-list_8c_source.html#l00580">_dbus_list_get_last_link()</a>, <a class="el" href="dbus-list_8c_source.html#l00527">_dbus_list_remove_link()</a>, <a class="el" href="dbus-list_8h_source.html#l00038">data</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-marshal-validate_8c_source.html#l00051">_dbus_validate_signature_with_reason()</a>.</p>

</div>
</div>
<a class="anchor" id="gab4aa60e0466ac7075f3d1751909d6a52"></a><!-- doxytag: member="dbus&#45;list.c::_dbus_list_prepend" ref="gab4aa60e0466ac7075f3d1751909d6a52" args="(DBusList **list, void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusList.html#gab4aa60e0466ac7075f3d1751909d6a52">_dbus_list_prepend</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Prepends a value to the list. </p>
<p>May return <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if insufficient memory exists to add a list link. This is a constant-time operation.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>address of the list head. </td></tr>
    <tr><td class="paramname">data</td><td>the value to prepend. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success. </dd></dl>

<p>Definition at line <a class="el" href="dbus-list_8c_source.html#l00292">292</a> of file <a class="el" href="dbus-list_8c_source.html">dbus-list.c</a>.</p>

<p>References <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-list_8c_source.html#l00270">_dbus_list_append()</a>, and <a class="el" href="dbus-list_8c_source.html#l00348">_dbus_list_insert_after()</a>.</p>

</div>
</div>
<a class="anchor" id="gab3dd068e3bd8a319c0d12150785050a7"></a><!-- doxytag: member="dbus&#45;list.c::_dbus_list_prepend_link" ref="gab3dd068e3bd8a319c0d12150785050a7" args="(DBusList **list, DBusList *link)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusList.html#gab3dd068e3bd8a319c0d12150785050a7">_dbus_list_prepend_link</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> *&#160;</td>
          <td class="paramname"><em>link</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Prepends a link to the list. </p>
<p>Cannot fail due to out of memory. This is a constant-time operation.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>address of the list head. </td></tr>
    <tr><td class="paramname">link</td><td>the link to prepend. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-list_8c_source.html#l00333">333</a> of file <a class="el" href="dbus-list_8c_source.html">dbus-list.c</a>.</p>

<p>Referenced by <a class="el" href="dbus-connection_8c_source.html#l00625">_dbus_connection_message_sent_unlocked()</a>, <a class="el" href="dbus-list_8c_source.html#l00315">_dbus_list_append_link()</a>, <a class="el" href="dbus-list_8c_source.html#l00394">_dbus_list_insert_after_link()</a>, <a class="el" href="dbus-message_8c_source.html#l04408">_dbus_message_loader_putback_message_link()</a>, and <a class="el" href="dbus-connection_8c_source.html#l04549">dbus_connection_dispatch()</a>.</p>

</div>
</div>
<a class="anchor" id="ga202e6ac8ad3e4a9d4413e0248ffcf3e3"></a><!-- doxytag: member="dbus&#45;list.c::_dbus_list_remove" ref="ga202e6ac8ad3e4a9d4413e0248ffcf3e3" args="(DBusList **list, void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusList.html#ga202e6ac8ad3e4a9d4413e0248ffcf3e3">_dbus_list_remove</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Removes a value from the list. </p>
<p>Only removes the first value equal to the given data pointer, even if multiple values exist which match. This is a linear-time operation.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>address of the list head. </td></tr>
    <tr><td class="paramname">data</td><td>the value to remove. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if a value was found to remove. </dd></dl>

<p>Definition at line <a class="el" href="dbus-list_8c_source.html#l00415">415</a> of file <a class="el" href="dbus-list_8c_source.html">dbus-list.c</a>.</p>

<p>References <a class="el" href="dbus-list_8h_source.html#l00090">_dbus_list_get_next_link</a>, <a class="el" href="dbus-list_8c_source.html#l00527">_dbus_list_remove_link()</a>, <a class="el" href="dbus-list_8h_source.html#l00038">data</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-timeout_8c_source.html#l00340">_dbus_timeout_list_remove_timeout()</a>, and <a class="el" href="dbus-watch_8c_source.html#l00409">_dbus_watch_list_remove_watch()</a>.</p>

</div>
</div>
<a class="anchor" id="gad93f1fc853914144e94fc7a7dc0945aa"></a><!-- doxytag: member="dbus&#45;list.c::_dbus_list_remove_last" ref="gad93f1fc853914144e94fc7a7dc0945aa" args="(DBusList **list, void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusList.html#gad93f1fc853914144e94fc7a7dc0945aa">_dbus_list_remove_last</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Removes a value from the list. </p>
<p>Only removes the last value equal to the given data pointer, even if multiple values exist which match. This is a linear-time operation.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>address of the list head. </td></tr>
    <tr><td class="paramname">data</td><td>the value to remove. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if a value was found to remove. </dd></dl>

<p>Definition at line <a class="el" href="dbus-list_8c_source.html#l00446">446</a> of file <a class="el" href="dbus-list_8c_source.html">dbus-list.c</a>.</p>

<p>References <a class="el" href="dbus-list_8c_source.html#l00472">_dbus_list_find_last()</a>, <a class="el" href="dbus-list_8c_source.html#l00527">_dbus_list_remove_link()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-timeout_8c_source.html#l00310">_dbus_timeout_list_add_timeout()</a>, and <a class="el" href="dbus-watch_8c_source.html#l00376">_dbus_watch_list_add_watch()</a>.</p>

</div>
</div>
<a class="anchor" id="ga40abea762d9cb44e5ec6b31b1769dc2e"></a><!-- doxytag: member="dbus&#45;list.c::_dbus_list_remove_link" ref="ga40abea762d9cb44e5ec6b31b1769dc2e" args="(DBusList **list, DBusList *link)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusList.html#ga40abea762d9cb44e5ec6b31b1769dc2e">_dbus_list_remove_link</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> *&#160;</td>
          <td class="paramname"><em>link</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Removes a link from the list. </p>
<p>This is a constant-time operation.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>address of the list head. </td></tr>
    <tr><td class="paramname">link</td><td>the list link to remove. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-list_8c_source.html#l00527">527</a> of file <a class="el" href="dbus-list_8c_source.html">dbus-list.c</a>.</p>

<p>References <a class="el" href="dbus-list_8c_source.html#l00499">_dbus_list_unlink()</a>.</p>

<p>Referenced by <a class="el" href="dbus-list_8c_source.html#l00649">_dbus_list_pop_first()</a>, <a class="el" href="dbus-list_8c_source.html#l00672">_dbus_list_pop_last()</a>, <a class="el" href="dbus-list_8c_source.html#l00415">_dbus_list_remove()</a>, <a class="el" href="dbus-list_8c_source.html#l00446">_dbus_list_remove_last()</a>, <a class="el" href="dbus-message_8c_source.html#l00352">_dbus_message_remove_counter()</a>, <a class="el" href="dbus-object-tree_8c_source.html#l00903">_dbus_object_tree_dispatch_and_unlock()</a>, and <a class="el" href="dbus-connection_8c_source.html#l05563">dbus_connection_remove_filter()</a>.</p>

</div>
</div>
<a class="anchor" id="ga57f1fc73dc1a4f8a7bf9860e000b1703"></a><!-- doxytag: member="dbus&#45;list.c::_dbus_list_unlink" ref="ga57f1fc73dc1a4f8a7bf9860e000b1703" args="(DBusList **list, DBusList *link)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusList.html#ga57f1fc73dc1a4f8a7bf9860e000b1703">_dbus_list_unlink</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> *&#160;</td>
          <td class="paramname"><em>link</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Removes the given link from the list, but doesn't free it. </p>
<p><a class="el" href="group__DBusList.html#ga40abea762d9cb44e5ec6b31b1769dc2e" title="Removes a link from the list.">_dbus_list_remove_link()</a> both removes the link and also frees it.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>the list </td></tr>
    <tr><td class="paramname">link</td><td>the link in the list </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-list_8c_source.html#l00499">499</a> of file <a class="el" href="dbus-list_8c_source.html">dbus-list.c</a>.</p>

<p>References <a class="el" href="dbus-list_8h_source.html#l00037">next</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-list_8h_source.html#l00036">prev</a>.</p>

<p>Referenced by <a class="el" href="dbus-connection_8c_source.html#l00625">_dbus_connection_message_sent_unlocked()</a>, <a class="el" href="dbus-list_8c_source.html#l00628">_dbus_list_pop_first_link()</a>, and <a class="el" href="dbus-list_8c_source.html#l00527">_dbus_list_remove_link()</a>.</p>

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


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

</body>
</html>