<!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>ucommon: stack Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript"> $(document).ready(initResizable); </script> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.3 --> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">ucommon</div> </td> </tr> </tbody> </table> </div> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="examples.html"><span>Examples</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="classes.html"><span>Data Structure Index</span></a></li> <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Data Fields</span></a></li> </ul> </div> </div> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> initNavTree('a00147.html',''); </script> <div id="doc-content"> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pub-static-methods">Static Public Member Functions</a> | <a href="#pro-attribs">Protected Attributes</a> | <a href="#friends">Friends</a> </div> <div class="headertitle"> <h1>stack Class Reference</h1> </div> </div> <div class="contents"> <!-- doxytag: class="stack" --><!-- doxytag: inherits="Conditional" --> <p>Manage a thread-safe stack of objects through reference pointers. <a href="#_details">More...</a></p> <p><code>#include <<a class="el" href="a00180_source.html">containers.h</a>></code></p> <div class="dynheader"> Inheritance diagram for stack:</div> <div class="dyncontent"> <div class="center"><img src="a00470.png" border="0" usemap="#stack_inherit__map" alt="Inheritance graph"/></div> <map name="stack_inherit__map" id="stack_inherit__map"> <area shape="rect" id="node5" href="a00148.html" title="A templated typed class for thread-safe stack of object pointers." alt="" coords="5,155,147,181"/><area shape="rect" id="node2" href="a00034.html" title="The conditional is a common base for other thread synchronizing classes." alt="" coords="11,5,141,32"/></map> <center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div> <div class="dynheader"> Collaboration diagram for stack:</div> <div class="dyncontent"> <div class="center"><img src="a00471.png" border="0" usemap="#stack_coll__map" alt="Collaboration graph"/></div> <map name="stack_coll__map" id="stack_coll__map"> <area shape="rect" id="node2" href="a00034.html" title="The conditional is a common base for other thread synchronizing classes." alt="" coords="5,168,136,195"/><area shape="rect" id="node4" href="a00079.html" title="A managed private heap for small allocations." alt="" coords="160,168,261,195"/><area shape="rect" id="node6" href="a00077.html" title="A memory protocol pager for private heap manager." alt="" coords="160,83,261,109"/><area shape="rect" id="node8" href="a00071.html" title="Common locking protocol." alt="" coords="125,5,296,32"/><area shape="rect" id="node10" href="a00065.html" title="Common base class for all objects that can be formed into a linked list." alt="" coords="285,168,427,195"/><area shape="rect" id="node12" href="a00091.html" title="A common base class for all managed objects." alt="" coords="315,83,397,109"/></map> <center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#af8df7398ea3530f305f695d6adc39b41">getCount</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get number of object points currently in the stack. <a href="#af8df7398ea3530f305f695d6adc39b41"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00091.html">Object</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#ae4e21b3a7a753a08a8d73c1b5a6a4e70">pull</a> (<a class="el" href="a00193.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout=0)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get and remove last object pushed on the stack. <a href="#ae4e21b3a7a753a08a8d73c1b5a6a4e70"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#ad04cc923d7fc664199fcc1842705d896">push</a> (<a class="el" href="a00091.html">Object</a> *object, <a class="el" href="a00193.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout=0)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Push an object into the stack by it's pointer. <a href="#ad04cc923d7fc664199fcc1842705d896"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#a21221f89434dbf5200b825821c7e86c2">remove</a> (<a class="el" href="a00091.html">Object</a> *object)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Remove a specific object pointer for the queue. <a href="#a21221f89434dbf5200b825821c7e86c2"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#a0e25e462a8329785623b810afa73b851">stack</a> (<a class="el" href="a00079.html">mempager</a> *<a class="el" href="a00101.html">pager</a>=NULL, size_t number=0)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a stack that uses a memory pager for internally managed member objects for a specified maximum number of object pointers. <a href="#a0e25e462a8329785623b810afa73b851"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#ae20e5d415f840f36862007e95a1dcbe7">~stack</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Destroy queue. <a href="#ae20e5d415f840f36862007e95a1dcbe7"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="pub-static-methods"></a> Static Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#ad04d9b0c80dee1a2082e118db941e74c">count</a> (<a class="el" href="a00147.html">stack</a> &<a class="el" href="a00147.html">stack</a>)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Convenience function to get count of objects in the stack. <a href="#ad04d9b0c80dee1a2082e118db941e74c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a00091.html">Object</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#ab13b5b7414afbf7c3ae86dab765f17e7">pull</a> (<a class="el" href="a00147.html">stack</a> &<a class="el" href="a00147.html">stack</a>, <a class="el" href="a00193.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout=0)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Convenience function pull last object from the stack. <a href="#ab13b5b7414afbf7c3ae86dab765f17e7"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#ac4abfb47217fe90868c31622a8f29ccc">push</a> (<a class="el" href="a00147.html">stack</a> &<a class="el" href="a00147.html">stack</a>, <a class="el" href="a00091.html">Object</a> *object, <a class="el" href="a00193.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> timeout=0)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Convenience function to push object into the stack. <a href="#ac4abfb47217fe90868c31622a8f29ccc"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#af72f5704e3c8a9864bc68fc06b224407">remove</a> (<a class="el" href="a00147.html">stack</a> &<a class="el" href="a00147.html">stack</a>, <a class="el" href="a00091.html">Object</a> *object)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Convenience function to remove an object from the stacl. <a href="#af72f5704e3c8a9864bc68fc06b224407"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="pro-attribs"></a> Protected Attributes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a12fe2e4b45e1b3cb5752814f5a64ea81"></a><!-- doxytag: member="stack::limit" ref="a12fe2e4b45e1b3cb5752814f5a64ea81" args="" --> size_t </td><td class="memItemRight" valign="bottom"><b>limit</b></td></tr> <tr><td colspan="2"><h2><a name="friends"></a> Friends</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0352b76113cdfb8a6e0a3be7165742b8"></a><!-- doxytag: member="stack::member" ref="a0352b76113cdfb8a6e0a3be7165742b8" args="" --> class </td><td class="memItemRight" valign="bottom"><b>member</b></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <div class="textblock"><p>Manage a thread-safe stack of objects through reference pointers. </p> <p>This Thread-safe access is managed through a conditional. This differs from the queue in lifo mode because delinking the last object is immediate, and because it has much less overhead. A pool of self-managed member objects are used to operate the stack. </p> <dl class="author"><dt><b>Author:</b></dt><dd>David Sugar <<a href="mailto:dyfet@gnutelephony.org">dyfet@gnutelephony.org</a>> </dd></dl> <p>Definition at line <a class="el" href="a00180_source.html#l00334">334</a> of file <a class="el" href="a00180_source.html">containers.h</a>.</p> </div><hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="a0e25e462a8329785623b810afa73b851"></a><!-- doxytag: member="stack::stack" ref="a0e25e462a8329785623b810afa73b851" args="(mempager *pager=NULL, size_t number=0)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">stack::stack </td> <td>(</td> <td class="paramtype"><a class="el" href="a00079.html">mempager</a> * </td> <td class="paramname"><em>pager</em> = <code>NULL</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>number</em> = <code>0</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Create a stack that uses a memory pager for internally managed member objects for a specified maximum number of object pointers. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">pager</td><td>to use for internal member object or NULL to use heap. </td></tr> <tr><td class="paramname">number</td><td>of pointers that can be in the stack or 0 if unlimited. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ae20e5d415f840f36862007e95a1dcbe7"></a><!-- doxytag: member="stack::~stack" ref="ae20e5d415f840f36862007e95a1dcbe7" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">stack::~stack </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Destroy queue. </p> <p>If no pager is used, then frees heap. </p> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="ad04d9b0c80dee1a2082e118db941e74c"></a><!-- doxytag: member="stack::count" ref="ad04d9b0c80dee1a2082e118db941e74c" args="(stack &stack)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static size_t stack::count </td> <td>(</td> <td class="paramtype"><a class="el" href="a00147.html">stack</a> & </td> <td class="paramname"><em>stack</em></td><td>)</td> <td><code> [inline, static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Convenience function to get count of objects in the stack. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">stack</td><td>to count. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>number of objects in the stack. </dd></dl> <p>Definition at line <a class="el" href="a00180_source.html#l00434">434</a> of file <a class="el" href="a00180_source.html">containers.h</a>.</p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dyncontent"> <div class="center"><img src="a00147_ad04d9b0c80dee1a2082e118db941e74c_cgraph.png" border="0" usemap="#a00147_ad04d9b0c80dee1a2082e118db941e74c_cgraph" alt=""/></div> <map name="a00147_ad04d9b0c80dee1a2082e118db941e74c_cgraph" id="a00147_ad04d9b0c80dee1a2082e118db941e74c_cgraph"> <area shape="rect" id="node3" href="a00147.html#af8df7398ea3530f305f695d6adc39b41" title="Get number of object points currently in the stack." alt="" coords="199,5,369,32"/></map> </div> </p> </div> </div> <a class="anchor" id="af8df7398ea3530f305f695d6adc39b41"></a><!-- doxytag: member="stack::getCount" ref="af8df7398ea3530f305f695d6adc39b41" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t stack::getCount </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get number of object points currently in the stack. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>number of objects in stack. </dd></dl> </div> </div> <a class="anchor" id="ae4e21b3a7a753a08a8d73c1b5a6a4e70"></a><!-- doxytag: member="stack::pull" ref="ae4e21b3a7a753a08a8d73c1b5a6a4e70" args="(timeout_t timeout=0)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00091.html">Object</a>* stack::pull </td> <td>(</td> <td class="paramtype"><a class="el" href="a00193.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> </td> <td class="paramname"><em>timeout</em> = <code>0</code></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get and remove last object pushed on the stack. </p> <p>This can wait for a specified timeout of the stack is empty. The object is still retained and must be released or deleted by the receiving function. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">timeout</td><td>to wait if empty in milliseconds. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>object pulled from stack or NULL if empty and timed out. </dd></dl> <p>Reimplemented in <a class="el" href="a00148.html#a7495273f0fec8a499f401574ef78237b">stackof< T ></a>.</p> </div> </div> <a class="anchor" id="ab13b5b7414afbf7c3ae86dab765f17e7"></a><!-- doxytag: member="stack::pull" ref="ab13b5b7414afbf7c3ae86dab765f17e7" args="(stack &stack, timeout_t timeout=0)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="a00091.html">Object</a>* stack::pull </td> <td>(</td> <td class="paramtype"><a class="el" href="a00147.html">stack</a> & </td> <td class="paramname"><em>stack</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a00193.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> </td> <td class="paramname"><em>timeout</em> = <code>0</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [inline, static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Convenience function pull last object from the stack. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">stack</td><td>to get from. </td></tr> <tr><td class="paramname">timeout</td><td>to wait if empty. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>last object or NULL if timed out empty. </dd></dl> <p>Definition at line <a class="el" href="a00180_source.html#l00426">426</a> of file <a class="el" href="a00180_source.html">containers.h</a>.</p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dyncontent"> <div class="center"><img src="a00147_ab13b5b7414afbf7c3ae86dab765f17e7_cgraph.png" border="0" usemap="#a00147_ab13b5b7414afbf7c3ae86dab765f17e7_cgraph" alt=""/></div> <map name="a00147_ab13b5b7414afbf7c3ae86dab765f17e7_cgraph" id="a00147_ab13b5b7414afbf7c3ae86dab765f17e7_cgraph"> <area shape="rect" id="node3" href="a00147.html#ae4e21b3a7a753a08a8d73c1b5a6a4e70" title="Get and remove last object pushed on the stack." alt="" coords="188,5,319,32"/></map> </div> </p> </div> </div> <a class="anchor" id="ad04cc923d7fc664199fcc1842705d896"></a><!-- doxytag: member="stack::push" ref="ad04cc923d7fc664199fcc1842705d896" args="(Object *object, timeout_t timeout=0)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool stack::push </td> <td>(</td> <td class="paramtype"><a class="el" href="a00091.html">Object</a> * </td> <td class="paramname"><em>object</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a00193.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> </td> <td class="paramname"><em>timeout</em> = <code>0</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Push an object into the stack by it's pointer. </p> <p>This can wait for a specified timeout if the stack is full, for example, for another thread to remove an object pointer. This also retains the object. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">object</td><td>to push. </td></tr> <tr><td class="paramname">timeout</td><td>to wait if stack is full in milliseconds. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>true if object pushed, false if stack full and timeout expired. </dd></dl> </div> </div> <a class="anchor" id="ac4abfb47217fe90868c31622a8f29ccc"></a><!-- doxytag: member="stack::push" ref="ac4abfb47217fe90868c31622a8f29ccc" args="(stack &stack, Object *object, timeout_t timeout=0)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static bool stack::push </td> <td>(</td> <td class="paramtype"><a class="el" href="a00147.html">stack</a> & </td> <td class="paramname"><em>stack</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a00091.html">Object</a> * </td> <td class="paramname"><em>object</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a00193.html#af412159e5cef839836a5e7b19ee75d1c">timeout_t</a> </td> <td class="paramname"><em>timeout</em> = <code>0</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [inline, static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Convenience function to push object into the stack. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">stack</td><td>to push into. </td></tr> <tr><td class="paramname">object</td><td>to push. </td></tr> <tr><td class="paramname">timeout</td><td>to wait if full. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>true if pusheded, false if timed out while full. </dd></dl> <p>Definition at line <a class="el" href="a00180_source.html#l00417">417</a> of file <a class="el" href="a00180_source.html">containers.h</a>.</p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dyncontent"> <div class="center"><img src="a00147_ac4abfb47217fe90868c31622a8f29ccc_cgraph.png" border="0" usemap="#a00147_ac4abfb47217fe90868c31622a8f29ccc_cgraph" alt=""/></div> <map name="a00147_ac4abfb47217fe90868c31622a8f29ccc_cgraph" id="a00147_ac4abfb47217fe90868c31622a8f29ccc_cgraph"> <area shape="rect" id="node3" href="a00147.html#ad04cc923d7fc664199fcc1842705d896" title="Push an object into the stack by it's pointer." alt="" coords="188,5,319,32"/></map> </div> </p> </div> </div> <a class="anchor" id="a21221f89434dbf5200b825821c7e86c2"></a><!-- doxytag: member="stack::remove" ref="a21221f89434dbf5200b825821c7e86c2" args="(Object *object)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool stack::remove </td> <td>(</td> <td class="paramtype"><a class="el" href="a00091.html">Object</a> * </td> <td class="paramname"><em>object</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Remove a specific object pointer for the queue. </p> <p>This can remove a member from any location in the queue, whether beginning, end, or somewhere in the middle. This also releases the object. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">object</td><td>to remove. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>true if object was removed, false if not found. </dd></dl> </div> </div> <a class="anchor" id="af72f5704e3c8a9864bc68fc06b224407"></a><!-- doxytag: member="stack::remove" ref="af72f5704e3c8a9864bc68fc06b224407" args="(stack &stack, Object *object)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static bool stack::remove </td> <td>(</td> <td class="paramtype"><a class="el" href="a00147.html">stack</a> & </td> <td class="paramname"><em>stack</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a00091.html">Object</a> * </td> <td class="paramname"><em>object</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [inline, static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Convenience function to remove an object from the stacl. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">stack</td><td>to remove object from. </td></tr> <tr><td class="paramname">object</td><td>to remove. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>true if removed, false if not found. </dd></dl> <p>Definition at line <a class="el" href="a00180_source.html#l00407">407</a> of file <a class="el" href="a00180_source.html">containers.h</a>.</p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dyncontent"> <div class="center"><img src="a00147_af72f5704e3c8a9864bc68fc06b224407_cgraph.png" border="0" usemap="#a00147_af72f5704e3c8a9864bc68fc06b224407_cgraph" alt=""/></div> <map name="a00147_af72f5704e3c8a9864bc68fc06b224407_cgraph" id="a00147_af72f5704e3c8a9864bc68fc06b224407_cgraph"> <area shape="rect" id="node3" href="a00147.html#a21221f89434dbf5200b825821c7e86c2" title="Remove a specific object pointer for the queue." alt="" coords="205,5,357,32"/></map> </div> </p> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li>ucommon/<a class="el" href="a00180_source.html">containers.h</a></li> </ul> </div> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="a00147.html">stack</a> </li> <li class="footer">Generated on Wed Apr 13 2011 22:39:48 for ucommon by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li> </ul> </div> </body> </html>