Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > ba6e5e1a033bd8535c43a771ce407926 > files > 259

lib64cxx-gtk-utils2.2-devel-2.2.3-2.mga4.x86_64.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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>c++-gtk-utils: Cgu::Thread::TaskManager::IncHandle Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">c++-gtk-utils
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.4 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</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>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceCgu.html">Cgu</a></li><li class="navelem"><a class="el" href="namespaceCgu_1_1Thread.html">Thread</a></li><li class="navelem"><a class="el" href="classCgu_1_1Thread_1_1TaskManager.html">TaskManager</a></li><li class="navelem"><a class="el" href="classCgu_1_1Thread_1_1TaskManager_1_1IncHandle.html">IncHandle</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classCgu_1_1Thread_1_1TaskManager_1_1IncHandle-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Cgu::Thread::TaskManager::IncHandle Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>A scoped handle for exception safe incrementing of the maximum number of threads that a <a class="el" href="classCgu_1_1Thread_1_1TaskManager.html" title="A thread-pool class for managing tasks in multi-threaded programs. ">TaskManager</a> object will run.  
 <a href="classCgu_1_1Thread_1_1TaskManager_1_1IncHandle.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="task__manager_8h_source.html">c++-gtk-utils/task_manager.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a27a5dd43df02d246f51fd5fd3e0a501c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCgu_1_1Thread_1_1TaskManager_1_1IncHandle.html#a27a5dd43df02d246f51fd5fd3e0a501c">IncHandle</a> (const <a class="el" href="classCgu_1_1Thread_1_1TaskManager_1_1IncHandle.html">TaskManager::IncHandle</a> &amp;)=delete</td></tr>
<tr class="separator:a27a5dd43df02d246f51fd5fd3e0a501c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b788742ca3995de50a47bbd46d84f6a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCgu_1_1Thread_1_1TaskManager_1_1IncHandle.html">TaskManager::IncHandle</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCgu_1_1Thread_1_1TaskManager_1_1IncHandle.html#a9b788742ca3995de50a47bbd46d84f6a">operator=</a> (const <a class="el" href="classCgu_1_1Thread_1_1TaskManager_1_1IncHandle.html">TaskManager::IncHandle</a> &amp;)=delete</td></tr>
<tr class="separator:a9b788742ca3995de50a47bbd46d84f6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51289964533b458fbcfd68fc7299f0b7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCgu_1_1Thread_1_1TaskManager_1_1IncHandle.html#a51289964533b458fbcfd68fc7299f0b7">IncHandle</a> ()=delete</td></tr>
<tr class="separator:a51289964533b458fbcfd68fc7299f0b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5beaa2d3c0b667037f3937373963016a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCgu_1_1Thread_1_1TaskManager_1_1IncHandle.html#a5beaa2d3c0b667037f3937373963016a">IncHandle</a> (<a class="el" href="classCgu_1_1Thread_1_1TaskManager.html">TaskManager</a> &amp;tm_)</td></tr>
<tr class="separator:a5beaa2d3c0b667037f3937373963016a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59c3d57242a1440a7e9f9abf14d0fa7d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCgu_1_1Thread_1_1TaskManager_1_1IncHandle.html#a59c3d57242a1440a7e9f9abf14d0fa7d">~IncHandle</a> ()</td></tr>
<tr class="separator:a59c3d57242a1440a7e9f9abf14d0fa7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A scoped handle for exception safe incrementing of the maximum number of threads that a <a class="el" href="classCgu_1_1Thread_1_1TaskManager.html" title="A thread-pool class for managing tasks in multi-threaded programs. ">TaskManager</a> object will run. </p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classCgu_1_1Thread_1_1TaskManager.html" title="A thread-pool class for managing tasks in multi-threaded programs. ">Thread::TaskManager</a></dd></dl>
<p>This class is for use where a task running on a <a class="el" href="classCgu_1_1Thread_1_1TaskManager.html" title="A thread-pool class for managing tasks in multi-threaded programs. ">TaskManager</a> object is about to make a blocking call. It enables the task to increment in an exception safe way the maximum number of tasks which the <a class="el" href="classCgu_1_1Thread_1_1TaskManager.html" title="A thread-pool class for managing tasks in multi-threaded programs. ">TaskManager</a> object will currently run in its thread pool to enable another thread to keep a core active, so that the number is automatically decremented again when the ThreadManager::IncHandle object has gone out of scope after the task has finished making blocking calls or something has thrown.</p>
<p>The documentation on <a class="el" href="classCgu_1_1Thread_1_1TaskManager.html" title="A thread-pool class for managing tasks in multi-threaded programs. ">Thread::TaskManager</a> gives an example of its use.</p>
<p>This class is available since version 2.2.1 of the library. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a27a5dd43df02d246f51fd5fd3e0a501c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Cgu::Thread::TaskManager::IncHandle::IncHandle </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCgu_1_1Thread_1_1TaskManager_1_1IncHandle.html">TaskManager::IncHandle</a> &amp;&#160;</td>
          <td class="paramname">)</td><td></td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This class cannot be copied. The copy constructor is deleted.</p>
<p>Since 2.0.18/2.2.1 </p>

</div>
</div>
<a class="anchor" id="a51289964533b458fbcfd68fc7299f0b7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Cgu::Thread::TaskManager::IncHandle::IncHandle </td>
          <td>(</td>
          <td class="paramname">)</td><td></td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This class requires initialisation with a <a class="el" href="classCgu_1_1Thread_1_1TaskManager.html" title="A thread-pool class for managing tasks in multi-threaded programs. ">TaskManager</a> object. The default constructor is deleted.</p>
<p>Since 2.0.18/2.2.1 </p>

</div>
</div>
<a class="anchor" id="a5beaa2d3c0b667037f3937373963016a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Cgu::Thread::TaskManager::IncHandle::IncHandle </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCgu_1_1Thread_1_1TaskManager.html">TaskManager</a> &amp;&#160;</td>
          <td class="paramname"><em>tm_</em>)</td><td></td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This constructor calls <a class="el" href="classCgu_1_1Thread_1_1TaskManager.html#ad47297562ee0c838da1242335745d31b">TaskManager::change_max_threads()</a> to increment the maximum number of threads a <a class="el" href="classCgu_1_1Thread_1_1TaskManager.html" title="A thread-pool class for managing tasks in multi-threaded programs. ">TaskManager</a> object will currently run in its thread pool. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">tm_</td><td>The <a class="el" href="classCgu_1_1Thread_1_1TaskManager.html" title="A thread-pool class for managing tasks in multi-threaded programs. ">TaskManager</a> object whose maximum thread limit is to be incremented. </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">std::bad_alloc</td><td>If tasks are currently queued for execution, a new thread will be started, so this exception may be thrown on starting the thread if memory is exhausted and the system throws in that case. (On systems with over-commit/lazy-commit combined with virtual memory (swap), it is rarely useful to check for memory exhaustion). </td></tr>
    <tr><td class="paramname"><a class="el" href="structCgu_1_1Thread_1_1TaskError.html">Cgu::Thread::TaskError</a></td><td>If tasks are currently queued for execution, a new thread will be started, so this exception may be thrown on starting the thread if it fails to start correctly (this would mean that memory is exhausted, the pthread thread limit has been reached or pthread has run out of other resources to start new threads).</td></tr>
  </table>
  </dd>
</dl>
<p>Since 2.0.18/2.2.1 </p>

</div>
</div>
<a class="anchor" id="a59c3d57242a1440a7e9f9abf14d0fa7d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Cgu::Thread::TaskManager::IncHandle::~IncHandle </td>
          <td>(</td>
          <td class="paramname">)</td><td></td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This destructor calls <a class="el" href="classCgu_1_1Thread_1_1TaskManager.html#ad47297562ee0c838da1242335745d31b">TaskManager::change_max_threads()</a> to decrement the maximum number of threads a <a class="el" href="classCgu_1_1Thread_1_1TaskManager.html" title="A thread-pool class for managing tasks in multi-threaded programs. ">TaskManager</a> object will currently run in its thread pool. It will not throw.</p>
<p>Since 2.0.18/2.2.1 </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a9b788742ca3995de50a47bbd46d84f6a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCgu_1_1Thread_1_1TaskManager_1_1IncHandle.html">TaskManager::IncHandle</a>&amp; Cgu::Thread::TaskManager::IncHandle::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCgu_1_1Thread_1_1TaskManager_1_1IncHandle.html">TaskManager::IncHandle</a> &amp;&#160;</td>
          <td class="paramname">)</td><td></td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This class cannot be copied. The assignment operator is deleted.</p>
<p>Since 2.0.18/2.2.1 </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="task__manager_8h_source.html">task_manager.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Sep 16 2013 20:45:32 for c++-gtk-utils by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.4
</small></address>
</body>
</html>