Sophie

Sophie

distrib > Mageia > 1 > i586 > by-pkgid > 64656f00434e190abe8506174ca339ed > files > 527

ucommon-doc-4.3.1-1.mga1.i586.rpm

<!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&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Data&#160;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&#160;Structures</span></a></li>
      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Data&#160;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> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<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 &lt;<a class="el" href="a00180_source.html">containers.h</a>&gt;</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&#45;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&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#af8df7398ea3530f305f695d6adc39b41">getCount</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</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> *&#160;</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">&#160;</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&#160;</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">&#160;</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&#160;</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">&#160;</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">&#160;</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">&#160;</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">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#ae20e5d415f840f36862007e95a1dcbe7">~stack</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</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&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#ad04d9b0c80dee1a2082e118db941e74c">count</a> (<a class="el" href="a00147.html">stack</a> &amp;<a class="el" href="a00147.html">stack</a>)</td></tr>
<tr><td class="mdescLeft">&#160;</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> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#ab13b5b7414afbf7c3ae86dab765f17e7">pull</a> (<a class="el" href="a00147.html">stack</a> &amp;<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">&#160;</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&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#ac4abfb47217fe90868c31622a8f29ccc">push</a> (<a class="el" href="a00147.html">stack</a> &amp;<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">&#160;</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&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00147.html#af72f5704e3c8a9864bc68fc06b224407">remove</a> (<a class="el" href="a00147.html">stack</a> &amp;<a class="el" href="a00147.html">stack</a>, <a class="el" href="a00091.html">Object</a> *object)</td></tr>
<tr><td class="mdescLeft">&#160;</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&#160;</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&#160;</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 &lt;<a href="mailto:dyfet@gnutelephony.org">dyfet@gnutelephony.org</a>&gt; </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 &amp; 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> *&#160;</td>
          <td class="paramname"><em>pager</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>number</em> = <code>0</code>&#160;</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 &amp;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> &amp;&#160;</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&#160;</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>&#160;</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&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="ab13b5b7414afbf7c3ae86dab765f17e7"></a><!-- doxytag: member="stack::pull" ref="ab13b5b7414afbf7c3ae86dab765f17e7" args="(stack &amp;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> &amp;&#160;</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>&#160;</td>
          <td class="paramname"><em>timeout</em> = <code>0</code>&#160;</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> *&#160;</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>&#160;</td>
          <td class="paramname"><em>timeout</em> = <code>0</code>&#160;</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 &amp;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> &amp;&#160;</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> *&#160;</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>&#160;</td>
          <td class="paramname"><em>timeout</em> = <code>0</code>&#160;</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&#39;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> *&#160;</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 &amp;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> &amp;&#160;</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> *&#160;</td>
          <td class="paramname"><em>object</em>&#160;</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&#160;
<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>