Files
GridFire/docs/html/classgridfire_1_1trigger_1_1_and_trigger.html

712 lines
40 KiB
HTML
Raw Normal View History

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>GridFire: gridfire::trigger::AndTrigger&lt; TriggerContextStruct &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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></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" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
<link href="doxygen-awesome-sidebar-only.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 id="projectrow">
<td id="projectalign">
2025-11-25 14:31:59 -05:00
<div id="projectname">GridFire<span id="projectnumber">&#160;v0.7.0_rc1</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('classgridfire_1_1trigger_1_1_and_trigger.html',''); initResizable(true); });
/* @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">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classgridfire_1_1trigger_1_1_and_trigger-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">gridfire::trigger::AndTrigger&lt; TriggerContextStruct &gt; Class Template Reference<span class="mlabels"><span class="mlabel final">final</span></span></div></div>
</div><!--header-->
<div class="contents">
<p>Logical conjunction of two triggers with short-circuit evaluation.
<a href="#details">More...</a></p>
<p><code>#include &lt;trigger_logical.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for gridfire::trigger::AndTrigger&lt; TriggerContextStruct &gt;:</div>
<div class="dyncontent">
2025-11-06 09:16:40 -05:00
<div class="center"><iframe scrolling="no" frameborder="0" src="classgridfire_1_1trigger_1_1_and_trigger__inherit__graph.svg" width="218" height="259"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for gridfire::trigger::AndTrigger&lt; TriggerContextStruct &gt;:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="classgridfire_1_1trigger_1_1_and_trigger__coll__graph.svg" width="100%" height="410"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a969738baf0bda97664715937d4bc403e" id="r_a969738baf0bda97664715937d4bc403e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a969738baf0bda97664715937d4bc403e">AndTrigger</a> (std::unique_ptr&lt; <a class="el" href="classgridfire_1_1trigger_1_1_trigger.html">Trigger</a>&lt; TriggerContextStruct &gt; &gt; A, std::unique_ptr&lt; <a class="el" href="classgridfire_1_1trigger_1_1_trigger.html">Trigger</a>&lt; TriggerContextStruct &gt; &gt; B)</td></tr>
<tr class="memdesc:a969738baf0bda97664715937d4bc403e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct AND from two triggers (ownership transferred). <br /></td></tr>
<tr class="separator:a969738baf0bda97664715937d4bc403e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ee18348ca65cc1aa56eb41292a39bc5" id="r_a2ee18348ca65cc1aa56eb41292a39bc5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2ee18348ca65cc1aa56eb41292a39bc5">~AndTrigger</a> () override=default</td></tr>
<tr class="separator:a2ee18348ca65cc1aa56eb41292a39bc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaefdfa86856f9f7839b6a7fdffa4a579" id="r_aaefdfa86856f9f7839b6a7fdffa4a579"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aaefdfa86856f9f7839b6a7fdffa4a579">check</a> (const TriggerContextStruct &amp;ctx) const override</td></tr>
<tr class="memdesc:aaefdfa86856f9f7839b6a7fdffa4a579"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate A &amp;&amp; B; increments hit/miss counters. <br /></td></tr>
<tr class="separator:aaefdfa86856f9f7839b6a7fdffa4a579"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62f7dbbcf0554caa68e3d778580b3c1d" id="r_a62f7dbbcf0554caa68e3d778580b3c1d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a62f7dbbcf0554caa68e3d778580b3c1d">update</a> (const TriggerContextStruct &amp;ctx) override</td></tr>
<tr class="memdesc:a62f7dbbcf0554caa68e3d778580b3c1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update both sub-triggers and increment update counter. <br /></td></tr>
<tr class="separator:a62f7dbbcf0554caa68e3d778580b3c1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
2025-11-04 14:04:26 -05:00
<tr class="memitem:a8e743e8ebe71f9ded835177db6fad908" id="r_a8e743e8ebe71f9ded835177db6fad908"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8e743e8ebe71f9ded835177db6fad908">step</a> (const TriggerContextStruct &amp;ctx) override</td></tr>
<tr class="memdesc:a8e743e8ebe71f9ded835177db6fad908"><td class="mdescLeft">&#160;</td><td class="mdescRight">similar to update but intended to be run on every step not just those where the trigger triggered <br /></td></tr>
<tr class="separator:a8e743e8ebe71f9ded835177db6fad908"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2436d8643911ade907e03fb29531ceaa" id="r_a2436d8643911ade907e03fb29531ceaa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2436d8643911ade907e03fb29531ceaa">reset</a> () override</td></tr>
<tr class="memdesc:a2436d8643911ade907e03fb29531ceaa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset both sub-triggers and local counters. <br /></td></tr>
<tr class="separator:a2436d8643911ade907e03fb29531ceaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab78539e5cd88194ab9e98434793eae3f" id="r_ab78539e5cd88194ab9e98434793eae3f"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab78539e5cd88194ab9e98434793eae3f">name</a> () const override</td></tr>
<tr class="memdesc:ab78539e5cd88194ab9e98434793eae3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Human-readable name. <br /></td></tr>
<tr class="separator:ab78539e5cd88194ab9e98434793eae3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01033721e8f5d90483d65c904399cf96" id="r_a01033721e8f5d90483d65c904399cf96"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgridfire_1_1trigger_1_1_trigger_result.html">TriggerResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a01033721e8f5d90483d65c904399cf96">why</a> (const TriggerContextStruct &amp;ctx) const override</td></tr>
<tr class="memdesc:a01033721e8f5d90483d65c904399cf96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structured explanation; short-circuits on A=false. <br /></td></tr>
<tr class="separator:a01033721e8f5d90483d65c904399cf96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2dcd635c6bdbcfe517adca6e2bd5c408" id="r_a2dcd635c6bdbcfe517adca6e2bd5c408"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2dcd635c6bdbcfe517adca6e2bd5c408">describe</a> () const override</td></tr>
<tr class="memdesc:a2dcd635c6bdbcfe517adca6e2bd5c408"><td class="mdescLeft">&#160;</td><td class="mdescRight">Description expression e.g. "(A) AND (B)". <br /></td></tr>
<tr class="separator:a2dcd635c6bdbcfe517adca6e2bd5c408"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afffb4281569963183d7db3ed1568eb3a" id="r_afffb4281569963183d7db3ed1568eb3a"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#afffb4281569963183d7db3ed1568eb3a">numTriggers</a> () const override</td></tr>
<tr class="memdesc:afffb4281569963183d7db3ed1568eb3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of true evaluations since last reset. <br /></td></tr>
<tr class="separator:afffb4281569963183d7db3ed1568eb3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:addfd61f8cb234881f535fb8f4d618d74" id="r_addfd61f8cb234881f535fb8f4d618d74"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#addfd61f8cb234881f535fb8f4d618d74">numMisses</a> () const override</td></tr>
<tr class="memdesc:addfd61f8cb234881f535fb8f4d618d74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of false evaluations since last reset. <br /></td></tr>
<tr class="separator:addfd61f8cb234881f535fb8f4d618d74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classgridfire_1_1trigger_1_1_trigger"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pub_methods_classgridfire_1_1trigger_1_1_trigger')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classgridfire_1_1trigger_1_1_trigger.html">gridfire::trigger::Trigger&lt; TriggerContextStruct &gt;</a></td></tr>
<tr class="memitem:a2c077ccbaf4de9f7068e50144391edda inherit pub_methods_classgridfire_1_1trigger_1_1_trigger" id="r_a2c077ccbaf4de9f7068e50144391edda"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1trigger_1_1_trigger.html#a2c077ccbaf4de9f7068e50144391edda">~Trigger</a> ()=default</td></tr>
<tr class="memdesc:a2c077ccbaf4de9f7068e50144391edda inherit pub_methods_classgridfire_1_1trigger_1_1_trigger"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor for polymorphic use. <br /></td></tr>
<tr class="separator:a2c077ccbaf4de9f7068e50144391edda inherit pub_methods_classgridfire_1_1trigger_1_1_trigger"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pri-attribs" name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a99be74b126d50c15d21c0724d933af87" id="r_a99be74b126d50c15d21c0724d933af87"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgridfire_1_1trigger_1_1_trigger.html">Trigger</a>&lt; TriggerContextStruct &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a99be74b126d50c15d21c0724d933af87">m_A</a></td></tr>
<tr class="separator:a99be74b126d50c15d21c0724d933af87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8ee88421d0dfd92de6df96d686ece38" id="r_af8ee88421d0dfd92de6df96d686ece38"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgridfire_1_1trigger_1_1_trigger.html">Trigger</a>&lt; TriggerContextStruct &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af8ee88421d0dfd92de6df96d686ece38">m_B</a></td></tr>
<tr class="separator:af8ee88421d0dfd92de6df96d686ece38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43e6a9c01b163ab92a0b413bfba52ef5" id="r_a43e6a9c01b163ab92a0b413bfba52ef5"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a43e6a9c01b163ab92a0b413bfba52ef5">m_hits</a> = 0</td></tr>
<tr class="separator:a43e6a9c01b163ab92a0b413bfba52ef5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1714656e907edfcba2d354ff5d7c9ceb" id="r_a1714656e907edfcba2d354ff5d7c9ceb"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1714656e907edfcba2d354ff5d7c9ceb">m_misses</a> = 0</td></tr>
<tr class="separator:a1714656e907edfcba2d354ff5d7c9ceb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f88c1139e1b05baed44614104d601b4" id="r_a7f88c1139e1b05baed44614104d601b4"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7f88c1139e1b05baed44614104d601b4">m_updates</a> = 0</td></tr>
<tr class="separator:a7f88c1139e1b05baed44614104d601b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3ff88ddb15d04e798fc03c6c941e312" id="r_ae3ff88ddb15d04e798fc03c6c941e312"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae3ff88ddb15d04e798fc03c6c941e312">m_resets</a> = 0</td></tr>
<tr class="separator:ae3ff88ddb15d04e798fc03c6c941e312"><td class="memSeparator" colspan="2">&#160;</td></tr>
2025-11-04 14:04:26 -05:00
<tr class="memitem:afd8d79e83f83473f0df64e96b63aa1f1" id="r_afd8d79e83f83473f0df64e96b63aa1f1"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#afd8d79e83f83473f0df64e96b63aa1f1">m_steps</a> = 0</td></tr>
<tr class="separator:afd8d79e83f83473f0df64e96b63aa1f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><div class="compoundTemplParams">template&lt;typename TriggerContextStruct&gt;<br />
class gridfire::trigger::AndTrigger&lt; TriggerContextStruct &gt;</div><p>Logical conjunction of two triggers with short-circuit evaluation. </p>
<p>check(ctx) returns A.check(ctx) &amp;&amp; B.check(ctx). The why(ctx) explanation short-circuits if A is false, avoiding evaluation of B. update(ctx) calls <a class="el" href="#a62f7dbbcf0554caa68e3d778580b3c1d" title="Update both sub-triggers and increment update counter.">update()</a> on both A and B.</p>
<p>Counters (mutable) are incremented inside const <a class="el" href="#aaefdfa86856f9f7839b6a7fdffa4a579" title="Evaluate A &amp;&amp; B; increments hit/miss counters.">check()</a>: m_hits on true; m_misses on false; m_updates on each <a class="el" href="#a62f7dbbcf0554caa68e3d778580b3c1d" title="Update both sub-triggers and increment update counter.">update()</a>; m_resets on <a class="el" href="#a2436d8643911ade907e03fb29531ceaa" title="Reset both sub-triggers and local counters.">reset()</a>.</p>
<dl class="section user"><dt>Example</dt><dd><div class="fragment"><div class="line"><span class="keyword">auto</span> t = <a class="code hl_function" href="#a969738baf0bda97664715937d4bc403e">AndTrigger</a>(ctxA, ctxB);</div>
<div class="line"><span class="keywordflow">if</span> (t.check(ctx)) { (void)ctx; }</div>
2025-11-04 14:04:26 -05:00
<div class="ttc" id="aclassgridfire_1_1trigger_1_1_and_trigger_html_a969738baf0bda97664715937d4bc403e"><div class="ttname"><a href="#a969738baf0bda97664715937d4bc403e">gridfire::trigger::AndTrigger::AndTrigger</a></div><div class="ttdeci">AndTrigger(std::unique_ptr&lt; Trigger&lt; TriggerContextStruct &gt; &gt; A, std::unique_ptr&lt; Trigger&lt; TriggerContextStruct &gt; &gt; B)</div><div class="ttdoc">Construct AND from two triggers (ownership transferred).</div><div class="ttdef"><b>Definition</b> trigger_logical.h:204</div></div>
</div><!-- fragment --> </dd></dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a969738baf0bda97664715937d4bc403e" name="a969738baf0bda97664715937d4bc403e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a969738baf0bda97664715937d4bc403e">&#9670;&#160;</a></span>AndTrigger()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TriggerContextStruct&gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgridfire_1_1trigger_1_1_and_trigger.html">gridfire::trigger::AndTrigger</a>&lt; TriggerContextStruct &gt;::AndTrigger </td>
<td>(</td>
<td class="paramtype">std::unique_ptr&lt; <a class="el" href="classgridfire_1_1trigger_1_1_trigger.html">Trigger</a>&lt; TriggerContextStruct &gt; &gt;</td> <td class="paramname"><span class="paramname"><em>A</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::unique_ptr&lt; <a class="el" href="classgridfire_1_1trigger_1_1_trigger.html">Trigger</a>&lt; TriggerContextStruct &gt; &gt;</td> <td class="paramname"><span class="paramname"><em>B</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct AND from two triggers (ownership transferred). </p>
</div>
</div>
<a id="a2ee18348ca65cc1aa56eb41292a39bc5" name="a2ee18348ca65cc1aa56eb41292a39bc5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ee18348ca65cc1aa56eb41292a39bc5">&#9670;&#160;</a></span>~AndTrigger()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TriggerContextStruct&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgridfire_1_1trigger_1_1_and_trigger.html">gridfire::trigger::AndTrigger</a>&lt; TriggerContextStruct &gt;::~<a class="el" href="classgridfire_1_1trigger_1_1_and_trigger.html">AndTrigger</a> </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel default">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aaefdfa86856f9f7839b6a7fdffa4a579" name="aaefdfa86856f9f7839b6a7fdffa4a579"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaefdfa86856f9f7839b6a7fdffa4a579">&#9670;&#160;</a></span>check()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TriggerContextStruct&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classgridfire_1_1trigger_1_1_and_trigger.html">gridfire::trigger::AndTrigger</a>&lt; TriggerContextStruct &gt;::check </td>
<td>(</td>
<td class="paramtype">const TriggerContextStruct &amp;</td> <td class="paramname"><span class="paramname"><em>ctx</em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Evaluate A &amp;&amp; B; increments hit/miss counters. </p>
<p>Implements <a class="el" href="classgridfire_1_1trigger_1_1_trigger.html#a1579ffb1c841cda4e67990b42d400d88">gridfire::trigger::Trigger&lt; TriggerContextStruct &gt;</a>.</p>
</div>
</div>
<a id="a2dcd635c6bdbcfe517adca6e2bd5c408" name="a2dcd635c6bdbcfe517adca6e2bd5c408"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2dcd635c6bdbcfe517adca6e2bd5c408">&#9670;&#160;</a></span>describe()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TriggerContextStruct&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string <a class="el" href="classgridfire_1_1trigger_1_1_and_trigger.html">gridfire::trigger::AndTrigger</a>&lt; TriggerContextStruct &gt;::describe </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Description expression e.g. "(A) AND (B)". </p>
<p>Implements <a class="el" href="classgridfire_1_1trigger_1_1_trigger.html#a402cdd062e9479abbcca02e3d94e528f">gridfire::trigger::Trigger&lt; TriggerContextStruct &gt;</a>.</p>
</div>
</div>
<a id="ab78539e5cd88194ab9e98434793eae3f" name="ab78539e5cd88194ab9e98434793eae3f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab78539e5cd88194ab9e98434793eae3f">&#9670;&#160;</a></span>name()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TriggerContextStruct&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string <a class="el" href="classgridfire_1_1trigger_1_1_and_trigger.html">gridfire::trigger::AndTrigger</a>&lt; TriggerContextStruct &gt;::name </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Human-readable name. </p>
<p>Implements <a class="el" href="classgridfire_1_1trigger_1_1_trigger.html#a3e5b017147f22ca0733733cd39e334b7">gridfire::trigger::Trigger&lt; TriggerContextStruct &gt;</a>.</p>
</div>
</div>
<a id="addfd61f8cb234881f535fb8f4d618d74" name="addfd61f8cb234881f535fb8f4d618d74"></a>
<h2 class="memtitle"><span class="permalink"><a href="#addfd61f8cb234881f535fb8f4d618d74">&#9670;&#160;</a></span>numMisses()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TriggerContextStruct&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t <a class="el" href="classgridfire_1_1trigger_1_1_and_trigger.html">gridfire::trigger::AndTrigger</a>&lt; TriggerContextStruct &gt;::numMisses </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Number of false evaluations since last reset. </p>
<p>Implements <a class="el" href="classgridfire_1_1trigger_1_1_trigger.html#a81848e5af844795d879b6d885a2701d7">gridfire::trigger::Trigger&lt; TriggerContextStruct &gt;</a>.</p>
</div>
</div>
<a id="afffb4281569963183d7db3ed1568eb3a" name="afffb4281569963183d7db3ed1568eb3a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afffb4281569963183d7db3ed1568eb3a">&#9670;&#160;</a></span>numTriggers()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TriggerContextStruct&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t <a class="el" href="classgridfire_1_1trigger_1_1_and_trigger.html">gridfire::trigger::AndTrigger</a>&lt; TriggerContextStruct &gt;::numTriggers </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Number of true evaluations since last reset. </p>
<p>Implements <a class="el" href="classgridfire_1_1trigger_1_1_trigger.html#a4ea3abfb76a09c4f55ad05d73a2cf12d">gridfire::trigger::Trigger&lt; TriggerContextStruct &gt;</a>.</p>
</div>
</div>
<a id="a2436d8643911ade907e03fb29531ceaa" name="a2436d8643911ade907e03fb29531ceaa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2436d8643911ade907e03fb29531ceaa">&#9670;&#160;</a></span>reset()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TriggerContextStruct&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classgridfire_1_1trigger_1_1_and_trigger.html">gridfire::trigger::AndTrigger</a>&lt; TriggerContextStruct &gt;::reset </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reset both sub-triggers and local counters. </p>
<p>Implements <a class="el" href="classgridfire_1_1trigger_1_1_trigger.html#af652af761675736419b961b6946c728d">gridfire::trigger::Trigger&lt; TriggerContextStruct &gt;</a>.</p>
2025-11-04 14:04:26 -05:00
</div>
</div>
<a id="a8e743e8ebe71f9ded835177db6fad908" name="a8e743e8ebe71f9ded835177db6fad908"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8e743e8ebe71f9ded835177db6fad908">&#9670;&#160;</a></span>step()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TriggerContextStruct&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classgridfire_1_1trigger_1_1_and_trigger.html">gridfire::trigger::AndTrigger</a>&lt; TriggerContextStruct &gt;::step </td>
<td>(</td>
<td class="paramtype">const TriggerContextStruct &amp;</td> <td class="paramname"><span class="paramname"><em>ctx</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>similar to update but intended to be run on every step not just those where the trigger triggered </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ctx</td><td>Context snapshot used to update state. </td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="classgridfire_1_1trigger_1_1_trigger.html#a4b7ffa4d8d31e2118a8e86172be51041">gridfire::trigger::Trigger&lt; TriggerContextStruct &gt;</a>.</p>
</div>
</div>
<a id="a62f7dbbcf0554caa68e3d778580b3c1d" name="a62f7dbbcf0554caa68e3d778580b3c1d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62f7dbbcf0554caa68e3d778580b3c1d">&#9670;&#160;</a></span>update()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TriggerContextStruct&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classgridfire_1_1trigger_1_1_and_trigger.html">gridfire::trigger::AndTrigger</a>&lt; TriggerContextStruct &gt;::update </td>
<td>(</td>
<td class="paramtype">const TriggerContextStruct &amp;</td> <td class="paramname"><span class="paramname"><em>ctx</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Update both sub-triggers and increment update counter. </p>
<p>Implements <a class="el" href="classgridfire_1_1trigger_1_1_trigger.html#a048899795704f68668960454d118a6fc">gridfire::trigger::Trigger&lt; TriggerContextStruct &gt;</a>.</p>
</div>
</div>
<a id="a01033721e8f5d90483d65c904399cf96" name="a01033721e8f5d90483d65c904399cf96"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a01033721e8f5d90483d65c904399cf96">&#9670;&#160;</a></span>why()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TriggerContextStruct&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structgridfire_1_1trigger_1_1_trigger_result.html">TriggerResult</a> <a class="el" href="classgridfire_1_1trigger_1_1_and_trigger.html">gridfire::trigger::AndTrigger</a>&lt; TriggerContextStruct &gt;::why </td>
<td>(</td>
<td class="paramtype">const TriggerContextStruct &amp;</td> <td class="paramname"><span class="paramname"><em>ctx</em></span></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel override">override</span><span class="mlabel virtual">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Structured explanation; short-circuits on A=false. </p>
<p>Implements <a class="el" href="classgridfire_1_1trigger_1_1_trigger.html#a9f020d828ca36a601b780566cc3377ea">gridfire::trigger::Trigger&lt; TriggerContextStruct &gt;</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a99be74b126d50c15d21c0724d933af87" name="a99be74b126d50c15d21c0724d933af87"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a99be74b126d50c15d21c0724d933af87">&#9670;&#160;</a></span>m_A</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TriggerContextStruct&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classgridfire_1_1trigger_1_1_trigger.html">Trigger</a>&lt;TriggerContextStruct&gt; &gt; <a class="el" href="classgridfire_1_1trigger_1_1_and_trigger.html">gridfire::trigger::AndTrigger</a>&lt; TriggerContextStruct &gt;::m_A</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="af8ee88421d0dfd92de6df96d686ece38" name="af8ee88421d0dfd92de6df96d686ece38"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af8ee88421d0dfd92de6df96d686ece38">&#9670;&#160;</a></span>m_B</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TriggerContextStruct&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classgridfire_1_1trigger_1_1_trigger.html">Trigger</a>&lt;TriggerContextStruct&gt; &gt; <a class="el" href="classgridfire_1_1trigger_1_1_and_trigger.html">gridfire::trigger::AndTrigger</a>&lt; TriggerContextStruct &gt;::m_B</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a43e6a9c01b163ab92a0b413bfba52ef5" name="a43e6a9c01b163ab92a0b413bfba52ef5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a43e6a9c01b163ab92a0b413bfba52ef5">&#9670;&#160;</a></span>m_hits</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TriggerContextStruct&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t <a class="el" href="classgridfire_1_1trigger_1_1_and_trigger.html">gridfire::trigger::AndTrigger</a>&lt; TriggerContextStruct &gt;::m_hits = 0</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel mutable">mutable</span><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a1714656e907edfcba2d354ff5d7c9ceb" name="a1714656e907edfcba2d354ff5d7c9ceb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1714656e907edfcba2d354ff5d7c9ceb">&#9670;&#160;</a></span>m_misses</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TriggerContextStruct&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t <a class="el" href="classgridfire_1_1trigger_1_1_and_trigger.html">gridfire::trigger::AndTrigger</a>&lt; TriggerContextStruct &gt;::m_misses = 0</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel mutable">mutable</span><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ae3ff88ddb15d04e798fc03c6c941e312" name="ae3ff88ddb15d04e798fc03c6c941e312"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae3ff88ddb15d04e798fc03c6c941e312">&#9670;&#160;</a></span>m_resets</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TriggerContextStruct&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t <a class="el" href="classgridfire_1_1trigger_1_1_and_trigger.html">gridfire::trigger::AndTrigger</a>&lt; TriggerContextStruct &gt;::m_resets = 0</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel mutable">mutable</span><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
2025-11-04 14:04:26 -05:00
</div>
</div>
<a id="afd8d79e83f83473f0df64e96b63aa1f1" name="afd8d79e83f83473f0df64e96b63aa1f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afd8d79e83f83473f0df64e96b63aa1f1">&#9670;&#160;</a></span>m_steps</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TriggerContextStruct&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t <a class="el" href="classgridfire_1_1trigger_1_1_and_trigger.html">gridfire::trigger::AndTrigger</a>&lt; TriggerContextStruct &gt;::m_steps = 0</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel mutable">mutable</span><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a7f88c1139e1b05baed44614104d601b4" name="a7f88c1139e1b05baed44614104d601b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7f88c1139e1b05baed44614104d601b4">&#9670;&#160;</a></span>m_updates</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename TriggerContextStruct&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t <a class="el" href="classgridfire_1_1trigger_1_1_and_trigger.html">gridfire::trigger::AndTrigger</a>&lt; TriggerContextStruct &gt;::m_updates = 0</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel mutable">mutable</span><span class="mlabel private">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/include/gridfire/trigger/<a class="el" href="trigger__logical_8h.html">trigger_logical.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="namespacegridfire.html">gridfire</a></li><li class="navelem"><a class="el" href="namespacegridfire_1_1trigger.html">trigger</a></li><li class="navelem"><a class="el" href="classgridfire_1_1trigger_1_1_and_trigger.html">AndTrigger</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
</ul>
</div>
</body>
</html>