<!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>OGR: cpl_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="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</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>File Members</span></a></li> </ul> </div> <div class="navpath"><a class="el" href="dir_9403295bfc17f2c2ba80cf17b83e4de3.html">port</a> </div> </div> <div class="contents"> <h1>cpl_list.h File Reference</h1><code>#include "<a class="el" href="cpl__port_8h_source.html">cpl_port.h</a>"</code><br/> <p><a href="cpl__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>Classes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__CPLList.html">_CPLList</a></td></tr> <tr><td colspan="2"><h2>Typedefs</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct__CPLList.html">_CPLList</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="cpl__list_8h.html#a9cf538027216ff133a67bcdf470f9be1">CPLList</a></td></tr> <tr><td colspan="2"><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct__CPLList.html">CPLList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="cpl__list_8h.html#a78a78cc36300251319b8018631de8785">CPLListAppend</a> (<a class="el" href="struct__CPLList.html">CPLList</a> *psList, void *pData)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct__CPLList.html">CPLList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="cpl__list_8h.html#a0ac887cca7e1a3ef9bac3f618c622f8a">CPLListInsert</a> (<a class="el" href="struct__CPLList.html">CPLList</a> *psList, void *pData, int nPosition)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct__CPLList.html">CPLList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="cpl__list_8h.html#a8ed2d72f3e97a8dbcf215e1a9df65888">CPLListGetLast</a> (<a class="el" href="struct__CPLList.html">CPLList</a> *psList)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct__CPLList.html">CPLList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="cpl__list_8h.html#adb07e42a9d62194c0b116990853a17f1">CPLListGet</a> (<a class="el" href="struct__CPLList.html">CPLList</a> *psList, int nPosition)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="cpl__list_8h.html#a4d23bfa24201f523dfe96073ebf4b608">CPLListCount</a> (<a class="el" href="struct__CPLList.html">CPLList</a> *psList)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct__CPLList.html">CPLList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="cpl__list_8h.html#a6b6e9b39a015ccb6de42f920b67bb66a">CPLListRemove</a> (<a class="el" href="struct__CPLList.html">CPLList</a> *psList, int nPosition)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="cpl__list_8h.html#a1d19c7c63d51d57c7c7c6f6a236fca71">CPLListDestroy</a> (<a class="el" href="struct__CPLList.html">CPLList</a> *psList)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct__CPLList.html">CPLList</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="cpl__list_8h.html#a31f2b51b02c65c6e18443c808494ea2b">CPLListGetNext</a> (<a class="el" href="struct__CPLList.html">CPLList</a> *psElement)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="cpl__list_8h.html#a7172178c5ec7f4b8292ab376c88ceaef">CPLListGetData</a> (<a class="el" href="struct__CPLList.html">CPLList</a> *psElement)</td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>Simplest list implementation. List contains only pointers to stored objects, not objects itself. All operations regarding allocation and freeing memory for objects should be performed by the caller. </p> <hr/><h2>Typedef Documentation</h2> <a class="anchor" id="a9cf538027216ff133a67bcdf470f9be1"></a><!-- doxytag: member="cpl_list.h::CPLList" ref="a9cf538027216ff133a67bcdf470f9be1" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct <a class="el" href="struct__CPLList.html">_CPLList</a> <a class="el" href="struct__CPLList.html">CPLList</a></td> </tr> </table> </div> <div class="memdoc"> <p>List element structure. </p> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="a78a78cc36300251319b8018631de8785"></a><!-- doxytag: member="cpl_list.h::CPLListAppend" ref="a78a78cc36300251319b8018631de8785" args="(CPLList *psList, void *pData)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct__CPLList.html">CPLList</a>* CPLListAppend </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__CPLList.html">CPLList</a> * </td> <td class="paramname"> <em>psList</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"> <em>pData</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Append an object list and return a pointer to the modified list. If the input list is NULL, then a new list is created.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>psList</em> </td><td>pointer to list head. </td></tr> <tr><td valign="top"></td><td valign="top"><em>pData</em> </td><td>pointer to inserted data object. May be NULL.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>pointer to the head of modified list. </dd></dl> <p>References <a class="el" href="cpl__list_8h_source.html#l00053">_CPLList::pData</a>, and <a class="el" href="cpl__list_8h_source.html#l00057">_CPLList::psNext</a>.</p> </div> </div> <a class="anchor" id="a4d23bfa24201f523dfe96073ebf4b608"></a><!-- doxytag: member="cpl_list.h::CPLListCount" ref="a4d23bfa24201f523dfe96073ebf4b608" args="(CPLList *psList)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int CPLListCount </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__CPLList.html">CPLList</a> * </td> <td class="paramname"> <em>psList</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Return the number of elements 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>psList</em> </td><td>pointer to list head.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>number of elements in a list. </dd></dl> <p>References <a class="el" href="cpl__list_8h_source.html#l00057">_CPLList::psNext</a>.</p> </div> </div> <a class="anchor" id="a1d19c7c63d51d57c7c7c6f6a236fca71"></a><!-- doxytag: member="cpl_list.h::CPLListDestroy" ref="a1d19c7c63d51d57c7c7c6f6a236fca71" args="(CPLList *psList)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void CPLListDestroy </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__CPLList.html">CPLList</a> * </td> <td class="paramname"> <em>psList</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Destroy a list. Caller responsible for freeing data objects contained in list elements.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>psList</em> </td><td>pointer to list head. </td></tr> </table> </dd> </dl> <p>References <a class="el" href="cpl__list_8h_source.html#l00057">_CPLList::psNext</a>.</p> </div> </div> <a class="anchor" id="adb07e42a9d62194c0b116990853a17f1"></a><!-- doxytag: member="cpl_list.h::CPLListGet" ref="adb07e42a9d62194c0b116990853a17f1" args="(CPLList *psList, int nPosition)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct__CPLList.html">CPLList</a>* CPLListGet </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__CPLList.html">CPLList</a> * </td> <td class="paramname"> <em>psList</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>nPosition</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Return the pointer to the specified element 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>psList</em> </td><td>pointer to list head. </td></tr> <tr><td valign="top"></td><td valign="top"><em>nPosition</em> </td><td>the index of the element in the list, 0 being the first element</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>pointer to the specified element in a list. </dd></dl> <p>References <a class="el" href="cpl__list_8h_source.html#l00057">_CPLList::psNext</a>.</p> </div> </div> <a class="anchor" id="a7172178c5ec7f4b8292ab376c88ceaef"></a><!-- doxytag: member="cpl_list.h::CPLListGetData" ref="a7172178c5ec7f4b8292ab376c88ceaef" args="(CPLList *psElement)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void* CPLListGetData </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__CPLList.html">CPLList</a> * </td> <td class="paramname"> <em>psElement</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Return pointer to the data object contained in given list 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>psElement</em> </td><td>pointer to list element.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>pointer to the data object contained in given list element. </dd></dl> <p>References <a class="el" href="cpl__list_8h_source.html#l00053">_CPLList::pData</a>.</p> </div> </div> <a class="anchor" id="a8ed2d72f3e97a8dbcf215e1a9df65888"></a><!-- doxytag: member="cpl_list.h::CPLListGetLast" ref="a8ed2d72f3e97a8dbcf215e1a9df65888" args="(CPLList *psList)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct__CPLList.html">CPLList</a>* CPLListGetLast </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__CPLList.html">CPLList</a> * </td> <td class="paramname"> <em>psList</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Return the pointer to last element 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>psList</em> </td><td>pointer to list head.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>pointer to last element in a list. </dd></dl> <p>References <a class="el" href="cpl__list_8h_source.html#l00057">_CPLList::psNext</a>.</p> </div> </div> <a class="anchor" id="a31f2b51b02c65c6e18443c808494ea2b"></a><!-- doxytag: member="cpl_list.h::CPLListGetNext" ref="a31f2b51b02c65c6e18443c808494ea2b" args="(CPLList *psElement)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct__CPLList.html">CPLList</a>* CPLListGetNext </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__CPLList.html">CPLList</a> * </td> <td class="paramname"> <em>psElement</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Return the pointer to next element 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>psElement</em> </td><td>pointer to list element.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>pointer to the list element preceded by the given element. </dd></dl> <p>References <a class="el" href="cpl__list_8h_source.html#l00057">_CPLList::psNext</a>.</p> </div> </div> <a class="anchor" id="a0ac887cca7e1a3ef9bac3f618c622f8a"></a><!-- doxytag: member="cpl_list.h::CPLListInsert" ref="a0ac887cca7e1a3ef9bac3f618c622f8a" args="(CPLList *psList, void *pData, int nPosition)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct__CPLList.html">CPLList</a>* CPLListInsert </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__CPLList.html">CPLList</a> * </td> <td class="paramname"> <em>psList</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"> <em>pData</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>nPosition</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Insert an object into list at specified position (zero based). If the input list is NULL, then a new list is created.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>psList</em> </td><td>pointer to list head. </td></tr> <tr><td valign="top"></td><td valign="top"><em>pData</em> </td><td>pointer to inserted data object. May be NULL. </td></tr> <tr><td valign="top"></td><td valign="top"><em>nPosition</em> </td><td>position number to insert an object.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>pointer to the head of modified list. </dd></dl> <p>References <a class="el" href="cpl__list_8h_source.html#l00053">_CPLList::pData</a>, and <a class="el" href="cpl__list_8h_source.html#l00057">_CPLList::psNext</a>.</p> </div> </div> <a class="anchor" id="a6b6e9b39a015ccb6de42f920b67bb66a"></a><!-- doxytag: member="cpl_list.h::CPLListRemove" ref="a6b6e9b39a015ccb6de42f920b67bb66a" args="(CPLList *psList, int nPosition)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct__CPLList.html">CPLList</a>* CPLListRemove </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__CPLList.html">CPLList</a> * </td> <td class="paramname"> <em>psList</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>nPosition</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Remove the element from the specified position (zero based) in a list. Data object contained in removed element must be freed by the caller first.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>psList</em> </td><td>pointer to list head. </td></tr> <tr><td valign="top"></td><td valign="top"><em>nPosition</em> </td><td>position number to delet an element.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>pointer to the head of modified list. </dd></dl> <p>References <a class="el" href="cpl__list_8h_source.html#l00057">_CPLList::psNext</a>.</p> </div> </div> </div> <hr> Generated for GDAL by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.6.2-20100208. </body> </html>