dash-docs/en/doxygen/html/classCCheckQueue.html

699 lines
34 KiB
HTML

<!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.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Dash Core: CCheckQueue&lt; T &gt; Class Template 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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.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 id="projectlogo"><img alt="Logo" src="bitcoin_logo_doxygen.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Dash Core
&#160;<span id="projectnumber">0.12.2.1</span>
</div>
<div id="projectbrief">P2P Digital Currency</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classCCheckQueue.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classCCheckQueue-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">CCheckQueue&lt; T &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="checkqueue_8h_source.html">checkqueue.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:ad0e6a979f8433c05770350bc6b90a849"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCCheckQueue.html#ad0e6a979f8433c05770350bc6b90a849">CCheckQueue</a> (unsigned int nBatchSizeIn)</td></tr>
<tr class="memdesc:ad0e6a979f8433c05770350bc6b90a849"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new check queue. <a href="#ad0e6a979f8433c05770350bc6b90a849">More...</a><br /></td></tr>
<tr class="separator:ad0e6a979f8433c05770350bc6b90a849"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3602cd305b07612e634363b31c1d46c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCCheckQueue.html#ad3602cd305b07612e634363b31c1d46c">Thread</a> ()</td></tr>
<tr class="memdesc:ad3602cd305b07612e634363b31c1d46c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Worker thread. <a href="#ad3602cd305b07612e634363b31c1d46c">More...</a><br /></td></tr>
<tr class="separator:ad3602cd305b07612e634363b31c1d46c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ff3e0e8241491efa1803eeb3a53e7fa"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCCheckQueue.html#a4ff3e0e8241491efa1803eeb3a53e7fa">Wait</a> ()</td></tr>
<tr class="memdesc:a4ff3e0e8241491efa1803eeb3a53e7fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait until execution finishes, and return whether all evaluations were successful. <a href="#a4ff3e0e8241491efa1803eeb3a53e7fa">More...</a><br /></td></tr>
<tr class="separator:a4ff3e0e8241491efa1803eeb3a53e7fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee8e83bcdeef17740937e6c1dc84c478"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCCheckQueue.html#aee8e83bcdeef17740937e6c1dc84c478">Add</a> (std::vector&lt; T &gt; &amp;vChecks)</td></tr>
<tr class="memdesc:aee8e83bcdeef17740937e6c1dc84c478"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a batch of checks to the queue. <a href="#aee8e83bcdeef17740937e6c1dc84c478">More...</a><br /></td></tr>
<tr class="separator:aee8e83bcdeef17740937e6c1dc84c478"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05820838bd337f6e882ad21ac590d524"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCCheckQueue.html#a05820838bd337f6e882ad21ac590d524">~CCheckQueue</a> ()</td></tr>
<tr class="separator:a05820838bd337f6e882ad21ac590d524"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c091928859b0936331341edeb977325"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCCheckQueue.html#a3c091928859b0936331341edeb977325">IsIdle</a> ()</td></tr>
<tr class="separator:a3c091928859b0936331341edeb977325"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:a20cdd097d93da6deeca6e5721a758165"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCCheckQueue.html#a20cdd097d93da6deeca6e5721a758165">Loop</a> (bool fMaster=false)</td></tr>
<tr class="separator:a20cdd097d93da6deeca6e5721a758165"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:ae5f85fa9477f4b235186caed13fdb0bd"><td class="memItemLeft" align="right" valign="top">boost::mutex&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCCheckQueue.html#ae5f85fa9477f4b235186caed13fdb0bd">mutex</a></td></tr>
<tr class="memdesc:ae5f85fa9477f4b235186caed13fdb0bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mutex to protect the inner state. <a href="#ae5f85fa9477f4b235186caed13fdb0bd">More...</a><br /></td></tr>
<tr class="separator:ae5f85fa9477f4b235186caed13fdb0bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac13d399e7ba30792618978ef5cc35aaf"><td class="memItemLeft" align="right" valign="top">boost::condition_variable&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCCheckQueue.html#ac13d399e7ba30792618978ef5cc35aaf">condWorker</a></td></tr>
<tr class="memdesc:ac13d399e7ba30792618978ef5cc35aaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Worker threads block on this when out of work. <a href="#ac13d399e7ba30792618978ef5cc35aaf">More...</a><br /></td></tr>
<tr class="separator:ac13d399e7ba30792618978ef5cc35aaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0227186df5be5eaa7d1477a8c8b7f1f"><td class="memItemLeft" align="right" valign="top">boost::condition_variable&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCCheckQueue.html#aa0227186df5be5eaa7d1477a8c8b7f1f">condMaster</a></td></tr>
<tr class="memdesc:aa0227186df5be5eaa7d1477a8c8b7f1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Master thread blocks on this when out of work. <a href="#aa0227186df5be5eaa7d1477a8c8b7f1f">More...</a><br /></td></tr>
<tr class="separator:aa0227186df5be5eaa7d1477a8c8b7f1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a378dfa046218f16efbb9ac6974346db5"><td class="memItemLeft" align="right" valign="top">std::vector&lt; T &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCCheckQueue.html#a378dfa046218f16efbb9ac6974346db5">queue</a></td></tr>
<tr class="separator:a378dfa046218f16efbb9ac6974346db5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1fe215c60f972ee5e69501d8d1acbe0d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCCheckQueue.html#a1fe215c60f972ee5e69501d8d1acbe0d">nIdle</a></td></tr>
<tr class="memdesc:a1fe215c60f972ee5e69501d8d1acbe0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of workers (including the master) that are idle. <a href="#a1fe215c60f972ee5e69501d8d1acbe0d">More...</a><br /></td></tr>
<tr class="separator:a1fe215c60f972ee5e69501d8d1acbe0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1bc74ce62477926a24bd4dd03ea5c39"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCCheckQueue.html#ab1bc74ce62477926a24bd4dd03ea5c39">nTotal</a></td></tr>
<tr class="memdesc:ab1bc74ce62477926a24bd4dd03ea5c39"><td class="mdescLeft">&#160;</td><td class="mdescRight">The total number of workers (including the master). <a href="#ab1bc74ce62477926a24bd4dd03ea5c39">More...</a><br /></td></tr>
<tr class="separator:ab1bc74ce62477926a24bd4dd03ea5c39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f8ef0bce2f6c6ee71c85215a90ed41e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCCheckQueue.html#a0f8ef0bce2f6c6ee71c85215a90ed41e">fAllOk</a></td></tr>
<tr class="memdesc:a0f8ef0bce2f6c6ee71c85215a90ed41e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The temporary evaluation result. <a href="#a0f8ef0bce2f6c6ee71c85215a90ed41e">More...</a><br /></td></tr>
<tr class="separator:a0f8ef0bce2f6c6ee71c85215a90ed41e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07acb246ed2003ae8083f2d0bda903da"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCCheckQueue.html#a07acb246ed2003ae8083f2d0bda903da">nTodo</a></td></tr>
<tr class="separator:a07acb246ed2003ae8083f2d0bda903da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46ea155382762d0f556cdfa3433f04c6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCCheckQueue.html#a46ea155382762d0f556cdfa3433f04c6">fQuit</a></td></tr>
<tr class="memdesc:a46ea155382762d0f556cdfa3433f04c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether we're shutting down. <a href="#a46ea155382762d0f556cdfa3433f04c6">More...</a><br /></td></tr>
<tr class="separator:a46ea155382762d0f556cdfa3433f04c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5d2df2dfa32a0b7f514bcd5debc52da"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCCheckQueue.html#ae5d2df2dfa32a0b7f514bcd5debc52da">nBatchSize</a></td></tr>
<tr class="memdesc:ae5d2df2dfa32a0b7f514bcd5debc52da"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of elements to be processed in one batch. <a href="#ae5d2df2dfa32a0b7f514bcd5debc52da">More...</a><br /></td></tr>
<tr class="separator:ae5d2df2dfa32a0b7f514bcd5debc52da"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename T&gt;<br />
class CCheckQueue&lt; T &gt;</h3>
<p>Queue for verifications that have to be performed. The verifications are represented by a type T, which must provide an operator(), returning a bool.</p>
<p>One thread (the master) is assumed to push batches of verifications onto the queue, where they are processed by N-1 worker threads. When the master is done adding work, it temporarily joins the worker pool as an N'th worker, until all jobs are done. </p>
<p class="definition">Definition at line <a class="el" href="checkqueue_8h_source.html#l00030">30</a> of file <a class="el" href="checkqueue_8h_source.html">checkqueue.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ad0e6a979f8433c05770350bc6b90a849"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad0e6a979f8433c05770350bc6b90a849">&#9670;&nbsp;</a></span>CCheckQueue()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classCCheckQueue.html">CCheckQueue</a>&lt; T &gt;::<a class="el" href="classCCheckQueue.html">CCheckQueue</a> </td>
<td>(</td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>nBatchSizeIn</em></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>Create a new check queue. </p>
<p class="definition">Definition at line <a class="el" href="checkqueue_8h_source.html#l00131">131</a> of file <a class="el" href="checkqueue_8h_source.html">checkqueue.h</a>.</p>
</div>
</div>
<a id="a05820838bd337f6e882ad21ac590d524"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a05820838bd337f6e882ad21ac590d524">&#9670;&nbsp;</a></span>~CCheckQueue()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classCCheckQueue.html">CCheckQueue</a>&lt; T &gt;::~<a class="el" href="classCCheckQueue.html">CCheckQueue</a> </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 class="definition">Definition at line <a class="el" href="checkqueue_8h_source.html#l00160">160</a> of file <a class="el" href="checkqueue_8h_source.html">checkqueue.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aee8e83bcdeef17740937e6c1dc84c478"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee8e83bcdeef17740937e6c1dc84c478">&#9670;&nbsp;</a></span>Add()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classCCheckQueue.html">CCheckQueue</a>&lt; T &gt;::Add </td>
<td>(</td>
<td class="paramtype">std::vector&lt; T &gt; &amp;&#160;</td>
<td class="paramname"><em>vChecks</em></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>Add a batch of checks to the queue. </p>
<p class="definition">Definition at line <a class="el" href="checkqueue_8h_source.html#l00146">146</a> of file <a class="el" href="checkqueue_8h_source.html">checkqueue.h</a>.</p>
</div>
</div>
<a id="a3c091928859b0936331341edeb977325"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c091928859b0936331341edeb977325">&#9670;&nbsp;</a></span>IsIdle()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classCCheckQueue.html">CCheckQueue</a>&lt; T &gt;::IsIdle </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 class="definition">Definition at line <a class="el" href="checkqueue_8h_source.html#l00164">164</a> of file <a class="el" href="checkqueue_8h_source.html">checkqueue.h</a>.</p>
</div>
</div>
<a id="a20cdd097d93da6deeca6e5721a758165"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a20cdd097d93da6deeca6e5721a758165">&#9670;&nbsp;</a></span>Loop()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classCCheckQueue.html">CCheckQueue</a>&lt; T &gt;::Loop </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>fMaster</em> = <code>false</code></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Internal function that does bulk of the verification work. </p>
<p class="definition">Definition at line <a class="el" href="checkqueue_8h_source.html#l00069">69</a> of file <a class="el" href="checkqueue_8h_source.html">checkqueue.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="checkqueue_8h_source.html#l00134">CCheckQueue&lt; T &gt;::Thread()</a>, and <a class="el" href="checkqueue_8h_source.html#l00140">CCheckQueue&lt; T &gt;::Wait()</a>.</p>
</div>
</div>
<a id="ad3602cd305b07612e634363b31c1d46c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad3602cd305b07612e634363b31c1d46c">&#9670;&nbsp;</a></span>Thread()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classCCheckQueue.html">CCheckQueue</a>&lt; T &gt;::Thread </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>Worker thread. </p>
<p class="definition">Definition at line <a class="el" href="checkqueue_8h_source.html#l00134">134</a> of file <a class="el" href="checkqueue_8h_source.html">checkqueue.h</a>.</p>
</div>
</div>
<a id="a4ff3e0e8241491efa1803eeb3a53e7fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4ff3e0e8241491efa1803eeb3a53e7fa">&#9670;&nbsp;</a></span>Wait()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classCCheckQueue.html">CCheckQueue</a>&lt; T &gt;::Wait </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>Wait until execution finishes, and return whether all evaluations were successful. </p>
<p class="definition">Definition at line <a class="el" href="checkqueue_8h_source.html#l00140">140</a> of file <a class="el" href="checkqueue_8h_source.html">checkqueue.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="aa0227186df5be5eaa7d1477a8c8b7f1f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0227186df5be5eaa7d1477a8c8b7f1f">&#9670;&nbsp;</a></span>condMaster</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">boost::condition_variable <a class="el" href="classCCheckQueue.html">CCheckQueue</a>&lt; T &gt;::condMaster</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Master thread blocks on this when out of work. </p>
<p class="definition">Definition at line <a class="el" href="checkqueue_8h_source.html#l00040">40</a> of file <a class="el" href="checkqueue_8h_source.html">checkqueue.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="checkqueue_8h_source.html#l00069">CCheckQueue&lt; T &gt;::Loop()</a>.</p>
</div>
</div>
<a id="ac13d399e7ba30792618978ef5cc35aaf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac13d399e7ba30792618978ef5cc35aaf">&#9670;&nbsp;</a></span>condWorker</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">boost::condition_variable <a class="el" href="classCCheckQueue.html">CCheckQueue</a>&lt; T &gt;::condWorker</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Worker threads block on this when out of work. </p>
<p class="definition">Definition at line <a class="el" href="checkqueue_8h_source.html#l00037">37</a> of file <a class="el" href="checkqueue_8h_source.html">checkqueue.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="checkqueue_8h_source.html#l00146">CCheckQueue&lt; T &gt;::Add()</a>, and <a class="el" href="checkqueue_8h_source.html#l00069">CCheckQueue&lt; T &gt;::Loop()</a>.</p>
</div>
</div>
<a id="a0f8ef0bce2f6c6ee71c85215a90ed41e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0f8ef0bce2f6c6ee71c85215a90ed41e">&#9670;&nbsp;</a></span>fAllOk</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classCCheckQueue.html">CCheckQueue</a>&lt; T &gt;::fAllOk</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The temporary evaluation result. </p>
<p class="definition">Definition at line <a class="el" href="checkqueue_8h_source.html#l00053">53</a> of file <a class="el" href="checkqueue_8h_source.html">checkqueue.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="checkqueue_8h_source.html#l00164">CCheckQueue&lt; T &gt;::IsIdle()</a>, and <a class="el" href="checkqueue_8h_source.html#l00069">CCheckQueue&lt; T &gt;::Loop()</a>.</p>
</div>
</div>
<a id="a46ea155382762d0f556cdfa3433f04c6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a46ea155382762d0f556cdfa3433f04c6">&#9670;&nbsp;</a></span>fQuit</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classCCheckQueue.html">CCheckQueue</a>&lt; T &gt;::fQuit</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Whether we're shutting down. </p>
<p class="definition">Definition at line <a class="el" href="checkqueue_8h_source.html#l00063">63</a> of file <a class="el" href="checkqueue_8h_source.html">checkqueue.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="checkqueue_8h_source.html#l00069">CCheckQueue&lt; T &gt;::Loop()</a>.</p>
</div>
</div>
<a id="ae5f85fa9477f4b235186caed13fdb0bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae5f85fa9477f4b235186caed13fdb0bd">&#9670;&nbsp;</a></span>mutex</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">boost::mutex <a class="el" href="classCCheckQueue.html">CCheckQueue</a>&lt; T &gt;::mutex</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Mutex to protect the inner state. </p>
<p class="definition">Definition at line <a class="el" href="checkqueue_8h_source.html#l00034">34</a> of file <a class="el" href="checkqueue_8h_source.html">checkqueue.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="checkqueue_8h_source.html#l00146">CCheckQueue&lt; T &gt;::Add()</a>, <a class="el" href="checkqueue_8h_source.html#l00164">CCheckQueue&lt; T &gt;::IsIdle()</a>, and <a class="el" href="checkqueue_8h_source.html#l00069">CCheckQueue&lt; T &gt;::Loop()</a>.</p>
</div>
</div>
<a id="ae5d2df2dfa32a0b7f514bcd5debc52da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae5d2df2dfa32a0b7f514bcd5debc52da">&#9670;&nbsp;</a></span>nBatchSize</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">unsigned int <a class="el" href="classCCheckQueue.html">CCheckQueue</a>&lt; T &gt;::nBatchSize</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The maximum number of elements to be processed in one batch. </p>
<p class="definition">Definition at line <a class="el" href="checkqueue_8h_source.html#l00066">66</a> of file <a class="el" href="checkqueue_8h_source.html">checkqueue.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="checkqueue_8h_source.html#l00069">CCheckQueue&lt; T &gt;::Loop()</a>.</p>
</div>
</div>
<a id="a1fe215c60f972ee5e69501d8d1acbe0d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1fe215c60f972ee5e69501d8d1acbe0d">&#9670;&nbsp;</a></span>nIdle</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="classCCheckQueue.html">CCheckQueue</a>&lt; T &gt;::nIdle</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The number of workers (including the master) that are idle. </p>
<p class="definition">Definition at line <a class="el" href="checkqueue_8h_source.html#l00047">47</a> of file <a class="el" href="checkqueue_8h_source.html">checkqueue.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="checkqueue_8h_source.html#l00164">CCheckQueue&lt; T &gt;::IsIdle()</a>, and <a class="el" href="checkqueue_8h_source.html#l00069">CCheckQueue&lt; T &gt;::Loop()</a>.</p>
</div>
</div>
<a id="a07acb246ed2003ae8083f2d0bda903da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a07acb246ed2003ae8083f2d0bda903da">&#9670;&nbsp;</a></span>nTodo</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">unsigned int <a class="el" href="classCCheckQueue.html">CCheckQueue</a>&lt; T &gt;::nTodo</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Number of verifications that haven't completed yet. This includes elements that are no longer queued, but still in the worker's own batches. </p>
<p class="definition">Definition at line <a class="el" href="checkqueue_8h_source.html#l00060">60</a> of file <a class="el" href="checkqueue_8h_source.html">checkqueue.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="checkqueue_8h_source.html#l00146">CCheckQueue&lt; T &gt;::Add()</a>, <a class="el" href="checkqueue_8h_source.html#l00164">CCheckQueue&lt; T &gt;::IsIdle()</a>, and <a class="el" href="checkqueue_8h_source.html#l00069">CCheckQueue&lt; T &gt;::Loop()</a>.</p>
</div>
</div>
<a id="ab1bc74ce62477926a24bd4dd03ea5c39"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab1bc74ce62477926a24bd4dd03ea5c39">&#9670;&nbsp;</a></span>nTotal</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="classCCheckQueue.html">CCheckQueue</a>&lt; T &gt;::nTotal</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The total number of workers (including the master). </p>
<p class="definition">Definition at line <a class="el" href="checkqueue_8h_source.html#l00050">50</a> of file <a class="el" href="checkqueue_8h_source.html">checkqueue.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="checkqueue_8h_source.html#l00164">CCheckQueue&lt; T &gt;::IsIdle()</a>, and <a class="el" href="checkqueue_8h_source.html#l00069">CCheckQueue&lt; T &gt;::Loop()</a>.</p>
</div>
</div>
<a id="a378dfa046218f16efbb9ac6974346db5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a378dfa046218f16efbb9ac6974346db5">&#9670;&nbsp;</a></span>queue</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;T&gt; <a class="el" href="classCCheckQueue.html">CCheckQueue</a>&lt; T &gt;::queue</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>The queue of elements to be processed. As the order of booleans doesn't matter, it is used as a LIFO (stack) </p>
<p class="definition">Definition at line <a class="el" href="checkqueue_8h_source.html#l00044">44</a> of file <a class="el" href="checkqueue_8h_source.html">checkqueue.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="checkqueue_8h_source.html#l00146">CCheckQueue&lt; T &gt;::Add()</a>, and <a class="el" href="checkqueue_8h_source.html#l00069">CCheckQueue&lt; T &gt;::Loop()</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/<a class="el" href="checkqueue_8h_source.html">checkqueue.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="classCCheckQueue.html">CCheckQueue</a></li>
<li class="footer">Generated on Thu Dec 14 2017 13:15:12 for Dash Core by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
</ul>
</div>
</body>
</html>