<!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"/> <title>libannodex: anx_list.h File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.6.2-20100208 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> </div> <div class="contents"> <h1>anx_list.h File Reference</h1> <p>A doubly linked list. <a href="#_details">More...</a></p> <code>#include <<a class="el" href="anx__core_8h_source.html">annodex/anx_core.h</a>></code><br/> <p><a href="anx__list_8h_source.html">Go to the source code of this file.</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Data Structures</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__AnxList.html">_AnxList</a></td></tr> <tr><td colspan="2"><h2>Typedefs</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb46a16dc8f16927f80e4b5679bc2d3f"></a><!-- doxytag: member="anx_list.h::AnxList" ref="acb46a16dc8f16927f80e4b5679bc2d3f" args="" --> typedef struct <a class="el" href="struct__AnxList.html">_AnxList</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__list_8h.html#acb46a16dc8f16927f80e4b5679bc2d3f">AnxList</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A doubly linked list. <br/></td></tr> <tr><td colspan="2"><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct__AnxList.html">AnxList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__list_8h.html#a084ce7da2a33986ff53ccb7e7f88091b">anx_list_new</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a new list. <a href="#a084ce7da2a33986ff53ccb7e7f88091b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct__AnxList.html">AnxList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__list_8h.html#a04a335b32a78d6bdfaab84e60cafadc5">anx_list_clone</a> (<a class="el" href="struct__AnxList.html">AnxList</a> *list)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Clone a list using the default clone function. <a href="#a04a335b32a78d6bdfaab84e60cafadc5"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct__AnxList.html">AnxList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__list_8h.html#aa580f00e7a8bc2078ea7ca4dc3f4b6da">anx_list_clone_with</a> (<a class="el" href="struct__AnxList.html">AnxList</a> *list, <a class="el" href="anx__core_8h.html#a60b00aacbbed18e944c4917f532e1fdf">AnxCloneFunc</a> clone)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Clone a list using a custom clone function. <a href="#aa580f00e7a8bc2078ea7ca4dc3f4b6da"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct__AnxList.html">AnxList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__list_8h.html#a0e580d63c81f484d7211fd7ba03aea0d">anx_list_tail</a> (<a class="el" href="struct__AnxList.html">AnxList</a> *list)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return the tail element of a list. <a href="#a0e580d63c81f484d7211fd7ba03aea0d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct__AnxList.html">AnxList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__list_8h.html#a6a0d5fded170fd05611425b70f435817">anx_list_prepend</a> (<a class="el" href="struct__AnxList.html">AnxList</a> *list, void *data)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Prepend a new node to a list containing given data. <a href="#a6a0d5fded170fd05611425b70f435817"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct__AnxList.html">AnxList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__list_8h.html#a55fcd10a82aca8e3d65e3f2c529355a2">anx_list_append</a> (<a class="el" href="struct__AnxList.html">AnxList</a> *list, void *data)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Append a new node to a list containing given data. <a href="#a55fcd10a82aca8e3d65e3f2c529355a2"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct__AnxList.html">AnxList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__list_8h.html#a6498c0ee724e038fb14b3dcbc23897a6">anx_list_add_before</a> (<a class="el" href="struct__AnxList.html">AnxList</a> *list, void *data, <a class="el" href="struct__AnxList.html">AnxList</a> *node)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add a new node containing given data before a given node. <a href="#a6498c0ee724e038fb14b3dcbc23897a6"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct__AnxList.html">AnxList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__list_8h.html#a88e77b6027cb069d3752fa9a752f65dc">anx_list_add_after</a> (<a class="el" href="struct__AnxList.html">AnxList</a> *list, void *data, <a class="el" href="struct__AnxList.html">AnxList</a> *node)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add a new node containing given data after a given node. <a href="#a88e77b6027cb069d3752fa9a752f65dc"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct__AnxList.html">AnxList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__list_8h.html#afac0f0f20e529740996fd28cce458ed6">anx_list_find</a> (<a class="el" href="struct__AnxList.html">AnxList</a> *list, void *data)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Find the first node containing given data in a list. <a href="#afac0f0f20e529740996fd28cce458ed6"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct__AnxList.html">AnxList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__list_8h.html#a34ee52e2aec18b7360f1b08960b6f134">anx_list_remove</a> (<a class="el" href="struct__AnxList.html">AnxList</a> *list, <a class="el" href="struct__AnxList.html">AnxList</a> *node)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Remove a node from a list. <a href="#a34ee52e2aec18b7360f1b08960b6f134"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__list_8h.html#a1d8d14dce0cb1d55d983ded4692f2a10">anx_list_length</a> (<a class="el" href="struct__AnxList.html">AnxList</a> *list)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Query the number of items in a list. <a href="#a1d8d14dce0cb1d55d983ded4692f2a10"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__list_8h.html#a49b43788f09d53a624122b664b9020d2">anx_list_is_empty</a> (<a class="el" href="struct__AnxList.html">AnxList</a> *list)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Query if a list is empty, ie. <a href="#a49b43788f09d53a624122b664b9020d2"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__list_8h.html#ab84476ae2f54d28d4f7627320f426db9">anx_list_is_singleton</a> (<a class="el" href="struct__AnxList.html">AnxList</a> *list)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Query if the list is singleton, ie. <a href="#ab84476ae2f54d28d4f7627320f426db9"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct__AnxList.html">AnxList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__list_8h.html#ac0996fe92955e20bb6fb937c4eda0f18">anx_list_free_with</a> (<a class="el" href="struct__AnxList.html">AnxList</a> *list, <a class="el" href="anx__core_8h.html#a26f09ad7826e5d8608d0a740fba2674a">AnxFreeFunc</a> free_func)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Free a list, using a given function to free each data element. <a href="#ac0996fe92955e20bb6fb937c4eda0f18"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct__AnxList.html">AnxList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="anx__list_8h.html#acac047782cba0cf38c95537473f0d834">anx_list_free</a> (<a class="el" href="struct__AnxList.html">AnxList</a> *list)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Free a list, using <a class="el" href="anx__core_8h.html#ac001653d53f95f8713ecae0afa42eae9" title="free() wrapper to allow easy overriding">anx_free()</a> to free each data element. <a href="#acac047782cba0cf38c95537473f0d834"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>A doubly linked list. </p> <hr/><h2>Function Documentation</h2> <a class="anchor" id="a88e77b6027cb069d3752fa9a752f65dc"></a><!-- doxytag: member="anx_list.h::anx_list_add_after" ref="a88e77b6027cb069d3752fa9a752f65dc" args="(AnxList *list, void *data, AnxList *node)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct__AnxList.html">AnxList</a>* anx_list_add_after </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__AnxList.html">AnxList</a> * </td> <td class="paramname"> <em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"> <em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="struct__AnxList.html">AnxList</a> * </td> <td class="paramname"> <em>node</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Add a new node containing given data after a given node. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>the list </td></tr> <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>the data element of the newly created node </td></tr> <tr><td valign="top"></td><td valign="top"><em>node</em> </td><td>the node after which to add the newly created node </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>the head of the list </dd></dl> </div> </div> <a class="anchor" id="a6498c0ee724e038fb14b3dcbc23897a6"></a><!-- doxytag: member="anx_list.h::anx_list_add_before" ref="a6498c0ee724e038fb14b3dcbc23897a6" args="(AnxList *list, void *data, AnxList *node)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct__AnxList.html">AnxList</a>* anx_list_add_before </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__AnxList.html">AnxList</a> * </td> <td class="paramname"> <em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"> <em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="struct__AnxList.html">AnxList</a> * </td> <td class="paramname"> <em>node</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Add a new node containing given data before a given node. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>the list </td></tr> <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>the data element of the newly created node </td></tr> <tr><td valign="top"></td><td valign="top"><em>node</em> </td><td>the node before which to add the newly created node </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>the head of the list (which may have changed) </dd></dl> </div> </div> <a class="anchor" id="a55fcd10a82aca8e3d65e3f2c529355a2"></a><!-- doxytag: member="anx_list.h::anx_list_append" ref="a55fcd10a82aca8e3d65e3f2c529355a2" args="(AnxList *list, void *data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct__AnxList.html">AnxList</a>* anx_list_append </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__AnxList.html">AnxList</a> * </td> <td class="paramname"> <em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"> <em>data</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Append a new node to a list containing given data. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>the list </td></tr> <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>the data element of the newly created node </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>the head of the list </dd></dl> </div> </div> <a class="anchor" id="a04a335b32a78d6bdfaab84e60cafadc5"></a><!-- doxytag: member="anx_list.h::anx_list_clone" ref="a04a335b32a78d6bdfaab84e60cafadc5" args="(AnxList *list)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct__AnxList.html">AnxList</a>* anx_list_clone </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__AnxList.html">AnxList</a> * </td> <td class="paramname"> <em>list</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Clone a list using the default clone function. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>the list to clone </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>a newly cloned list </dd></dl> </div> </div> <a class="anchor" id="aa580f00e7a8bc2078ea7ca4dc3f4b6da"></a><!-- doxytag: member="anx_list.h::anx_list_clone_with" ref="aa580f00e7a8bc2078ea7ca4dc3f4b6da" args="(AnxList *list, AnxCloneFunc clone)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct__AnxList.html">AnxList</a>* anx_list_clone_with </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__AnxList.html">AnxList</a> * </td> <td class="paramname"> <em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="anx__core_8h.html#a60b00aacbbed18e944c4917f532e1fdf">AnxCloneFunc</a> </td> <td class="paramname"> <em>clone</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Clone a list using a custom clone function. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>the list to clone </td></tr> <tr><td valign="top"></td><td valign="top"><em>clone</em> </td><td>the function to use to clone a list item </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>a newly cloned list </dd></dl> </div> </div> <a class="anchor" id="afac0f0f20e529740996fd28cce458ed6"></a><!-- doxytag: member="anx_list.h::anx_list_find" ref="afac0f0f20e529740996fd28cce458ed6" args="(AnxList *list, void *data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct__AnxList.html">AnxList</a>* anx_list_find </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__AnxList.html">AnxList</a> * </td> <td class="paramname"> <em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"> <em>data</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Find the first node containing given data in a list. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>the list </td></tr> <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>the data element to find </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>the first node containing given data, or NULL if it is not found </dd></dl> </div> </div> <a class="anchor" id="acac047782cba0cf38c95537473f0d834"></a><!-- doxytag: member="anx_list.h::anx_list_free" ref="acac047782cba0cf38c95537473f0d834" args="(AnxList *list)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct__AnxList.html">AnxList</a>* anx_list_free </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__AnxList.html">AnxList</a> * </td> <td class="paramname"> <em>list</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Free a list, using <a class="el" href="anx__core_8h.html#ac001653d53f95f8713ecae0afa42eae9" title="free() wrapper to allow easy overriding">anx_free()</a> to free each data element. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>the list </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>NULL on success </dd></dl> </div> </div> <a class="anchor" id="ac0996fe92955e20bb6fb937c4eda0f18"></a><!-- doxytag: member="anx_list.h::anx_list_free_with" ref="ac0996fe92955e20bb6fb937c4eda0f18" args="(AnxList *list, AnxFreeFunc free_func)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct__AnxList.html">AnxList</a>* anx_list_free_with </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__AnxList.html">AnxList</a> * </td> <td class="paramname"> <em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="anx__core_8h.html#a26f09ad7826e5d8608d0a740fba2674a">AnxFreeFunc</a> </td> <td class="paramname"> <em>free_func</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Free a list, using a given function to free each data element. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>the list </td></tr> <tr><td valign="top"></td><td valign="top"><em>free_func</em> </td><td>a function to free each data element </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>NULL on success </dd></dl> </div> </div> <a class="anchor" id="a49b43788f09d53a624122b664b9020d2"></a><!-- doxytag: member="anx_list.h::anx_list_is_empty" ref="a49b43788f09d53a624122b664b9020d2" args="(AnxList *list)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int anx_list_is_empty </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__AnxList.html">AnxList</a> * </td> <td class="paramname"> <em>list</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Query if a list is empty, ie. </p> <p>contains no items </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>the list </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>1 if the list is empty, 0 otherwise </dd></dl> </div> </div> <a class="anchor" id="ab84476ae2f54d28d4f7627320f426db9"></a><!-- doxytag: member="anx_list.h::anx_list_is_singleton" ref="ab84476ae2f54d28d4f7627320f426db9" args="(AnxList *list)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int anx_list_is_singleton </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__AnxList.html">AnxList</a> * </td> <td class="paramname"> <em>list</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Query if the list is singleton, ie. </p> <p>contains exactly one item </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>the list </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>1 if the list is singleton, 0 otherwise </dd></dl> </div> </div> <a class="anchor" id="a1d8d14dce0cb1d55d983ded4692f2a10"></a><!-- doxytag: member="anx_list.h::anx_list_length" ref="a1d8d14dce0cb1d55d983ded4692f2a10" args="(AnxList *list)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int anx_list_length </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__AnxList.html">AnxList</a> * </td> <td class="paramname"> <em>list</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Query the number of items in a list. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>the list </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>the number of nodes in the list </dd></dl> </div> </div> <a class="anchor" id="a084ce7da2a33986ff53ccb7e7f88091b"></a><!-- doxytag: member="anx_list.h::anx_list_new" ref="a084ce7da2a33986ff53ccb7e7f88091b" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct__AnxList.html">AnxList</a>* anx_list_new </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Create a new list. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>a new list </dd></dl> </div> </div> <a class="anchor" id="a6a0d5fded170fd05611425b70f435817"></a><!-- doxytag: member="anx_list.h::anx_list_prepend" ref="a6a0d5fded170fd05611425b70f435817" args="(AnxList *list, void *data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct__AnxList.html">AnxList</a>* anx_list_prepend </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__AnxList.html">AnxList</a> * </td> <td class="paramname"> <em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"> <em>data</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Prepend a new node to a list containing given data. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>the list </td></tr> <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>the data element of the newly created node </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>the new list head </dd></dl> </div> </div> <a class="anchor" id="a34ee52e2aec18b7360f1b08960b6f134"></a><!-- doxytag: member="anx_list.h::anx_list_remove" ref="a34ee52e2aec18b7360f1b08960b6f134" args="(AnxList *list, AnxList *node)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct__AnxList.html">AnxList</a>* anx_list_remove </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__AnxList.html">AnxList</a> * </td> <td class="paramname"> <em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="struct__AnxList.html">AnxList</a> * </td> <td class="paramname"> <em>node</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Remove a node from a list. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>the list </td></tr> <tr><td valign="top"></td><td valign="top"><em>node</em> </td><td>the node to remove </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>the head of the list (which may have changed) </dd></dl> </div> </div> <a class="anchor" id="a0e580d63c81f484d7211fd7ba03aea0d"></a><!-- doxytag: member="anx_list.h::anx_list_tail" ref="a0e580d63c81f484d7211fd7ba03aea0d" args="(AnxList *list)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct__AnxList.html">AnxList</a>* anx_list_tail </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__AnxList.html">AnxList</a> * </td> <td class="paramname"> <em>list</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Return the tail element of a list. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>the list </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>the tail element </dd></dl> </div> </div> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2-20100208 </small></address> </body> </html>