Files
GridFire/docs/html/classgridfire_1_1trigger_1_1_not_trigger.html

702 lines
37 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::NotTrigger&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_not_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_not_trigger-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">gridfire::trigger::NotTrigger&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 negation of a trigger.
<a href="#details">More...</a></p>
<p><code>#include &lt;trigger_logical.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for gridfire::trigger::NotTrigger&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_not_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::NotTrigger&lt; TriggerContextStruct &gt;:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="classgridfire_1_1trigger_1_1_not_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:a4828599aae5ff37f4c82e51fe192bed3" id="r_a4828599aae5ff37f4c82e51fe192bed3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4828599aae5ff37f4c82e51fe192bed3">NotTrigger</a> (std::unique_ptr&lt; <a class="el" href="classgridfire_1_1trigger_1_1_trigger.html">Trigger</a>&lt; TriggerContextStruct &gt; &gt; A)</td></tr>
<tr class="separator:a4828599aae5ff37f4c82e51fe192bed3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa4173490171d1251cc1757b92841755" id="r_afa4173490171d1251cc1757b92841755"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#afa4173490171d1251cc1757b92841755">~NotTrigger</a> () override=default</td></tr>
<tr class="separator:afa4173490171d1251cc1757b92841755"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae453a72df20fdd416443ef7867f86b92" id="r_ae453a72df20fdd416443ef7867f86b92"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae453a72df20fdd416443ef7867f86b92">check</a> (const TriggerContextStruct &amp;ctx) const override</td></tr>
<tr class="memdesc:ae453a72df20fdd416443ef7867f86b92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate the trigger condition against the provided context. <br /></td></tr>
<tr class="separator:ae453a72df20fdd416443ef7867f86b92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a846432abf33c7602af0fbb5475c0ad32" id="r_a846432abf33c7602af0fbb5475c0ad32"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a846432abf33c7602af0fbb5475c0ad32">update</a> (const TriggerContextStruct &amp;ctx) override</td></tr>
<tr class="memdesc:a846432abf33c7602af0fbb5475c0ad32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update any internal state with the given context (e.g., counters, windows). <br /></td></tr>
<tr class="separator:a846432abf33c7602af0fbb5475c0ad32"><td class="memSeparator" colspan="2">&#160;</td></tr>
2025-11-04 14:04:26 -05:00
<tr class="memitem:a5096cb7e70ea357f28e1b9fc8301c793" id="r_a5096cb7e70ea357f28e1b9fc8301c793"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5096cb7e70ea357f28e1b9fc8301c793">step</a> (const TriggerContextStruct &amp;ctx) override</td></tr>
<tr class="memdesc:a5096cb7e70ea357f28e1b9fc8301c793"><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:a5096cb7e70ea357f28e1b9fc8301c793"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe337517b77e5433d92ded3a64565141" id="r_afe337517b77e5433d92ded3a64565141"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#afe337517b77e5433d92ded3a64565141">reset</a> () override</td></tr>
<tr class="memdesc:afe337517b77e5433d92ded3a64565141"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset internal state and diagnostics counters. <br /></td></tr>
<tr class="separator:afe337517b77e5433d92ded3a64565141"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc3bd2938f7746997fb1d255681d8b20" id="r_acc3bd2938f7746997fb1d255681d8b20"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#acc3bd2938f7746997fb1d255681d8b20">name</a> () const override</td></tr>
<tr class="memdesc:acc3bd2938f7746997fb1d255681d8b20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short, stable name for this trigger (suitable for logs/UI). <br /></td></tr>
<tr class="separator:acc3bd2938f7746997fb1d255681d8b20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfb3eb7befba646ce9f11f36a63750ae" id="r_abfb3eb7befba646ce9f11f36a63750ae"><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="#abfb3eb7befba646ce9f11f36a63750ae">why</a> (const TriggerContextStruct &amp;ctx) const override</td></tr>
<tr class="memdesc:abfb3eb7befba646ce9f11f36a63750ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Explain why the last evaluation would be true/false in a structured way. <br /></td></tr>
<tr class="separator:abfb3eb7befba646ce9f11f36a63750ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8166350329db3e1f50954afbb311a35" id="r_ad8166350329db3e1f50954afbb311a35"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad8166350329db3e1f50954afbb311a35">describe</a> () const override</td></tr>
<tr class="memdesc:ad8166350329db3e1f50954afbb311a35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Human-readable description of this trigger's logic. <br /></td></tr>
<tr class="separator:ad8166350329db3e1f50954afbb311a35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2d27d72af9e1fbf711a58e4583b43a3" id="r_ae2d27d72af9e1fbf711a58e4583b43a3"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae2d27d72af9e1fbf711a58e4583b43a3">numTriggers</a> () const override</td></tr>
<tr class="memdesc:ae2d27d72af9e1fbf711a58e4583b43a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Total number of times this trigger evaluated to true since last reset. <br /></td></tr>
<tr class="separator:ae2d27d72af9e1fbf711a58e4583b43a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f9b0d6a6ac54f6371c5a208c06826ea" id="r_a2f9b0d6a6ac54f6371c5a208c06826ea"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2f9b0d6a6ac54f6371c5a208c06826ea">numMisses</a> () const override</td></tr>
<tr class="memdesc:a2f9b0d6a6ac54f6371c5a208c06826ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Total number of times this trigger evaluated to false since last reset. <br /></td></tr>
<tr class="separator:a2f9b0d6a6ac54f6371c5a208c06826ea"><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:a0d7818e59a8d86e86053bcb6d5d7d2b8" id="r_a0d7818e59a8d86e86053bcb6d5d7d2b8"><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="#a0d7818e59a8d86e86053bcb6d5d7d2b8">m_A</a></td></tr>
<tr class="separator:a0d7818e59a8d86e86053bcb6d5d7d2b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86404f57e0e0683fc56e0e49321e5e3b" id="r_a86404f57e0e0683fc56e0e49321e5e3b"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a86404f57e0e0683fc56e0e49321e5e3b">m_hits</a> = 0</td></tr>
<tr class="separator:a86404f57e0e0683fc56e0e49321e5e3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1253080cd57cdf0be6780773ce6c73c" id="r_aa1253080cd57cdf0be6780773ce6c73c"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa1253080cd57cdf0be6780773ce6c73c">m_misses</a> = 0</td></tr>
<tr class="separator:aa1253080cd57cdf0be6780773ce6c73c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4830ed152643770b0888b040475b000" id="r_ae4830ed152643770b0888b040475b000"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae4830ed152643770b0888b040475b000">m_updates</a> = 0</td></tr>
<tr class="separator:ae4830ed152643770b0888b040475b000"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb9c36fa46a30c28e68c59a7d3bd825d" id="r_adb9c36fa46a30c28e68c59a7d3bd825d"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#adb9c36fa46a30c28e68c59a7d3bd825d">m_resets</a> = 0</td></tr>
<tr class="separator:adb9c36fa46a30c28e68c59a7d3bd825d"><td class="memSeparator" colspan="2">&#160;</td></tr>
2025-11-04 14:04:26 -05:00
<tr class="memitem:a2e1e78f3bf9fe0edcb9094c778826629" id="r_a2e1e78f3bf9fe0edcb9094c778826629"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2e1e78f3bf9fe0edcb9094c778826629">m_steps</a> = 0</td></tr>
<tr class="separator:a2e1e78f3bf9fe0edcb9094c778826629"><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::NotTrigger&lt; TriggerContextStruct &gt;</div><p>Logical negation of a trigger. </p>
<p>check(ctx) returns !A.check(ctx). why(ctx) explains the inverted condition. Counter semantics match the other logical triggers. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a4828599aae5ff37f4c82e51fe192bed3" name="a4828599aae5ff37f4c82e51fe192bed3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4828599aae5ff37f4c82e51fe192bed3">&#9670;&#160;</a></span>NotTrigger()</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_not_trigger.html">gridfire::trigger::NotTrigger</a>&lt; TriggerContextStruct &gt;::NotTrigger </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><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel explicit">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="afa4173490171d1251cc1757b92841755" name="afa4173490171d1251cc1757b92841755"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afa4173490171d1251cc1757b92841755">&#9670;&#160;</a></span>~NotTrigger()</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_not_trigger.html">gridfire::trigger::NotTrigger</a>&lt; TriggerContextStruct &gt;::~<a class="el" href="classgridfire_1_1trigger_1_1_not_trigger.html">NotTrigger</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="ae453a72df20fdd416443ef7867f86b92" name="ae453a72df20fdd416443ef7867f86b92"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae453a72df20fdd416443ef7867f86b92">&#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_not_trigger.html">gridfire::trigger::NotTrigger</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 the trigger condition against the provided context. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ctx</td><td>Context snapshot (immutable view) used to evaluate the condition. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the condition is satisfied; false otherwise. </dd></dl>
<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="ad8166350329db3e1f50954afbb311a35" name="ad8166350329db3e1f50954afbb311a35"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad8166350329db3e1f50954afbb311a35">&#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_not_trigger.html">gridfire::trigger::NotTrigger</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>Human-readable description of this trigger's logic. </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="acc3bd2938f7746997fb1d255681d8b20" name="acc3bd2938f7746997fb1d255681d8b20"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc3bd2938f7746997fb1d255681d8b20">&#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_not_trigger.html">gridfire::trigger::NotTrigger</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>Short, stable name for this trigger (suitable for logs/UI). </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="a2f9b0d6a6ac54f6371c5a208c06826ea" name="a2f9b0d6a6ac54f6371c5a208c06826ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f9b0d6a6ac54f6371c5a208c06826ea">&#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_not_trigger.html">gridfire::trigger::NotTrigger</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>Total number of times this trigger evaluated to false 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="ae2d27d72af9e1fbf711a58e4583b43a3" name="ae2d27d72af9e1fbf711a58e4583b43a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae2d27d72af9e1fbf711a58e4583b43a3">&#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_not_trigger.html">gridfire::trigger::NotTrigger</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>Total number of times this trigger evaluated to true 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="afe337517b77e5433d92ded3a64565141" name="afe337517b77e5433d92ded3a64565141"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afe337517b77e5433d92ded3a64565141">&#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_not_trigger.html">gridfire::trigger::NotTrigger</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 internal state and diagnostics 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="a5096cb7e70ea357f28e1b9fc8301c793" name="a5096cb7e70ea357f28e1b9fc8301c793"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5096cb7e70ea357f28e1b9fc8301c793">&#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_not_trigger.html">gridfire::trigger::NotTrigger</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="a846432abf33c7602af0fbb5475c0ad32" name="a846432abf33c7602af0fbb5475c0ad32"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a846432abf33c7602af0fbb5475c0ad32">&#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_not_trigger.html">gridfire::trigger::NotTrigger</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 any internal state with the given context (e.g., counters, windows). </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#a048899795704f68668960454d118a6fc">gridfire::trigger::Trigger&lt; TriggerContextStruct &gt;</a>.</p>
</div>
</div>
<a id="abfb3eb7befba646ce9f11f36a63750ae" name="abfb3eb7befba646ce9f11f36a63750ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abfb3eb7befba646ce9f11f36a63750ae">&#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_not_trigger.html">gridfire::trigger::NotTrigger</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>Explain why the last evaluation would be true/false in a structured way. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ctx</td><td>Context snapshot for the explanation. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A <a class="el" href="structgridfire_1_1trigger_1_1_trigger_result.html">TriggerResult</a> tree with a boolean value and per-cause details. </dd></dl>
<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="a0d7818e59a8d86e86053bcb6d5d7d2b8" name="a0d7818e59a8d86e86053bcb6d5d7d2b8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d7818e59a8d86e86053bcb6d5d7d2b8">&#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_not_trigger.html">gridfire::trigger::NotTrigger</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="a86404f57e0e0683fc56e0e49321e5e3b" name="a86404f57e0e0683fc56e0e49321e5e3b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a86404f57e0e0683fc56e0e49321e5e3b">&#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_not_trigger.html">gridfire::trigger::NotTrigger</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="aa1253080cd57cdf0be6780773ce6c73c" name="aa1253080cd57cdf0be6780773ce6c73c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa1253080cd57cdf0be6780773ce6c73c">&#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_not_trigger.html">gridfire::trigger::NotTrigger</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="adb9c36fa46a30c28e68c59a7d3bd825d" name="adb9c36fa46a30c28e68c59a7d3bd825d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb9c36fa46a30c28e68c59a7d3bd825d">&#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_not_trigger.html">gridfire::trigger::NotTrigger</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="a2e1e78f3bf9fe0edcb9094c778826629" name="a2e1e78f3bf9fe0edcb9094c778826629"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2e1e78f3bf9fe0edcb9094c778826629">&#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_not_trigger.html">gridfire::trigger::NotTrigger</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="ae4830ed152643770b0888b040475b000" name="ae4830ed152643770b0888b040475b000"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae4830ed152643770b0888b040475b000">&#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_not_trigger.html">gridfire::trigger::NotTrigger</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_not_trigger.html">NotTrigger</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>