Sophie

Sophie

distrib > Mandriva > current > i586 > media > main-updates > by-pkgid > ed376d6842ea322c25405e7c23b3bc12 > files > 304

libcommoncpp-devel-1.8.0-5.1mdv2010.1.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>GNU CommonC++: ost::Runlist Class 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.3 -->
<div class="navigation" id="top">
  <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 class="current"><a href="annotated.html"><span>Classes</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 class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="classes.html"><span>Class&nbsp;Index</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="navpath"><a class="el" href="namespaceost.html">ost</a>::<a class="el" href="classost_1_1_runlist.html">Runlist</a>
  </div>
</div>
<div class="contents">
<h1>ost::Runlist Class Reference</h1><!-- doxytag: class="ost::Runlist" --><!-- doxytag: inherits="ost::Mutex" -->
<p>A runlist is used to restrict concurrent exection to a limited set of concurrent sessions, much like a semaphore.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="misc_8h_source.html">misc.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ost::Runlist:</div>
<div class="dynsection">
 <div class="center">
  <img src="classost_1_1_runlist.png" usemap="#ost::Runlist_map" alt=""/>
  <map id="ost::Runlist_map" name="ost::Runlist_map">
<area href="classost_1_1_mutex.html" alt="ost::Mutex" shape="rect" coords="0,0,71,24"/>
</map>
 </div>
</div>

<p><a href="classost_1_1_runlist-members.html">List of all members.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_runlist.html#acf40da12ac37924ec6b87d69506e4b93">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="#acf40da12ac37924ec6b87d69506e4b93"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_runlist.html#a8fcab00665f5e090c65cc13e3a69d8ac">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="#a8fcab00665f5e090c65cc13e3a69d8ac"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_runlist.html#a96632ce03ef17c8e50a646522cfbd398">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="#a96632ce03ef17c8e50a646522cfbd398"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_runlist.html#a6dbfc8c0d5adbed629cfcda1470b937e">set</a> (unsigned <a class="el" href="classost_1_1_runlist.html#adf815575e69d1380df34a22d1b76b589">limit</a>)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the limit.  <a href="#a6dbfc8c0d5adbed629cfcda1470b937e"></a><br/></td></tr>
<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_runlist.html#a5181bd617f64b050cefe1add4f26b05b">check</a> (void)</td></tr>
<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_runlist.html#adf815575e69d1380df34a22d1b76b589">limit</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classost_1_1_runlist.html#a6b6d76330d6816dae8fd59fa2ddc80e0">used</a></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>A runlist is used to restrict concurrent exection to a limited set of concurrent sessions, much like a semaphore. </p>
<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 class="author"><dt><b>Author:</b></dt><dd>David Sugar &lt;<a href="mailto:dyfet@ostel.com">dyfet@ostel.com</a>&gt; list of runable objects. </dd></dl>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="acf40da12ac37924ec6b87d69506e4b93"></a><!-- doxytag: member="ost::Runlist::Runlist" ref="acf40da12ac37924ec6b87d69506e4b93" args="(unsigned count=1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ost::Runlist::Runlist </td>
          <td>(</td>
          <td class="paramtype">unsigned&nbsp;</td>
          <td class="paramname"> <em>count</em> = <code>1</code></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a new runlist with a specified limit. </p>
<dl><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>
  </dd>
</dl>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a8fcab00665f5e090c65cc13e3a69d8ac"></a><!-- doxytag: member="ost::Runlist::add" ref="a8fcab00665f5e090c65cc13e3a69d8ac" args="(Runable *run)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ost::Runlist::add </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classost_1_1_runable.html">Runable</a> *&nbsp;</td>
          <td class="paramname"> <em>run</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add a runable object to this runlist. </p>
<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 class="return"><dt><b>Returns:</b></dt><dd>true if immediately ready to run </dd></dl>
<dl><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>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5181bd617f64b050cefe1add4f26b05b"></a><!-- doxytag: member="ost::Runlist::check" ref="a5181bd617f64b050cefe1add4f26b05b" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ost::Runlist::check </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a96632ce03ef17c8e50a646522cfbd398"></a><!-- doxytag: member="ost::Runlist::del" ref="a96632ce03ef17c8e50a646522cfbd398" args="(Runable *run)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ost::Runlist::del </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classost_1_1_runable.html">Runable</a> *&nbsp;</td>
          <td class="paramname"> <em>run</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<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><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>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6dbfc8c0d5adbed629cfcda1470b937e"></a><!-- doxytag: member="ost::Runlist::set" ref="a6dbfc8c0d5adbed629cfcda1470b937e" args="(unsigned limit)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ost::Runlist::set </td>
          <td>(</td>
          <td class="paramtype">unsigned&nbsp;</td>
          <td class="paramname"> <em>limit</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the limit. </p>
<dl><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>
  </dd>
</dl>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="adf815575e69d1380df34a22d1b76b589"></a><!-- doxytag: member="ost::Runlist::limit" ref="adf815575e69d1380df34a22d1b76b589" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned <a class="el" href="classost_1_1_runlist.html#adf815575e69d1380df34a22d1b76b589">ost::Runlist::limit</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a6b6d76330d6816dae8fd59fa2ddc80e0"></a><!-- doxytag: member="ost::Runlist::used" ref="a6b6d76330d6816dae8fd59fa2ddc80e0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned <a class="el" href="classost_1_1_runlist.html#a6b6d76330d6816dae8fd59fa2ddc80e0">ost::Runlist::used</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<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></li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Fri Nov 12 09:55:47 2010 for GNU CommonC++ by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>