<!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>GNU CommonC++: ost::LinkedDouble Class Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.4.6 --> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li id="current"><a href="classes.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="examples.html"><span>Examples</span></a></li> </ul></div> <div class="tabs"> <ul> <li><a href="classes.html"><span>Alphabetical List</span></a></li> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul></div> <div class="nav"> <a class="el" href="namespaceost.html">ost</a>::<a class="el" href="classost_1_1_linked_double.html">LinkedDouble</a></div> <h1>ost::LinkedDouble Class Reference</h1><!-- doxytag: class="ost::LinkedDouble" -->Self managed double linked list object chain.Accumulating double linked list. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="object_8h-source.html">object.h</a>></code> <p> <a href="classost_1_1_linked_double-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classost_1_1_linked_double.html">LinkedDouble</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_linked_double.html#4265554deed086d5df6ce8e4f48867de">getFirst</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get first linked object in list. <a href="#4265554deed086d5df6ce8e4f48867de"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classost_1_1_linked_double.html">LinkedDouble</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_linked_double.html#50cdd92a38c931d8c8f1fa885134f500">getLast</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the last object in the list. <a href="#50cdd92a38c931d8c8f1fa885134f500"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classost_1_1_linked_double.html">LinkedDouble</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_linked_double.html#db4bd830df95500ee4864a37f8daf2c5">getInsert</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Virtual to get the insert point to use when adding new members. <a href="#db4bd830df95500ee4864a37f8daf2c5"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classost_1_1_linked_double.html">LinkedDouble</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_linked_double.html#ef019ef8ce1f8fde9ea0263251450b61">getNext</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get next object, for convenience. <a href="#ef019ef8ce1f8fde9ea0263251450b61"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classost_1_1_linked_double.html">LinkedDouble</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_linked_double.html#6764fe49871de47bcf4b88e993a5638c">getPrev</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get prev object in the list. <a href="#6764fe49871de47bcf4b88e993a5638c"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_linked_double.html#1599e6a312b4905991e9589432c824b3">insert</a> (<a class="el" href="classost_1_1_linked_double.html">LinkedDouble</a> &obj)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Insert object into chain. <a href="#1599e6a312b4905991e9589432c824b3"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_linked_double.html#0f592c7550dd8e514c73aec0b1a74e0d">detach</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Remove object from chain. <a href="#0f592c7550dd8e514c73aec0b1a74e0d"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classost_1_1_linked_double.html">LinkedDouble</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_linked_double.html#6fc539900d18fbc05ab25cabe827c041">operator+=</a> (<a class="el" href="classost_1_1_linked_double.html">LinkedDouble</a> &obj)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classost_1_1_linked_double.html">LinkedDouble</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_linked_double.html#d2c1be56326c836bc0456b3de8fb0417">operator--</a> ()</td></tr> <tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_linked_double.html#7b2b9952d67b924f5f194f9c01b6b45d">LinkedDouble</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_linked_double.html#0ee7d59ed567a17c40b75a999f269f4d">~LinkedDouble</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_linked_double.html#e80ef685c53da73cd08a8a04a3789961">enterLock</a> (void)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_linked_double.html#a3c77c647276c0e51ae69b7500c6c67a">leaveLock</a> (void)</td></tr> <tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classost_1_1_linked_double.html">LinkedDouble</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_linked_double.html#8f55ab75b85c4275c81933780be208d0">nextObject</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classost_1_1_linked_double.html">LinkedDouble</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_linked_double.html#bc240a6e018ad73d3612edb0a42b0602">prevObject</a></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Self managed double linked list object chain.Accumulating double linked list. <p> This is used for accumulating lists by using as a base class for a derived subclass.<p> <dl compact><dt><b>Author:</b></dt><dd>David Sugar <<a href="mailto:dyfet@gnutelephony.org">dyfet@gnutelephony.org</a>> </dd></dl> <p> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="7b2b9952d67b924f5f194f9c01b6b45d"></a><!-- doxytag: member="ost::LinkedDouble::LinkedDouble" ref="7b2b9952d67b924f5f194f9c01b6b45d" args="()" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">ost::LinkedDouble::LinkedDouble </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, protected]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> </td> </tr> </table> <a class="anchor" name="0ee7d59ed567a17c40b75a999f269f4d"></a><!-- doxytag: member="ost::LinkedDouble::~LinkedDouble" ref="0ee7d59ed567a17c40b75a999f269f4d" args="()" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">virtual ost::LinkedDouble::~LinkedDouble </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [protected, virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> </td> </tr> </table> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="0f592c7550dd8e514c73aec0b1a74e0d"></a><!-- doxytag: member="ost::LinkedDouble::detach" ref="0f592c7550dd8e514c73aec0b1a74e0d" args="(void)" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">void ost::LinkedDouble::detach </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </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 object from chain. <p> </td> </tr> </table> <a class="anchor" name="e80ef685c53da73cd08a8a04a3789961"></a><!-- doxytag: member="ost::LinkedDouble::enterLock" ref="e80ef685c53da73cd08a8a04a3789961" args="(void)" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">virtual void ost::LinkedDouble::enterLock </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [protected, virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> </td> </tr> </table> <a class="anchor" name="4265554deed086d5df6ce8e4f48867de"></a><!-- doxytag: member="ost::LinkedDouble::getFirst" ref="4265554deed086d5df6ce8e4f48867de" args="(void)" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">virtual <a class="el" href="classost_1_1_linked_double.html">LinkedDouble</a>* ost::LinkedDouble::getFirst </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Get first linked object in list. <p> This may be dynamically recast, and may refer to a master static bookmark pointer in a derived class. Otherwise it follows list to front.<p> <dl compact><dt><b>Returns:</b></dt><dd>pointer to first object in list. </dd></dl> </td> </tr> </table> <a class="anchor" name="db4bd830df95500ee4864a37f8daf2c5"></a><!-- doxytag: member="ost::LinkedDouble::getInsert" ref="db4bd830df95500ee4864a37f8daf2c5" args="(void)" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">virtual <a class="el" href="classost_1_1_linked_double.html">LinkedDouble</a>* ost::LinkedDouble::getInsert </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Virtual to get the insert point to use when adding new members. <p> This may be current, or always head or always tail. As a virtual, this allows derived class to establish "policy".<p> <dl compact><dt><b>Returns:</b></dt><dd>pointer to insertion point in list. </dd></dl> </td> </tr> </table> <a class="anchor" name="50cdd92a38c931d8c8f1fa885134f500"></a><!-- doxytag: member="ost::LinkedDouble::getLast" ref="50cdd92a38c931d8c8f1fa885134f500" args="(void)" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">virtual <a class="el" href="classost_1_1_linked_double.html">LinkedDouble</a>* ost::LinkedDouble::getLast </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Gets the last object in the list. <p> This normally follows the links to the end. This is a virtual because derived class may include a static member bookmark for the current end.<p> <dl compact><dt><b>Returns:</b></dt><dd>pointer to last object in list. </dd></dl> </td> </tr> </table> <a class="anchor" name="ef019ef8ce1f8fde9ea0263251450b61"></a><!-- doxytag: member="ost::LinkedDouble::getNext" ref="ef019ef8ce1f8fde9ea0263251450b61" args="(void)" --><p> <table class="mdTable" 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="classost_1_1_linked_double.html">LinkedDouble</a>* ost::LinkedDouble::getNext </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Get next object, for convenience. <p> Derived class may use this with a dynamic cast.<p> <dl compact><dt><b>Returns:</b></dt><dd>next object in list. </dd></dl> </td> </tr> </table> <a class="anchor" name="6764fe49871de47bcf4b88e993a5638c"></a><!-- doxytag: member="ost::LinkedDouble::getPrev" ref="6764fe49871de47bcf4b88e993a5638c" args="(void)" --><p> <table class="mdTable" 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="classost_1_1_linked_double.html">LinkedDouble</a>* ost::LinkedDouble::getPrev </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Get prev object in the list. <p> <dl compact><dt><b>Returns:</b></dt><dd>pointer to previous object. </dd></dl> </td> </tr> </table> <a class="anchor" name="1599e6a312b4905991e9589432c824b3"></a><!-- doxytag: member="ost::LinkedDouble::insert" ref="1599e6a312b4905991e9589432c824b3" args="(LinkedDouble &obj)" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">void ost::LinkedDouble::insert </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="classost_1_1_linked_double.html">LinkedDouble</a> & </td> <td class="mdname1" valign="top" nowrap> <em>obj</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> Insert object into chain. <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>object</em> </td><td>being inserted. </td></tr> </table> </dl> </td> </tr> </table> <a class="anchor" name="a3c77c647276c0e51ae69b7500c6c67a"></a><!-- doxytag: member="ost::LinkedDouble::leaveLock" ref="a3c77c647276c0e51ae69b7500c6c67a" args="(void)" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">virtual void ost::LinkedDouble::leaveLock </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">void </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [protected, virtual]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> </td> </tr> </table> <a class="anchor" name="6fc539900d18fbc05ab25cabe827c041"></a><!-- doxytag: member="ost::LinkedDouble::operator+=" ref="6fc539900d18fbc05ab25cabe827c041" args="(LinkedDouble &obj)" --><p> <table class="mdTable" 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="classost_1_1_linked_double.html">LinkedDouble</a>& ost::LinkedDouble::operator+= </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="classost_1_1_linked_double.html">LinkedDouble</a> & </td> <td class="mdname1" valign="top" nowrap> <em>obj</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> </td> </tr> </table> <a class="anchor" name="d2c1be56326c836bc0456b3de8fb0417"></a><!-- doxytag: member="ost::LinkedDouble::operator--" ref="d2c1be56326c836bc0456b3de8fb0417" args="()" --><p> <table class="mdTable" 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="classost_1_1_linked_double.html">LinkedDouble</a>& ost::LinkedDouble::operator-- </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </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> </td> </tr> </table> <hr><h2>Member Data Documentation</h2> <a class="anchor" name="8f55ab75b85c4275c81933780be208d0"></a><!-- doxytag: member="ost::LinkedDouble::nextObject" ref="8f55ab75b85c4275c81933780be208d0" args="" --><p> <table class="mdTable" 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="classost_1_1_linked_double.html">LinkedDouble</a>* <a class="el" href="classost_1_1_linked_double.html#8f55ab75b85c4275c81933780be208d0">ost::LinkedDouble::nextObject</a><code> [protected]</code> </td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> </td> </tr> </table> <a class="anchor" name="bc240a6e018ad73d3612edb0a42b0602"></a><!-- doxytag: member="ost::LinkedDouble::prevObject" ref="bc240a6e018ad73d3612edb0a42b0602" args="" --><p> <table class="mdTable" 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="classost_1_1_linked_double.html">LinkedDouble</a> * <a class="el" href="classost_1_1_linked_double.html#bc240a6e018ad73d3612edb0a42b0602">ost::LinkedDouble::prevObject</a><code> [protected]</code> </td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> </td> </tr> </table> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="object_8h-source.html">object.h</a></ul> <hr size="1"><address style="align: right;"><small>Generated on Mon Jun 19 10:50:56 2006 for GNU CommonC++ by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address> </body> </html>