<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>libcddb: ll.h File Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.3.9.1 --> <div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="globals.html">File Members</a></div> <div class="nav"> <a class="el" href="dir_000000.html">include</a> / <a class="el" href="dir_000001.html">cddb</a></div> <h1>ll.h File Reference</h1> <p> <a href="ll_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Defines</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="ll_8h.html#a0">LL_H</a> 1</td></tr> <tr><td colspan="2"><br><h2>Typedefs</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef elem_s </td><td class="memItemRight" valign="bottom"><a class="el" href="ll_8h.html#a1">elem_t</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Linked list element. <a href="#a1"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef list_s </td><td class="memItemRight" valign="bottom"><a class="el" href="ll_8h.html#a2">list_t</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Linked list. <a href="#a2"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void </td><td class="memItemRight" valign="bottom"><a class="el" href="ll_8h.html#a3">elem_destroy_cb</a> (void *data)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Callback prototype for destroying element data. <a href="#a3"></a><br></td></tr> <tr><td colspan="2"><br><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="ll_8h.html#a2">list_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="ll_8h.html#a4">list_new</a> (<a class="el" href="ll_8h.html#a3">elem_destroy_cb</a> *cb)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a new linked list. <a href="#a4"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ll_8h.html#a5">list_destroy</a> (<a class="el" href="ll_8h.html#a2">list_t</a> *list)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Free all resources associated with the given linked list. <a href="#a5"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="ll_8h.html#a6">list_flush</a> (<a class="el" href="ll_8h.html#a2">list_t</a> *list)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Remove all elements from the list without destroying the list itself. <a href="#a6"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="ll_8h.html#a7">element_data</a> (<a class="el" href="ll_8h.html#a1">elem_t</a> *elem)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieves the data associated with a list element. <a href="#a7"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="ll_8h.html#a1">elem_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="ll_8h.html#a8">list_append</a> (<a class="el" href="ll_8h.html#a2">list_t</a> *list, void *data)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Append a new element to the end of the list. <a href="#a8"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="ll_8h.html#a9">list_size</a> (<a class="el" href="ll_8h.html#a2">list_t</a> *list)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of elements in the list. <a href="#a9"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="ll_8h.html#a1">elem_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="ll_8h.html#a10">list_get</a> (<a class="el" href="ll_8h.html#a2">list_t</a> *list, int idx)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the list element at the specified index or NULL if the index is invalid. <a href="#a10"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="ll_8h.html#a1">elem_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="ll_8h.html#a11">list_first</a> (<a class="el" href="ll_8h.html#a2">list_t</a> *list)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the first list element. <a href="#a11"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="ll_8h.html#a1">elem_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="ll_8h.html#a12">list_next</a> (<a class="el" href="ll_8h.html#a2">list_t</a> *list)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the next list element. <a href="#a12"></a><br></td></tr> </table> <hr><h2>Define Documentation</h2> <a class="anchor" name="a0" doxytag="ll.h::LL_H"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">#define LL_H 1 </td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> </td> </tr> </table> <hr><h2>Typedef Documentation</h2> <a class="anchor" name="a3" doxytag="ll.h::elem_destroy_cb"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">typedef void <a class="el" href="ll_8h.html#a3">elem_destroy_cb</a>(void *data) </td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Callback prototype for destroying element data. <p> </td> </tr> </table> <a class="anchor" name="a1" doxytag="ll.h::elem_t"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">typedef struct elem_s <a class="el" href="ll_8h.html#a1">elem_t</a> </td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Linked list element. <p> </td> </tr> </table> <a class="anchor" name="a2" doxytag="ll.h::list_t"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">typedef struct list_s <a class="el" href="ll_8h.html#a2">list_t</a> </td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Linked list. <p> </td> </tr> </table> <hr><h2>Function Documentation</h2> <a class="anchor" name="a7" doxytag="ll.h::element_data"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">void* element_data </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="ll_8h.html#a1">elem_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>elem</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Retrieves the data associated with a list element. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>elem</em> </td><td>The list element. </td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>The data associated with the element or NULL if the element was invalid. </dd></dl> </td> </tr> </table> <a class="anchor" name="a8" doxytag="ll.h::list_append"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"><a class="el" href="ll_8h.html#a1">elem_t</a>* list_append </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="ll_8h.html#a2">list_t</a> * </td> <td class="mdname" nowrap> <em>list</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>void * </td> <td class="mdname" nowrap> <em>data</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Append a new element to the end of the list. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>The linked list. </td></tr> <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>The data to append to the list. </td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>The list element that was appended or NULL if memory allocation fails or the list is invalid. </dd></dl> </td> </tr> </table> <a class="anchor" name="a5" doxytag="ll.h::list_destroy"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">void list_destroy </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="ll_8h.html#a2">list_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>list</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Free all resources associated with the given linked list. <p> Embedded data will be freed by use of the callback registered at list creation.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>The linked list. </td></tr> </table> </dl> </td> </tr> </table> <a class="anchor" name="a11" doxytag="ll.h::list_first"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"><a class="el" href="ll_8h.html#a1">elem_t</a>* list_first </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="ll_8h.html#a2">list_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>list</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Returns the first list element. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>The linked list. </td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>The first element or NULL if the list is empty. </dd></dl> </td> </tr> </table> <a class="anchor" name="a6" doxytag="ll.h::list_flush"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">void list_flush </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="ll_8h.html#a2">list_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>list</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Remove all elements from the list without destroying the list itself. <p> Embedded data will be freed by use of the callback registered at list creation.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>The linked list. </td></tr> </table> </dl> </td> </tr> </table> <a class="anchor" name="a10" doxytag="ll.h::list_get"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"><a class="el" href="ll_8h.html#a1">elem_t</a>* list_get </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="ll_8h.html#a2">list_t</a> * </td> <td class="mdname" nowrap> <em>list</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>idx</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Returns the list element at the specified index or NULL if the index is invalid. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>The linked list. </td></tr> <tr><td valign="top"></td><td valign="top"><em>idx</em> </td><td>The element index (first = 0). </td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>The element or NULL if not found. </dd></dl> </td> </tr> </table> <a class="anchor" name="a4" doxytag="ll.h::list_new"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"><a class="el" href="ll_8h.html#a2">list_t</a>* list_new </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="ll_8h.html#a3">elem_destroy_cb</a> * </td> <td class="mdname1" valign="top" nowrap> <em>cb</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Creates a new linked list. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>cb</em> </td><td>The callback used to destroy the element data or NULL if no further action is required. </td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>The linked list structure or NULL if memory allocation failed. </dd></dl> </td> </tr> </table> <a class="anchor" name="a12" doxytag="ll.h::list_next"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"><a class="el" href="ll_8h.html#a1">elem_t</a>* list_next </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="ll_8h.html#a2">list_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>list</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Returns the next list element. <p> Before using this function you should call list_first to initialize the iterator.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>The linked list. </td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>The next element or NULL if not found. </dd></dl> </td> </tr> </table> <a class="anchor" name="a9" doxytag="ll.h::list_size"></a><p> <table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">int list_size </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="ll_8h.html#a2">list_t</a> * </td> <td class="mdname1" valign="top" nowrap> <em>list</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Returns the number of elements in the list. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>The linked list. </td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>The number of elements. </dd></dl> </td> </tr> </table> <hr size="1"><address style="align: right;"><small>Generated on Sat Jul 9 11:18:31 2005 for libcddb by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address> </body> </html>