Sophie

Sophie

distrib > Mandriva > 2007.0 > i586 > by-pkgid > ad1ba1135a9c9eeffc2e538163e00373 > files > 259

libCommonC++2_1.4-devel-1.4.1-1mdv2007.0.i586.rpm

<!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::Runlist 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&nbsp;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&nbsp;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&nbsp;List</span></a></li>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul></div>
<div class="nav">
<a class="el" href="namespaceost.html">ost</a>::<a class="el" href="classost_1_1_runlist.html">Runlist</a></div>
<h1>ost::Runlist Class Reference</h1><!-- doxytag: class="ost::Runlist" --><!-- doxytag: inherits="ost::Mutex" -->A runlist is used to restrict concurrent exection to a limited set of concurrent sessions, much like a semaphore.list of runable objects.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="misc_8h-source.html">misc.h</a>&gt;</code>
<p>
<p>Inheritance diagram for ost::Runlist:
<p><center><img src="classost_1_1_runlist.png" usemap="#ost::Runlist_map" border="0" alt=""></center>
<map name="ost::Runlist_map">
<area href="classost_1_1_mutex.html" alt="ost::Mutex" shape="rect" coords="0,0,71,24">
</map>
<a href="classost_1_1_runlist-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">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_runlist.html#cf40da12ac37924ec6b87d69506e4b93">Runlist</a> (unsigned count=1)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new runlist with a specified limit.  <a href="#cf40da12ac37924ec6b87d69506e4b93"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_runlist.html#8fcab00665f5e090c65cc13e3a69d8ac">add</a> (<a class="el" href="classost_1_1_runable.html">Runable</a> *run)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a runable object to this runlist.  <a href="#8fcab00665f5e090c65cc13e3a69d8ac"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_runlist.html#96632ce03ef17c8e50a646522cfbd398">del</a> (<a class="el" href="classost_1_1_runable.html">Runable</a> *run)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove a runable object from the wait list or notify when it is done running so that the used count can be decremented.  <a href="#96632ce03ef17c8e50a646522cfbd398"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_runlist.html#6dbfc8c0d5adbed629cfcda1470b937e">set</a> (unsigned <a class="el" href="classost_1_1_runlist.html#df815575e69d1380df34a22d1b76b589">limit</a>)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the limit.  <a href="#6dbfc8c0d5adbed629cfcda1470b937e"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_runlist.html#5181bd617f64b050cefe1add4f26b05b">check</a> (void)</td></tr>

<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_runlist.html#df815575e69d1380df34a22d1b76b589">limit</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_runlist.html#6b6d76330d6816dae8fd59fa2ddc80e0">used</a></td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
A runlist is used to restrict concurrent exection to a limited set of concurrent sessions, much like a semaphore.list of runable objects. 
<p>
However, the runlist differs in that it notifies objects when they become ready to run, rather than requiring them to wait and "block" for the semaphore count to become low enough to continue.<p>
<dl compact><dt><b>Author:</b></dt><dd>David Sugar &lt;<a href="mailto:dyfet@ostel.com">dyfet@ostel.com</a>&gt; </dd></dl>

<p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="cf40da12ac37924ec6b87d69506e4b93"></a><!-- doxytag: member="ost::Runlist::Runlist" ref="cf40da12ac37924ec6b87d69506e4b93" args="(unsigned count=1)" --><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::Runlist::Runlist           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">unsigned&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>count</em> = <code>1</code>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Create a new runlist with a specified limit. 
<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>count</em>&nbsp;</td><td>limit before wait queuing. </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="8fcab00665f5e090c65cc13e3a69d8ac"></a><!-- doxytag: member="ost::Runlist::add" ref="8fcab00665f5e090c65cc13e3a69d8ac" args="(Runable *run)" --><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">bool ost::Runlist::add           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="classost_1_1_runable.html">Runable</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>run</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Add a runable object to this runlist. 
<p>
If the number of entries running is below the limit, then add returns true otherwise the entry is added to the list.<p>
<dl compact><dt><b>Returns:</b></dt><dd>true if immediately ready to run </dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>run</em>&nbsp;</td><td>pointer to runable object. </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="5181bd617f64b050cefe1add4f26b05b"></a><!-- doxytag: member="ost::Runlist::check" ref="5181bd617f64b050cefe1add4f26b05b" 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::Runlist::check           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [protected]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a class="anchor" name="96632ce03ef17c8e50a646522cfbd398"></a><!-- doxytag: member="ost::Runlist::del" ref="96632ce03ef17c8e50a646522cfbd398" args="(Runable *run)" --><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::Runlist::del           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="classost_1_1_runable.html">Runable</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>run</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Remove a runable object from the wait list or notify when it is done running so that the used count can be decremented. 
<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>run</em>&nbsp;</td><td>pointer to runable object. </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="6dbfc8c0d5adbed629cfcda1470b937e"></a><!-- doxytag: member="ost::Runlist::set" ref="6dbfc8c0d5adbed629cfcda1470b937e" args="(unsigned limit)" --><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::Runlist::set           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">unsigned&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>limit</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Set the limit. 
<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>limit</em>&nbsp;</td><td>to use. </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="df815575e69d1380df34a22d1b76b589"></a><!-- doxytag: member="ost::Runlist::limit" ref="df815575e69d1380df34a22d1b76b589" 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">unsigned <a class="el" href="classost_1_1_runlist.html#df815575e69d1380df34a22d1b76b589">ost::Runlist::limit</a><code> [protected]</code>          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<a class="anchor" name="6b6d76330d6816dae8fd59fa2ddc80e0"></a><!-- doxytag: member="ost::Runlist::used" ref="6b6d76330d6816dae8fd59fa2ddc80e0" 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">unsigned <a class="el" href="classost_1_1_runlist.html#6b6d76330d6816dae8fd59fa2ddc80e0">ost::Runlist::used</a><code> [protected]</code>          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="misc_8h-source.html">misc.h</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 19 10:50:56 2006 for GNU CommonC++ by&nbsp;
<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>