Files
GridFire/docs/html/classgridfire_1_1trigger_1_1EveryNthTrigger.html

768 lines
40 KiB
HTML

<!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.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>GridFire: gridfire::trigger::EveryNthTrigger&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>
<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>
<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">
<div id="projectname">GridFire<span id="projectnumber">&#160;v0.7.1_rc2</span>
</div>
<div id="projectbrief">General Purpose Nuclear Network</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<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" 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');
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('classgridfire_1_1trigger_1_1EveryNthTrigger.html',''); initResizable(); });
/* @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_1EveryNthTrigger-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">gridfire::trigger::EveryNthTrigger&lt; TriggerContextStruct &gt; Class Template Reference<span class="mlabels"><span class="mlabel">final</span></span></div></div>
</div><!--header-->
<div class="contents">
<p>Pass-through trigger that fires every Nth time its child trigger is true.
<a href="classgridfire_1_1trigger_1_1EveryNthTrigger.html#details">More...</a></p>
<p><code>#include &lt;trigger_logical.h&gt;</code></p>
<div class="dynheader">
Inheritance diagram for gridfire::trigger::EveryNthTrigger&lt; TriggerContextStruct &gt;:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgridfire_1_1trigger_1_1EveryNthTrigger__inherit__graph.svg" width="247" height="256"><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::EveryNthTrigger&lt; TriggerContextStruct &gt;:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="classgridfire_1_1trigger_1_1EveryNthTrigger__coll__graph.svg" width="100%" height="408"><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:a69e5a3061926e1cd36fbd0a5285fa0a7" id="r_a69e5a3061926e1cd36fbd0a5285fa0a7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1trigger_1_1EveryNthTrigger.html#a69e5a3061926e1cd36fbd0a5285fa0a7">EveryNthTrigger</a> (std::unique_ptr&lt; <a class="el" href="classgridfire_1_1trigger_1_1Trigger.html">Trigger</a>&lt; TriggerContextStruct &gt; &gt; A, size_t N)</td></tr>
<tr class="separator:a69e5a3061926e1cd36fbd0a5285fa0a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae28e54330d575d9d1d3d8ebc6e7a6f75" id="r_ae28e54330d575d9d1d3d8ebc6e7a6f75"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1trigger_1_1EveryNthTrigger.html#ae28e54330d575d9d1d3d8ebc6e7a6f75">~EveryNthTrigger</a> () override=default</td></tr>
<tr class="separator:ae28e54330d575d9d1d3d8ebc6e7a6f75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69fbb099f8d13d39602f58fa8aa8e7f2" id="r_a69fbb099f8d13d39602f58fa8aa8e7f2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1trigger_1_1EveryNthTrigger.html#a69fbb099f8d13d39602f58fa8aa8e7f2">check</a> (const TriggerContextStruct &amp;ctx) const override</td></tr>
<tr class="memdesc:a69fbb099f8d13d39602f58fa8aa8e7f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate the trigger condition against the provided context. <br /></td></tr>
<tr class="separator:a69fbb099f8d13d39602f58fa8aa8e7f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0dd783afab7ef6005f0241f9de7b31f6" id="r_a0dd783afab7ef6005f0241f9de7b31f6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1trigger_1_1EveryNthTrigger.html#a0dd783afab7ef6005f0241f9de7b31f6">update</a> (const TriggerContextStruct &amp;ctx) override</td></tr>
<tr class="memdesc:a0dd783afab7ef6005f0241f9de7b31f6"><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:a0dd783afab7ef6005f0241f9de7b31f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26d0aca39087a1f69e96e0701ca83f81" id="r_a26d0aca39087a1f69e96e0701ca83f81"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1trigger_1_1EveryNthTrigger.html#a26d0aca39087a1f69e96e0701ca83f81">step</a> (const TriggerContextStruct &amp;ctx) override</td></tr>
<tr class="memdesc:a26d0aca39087a1f69e96e0701ca83f81"><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:a26d0aca39087a1f69e96e0701ca83f81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf218d255bde157540b51cd6a54f6eb1" id="r_abf218d255bde157540b51cd6a54f6eb1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1trigger_1_1EveryNthTrigger.html#abf218d255bde157540b51cd6a54f6eb1">reset</a> () override</td></tr>
<tr class="memdesc:abf218d255bde157540b51cd6a54f6eb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset internal state and diagnostics counters. <br /></td></tr>
<tr class="separator:abf218d255bde157540b51cd6a54f6eb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a834d24286f9204995bf78fb69f35dc" id="r_a4a834d24286f9204995bf78fb69f35dc"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1trigger_1_1EveryNthTrigger.html#a4a834d24286f9204995bf78fb69f35dc">name</a> () const override</td></tr>
<tr class="memdesc:a4a834d24286f9204995bf78fb69f35dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short, stable name for this trigger (suitable for logs/UI). <br /></td></tr>
<tr class="separator:a4a834d24286f9204995bf78fb69f35dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3bf0d69122f801deca4b62db47262d9b" id="r_a3bf0d69122f801deca4b62db47262d9b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgridfire_1_1trigger_1_1TriggerResult.html">TriggerResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1trigger_1_1EveryNthTrigger.html#a3bf0d69122f801deca4b62db47262d9b">why</a> (const TriggerContextStruct &amp;ctx) const override</td></tr>
<tr class="memdesc:a3bf0d69122f801deca4b62db47262d9b"><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:a3bf0d69122f801deca4b62db47262d9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab88715f3c94437ca7f3fcb1698c69de" id="r_aab88715f3c94437ca7f3fcb1698c69de"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1trigger_1_1EveryNthTrigger.html#aab88715f3c94437ca7f3fcb1698c69de">describe</a> () const override</td></tr>
<tr class="memdesc:aab88715f3c94437ca7f3fcb1698c69de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Human-readable description of this trigger's logic. <br /></td></tr>
<tr class="separator:aab88715f3c94437ca7f3fcb1698c69de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e5568c9d7799b7f80ad0d3efe2cd143" id="r_a7e5568c9d7799b7f80ad0d3efe2cd143"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1trigger_1_1EveryNthTrigger.html#a7e5568c9d7799b7f80ad0d3efe2cd143">numTriggers</a> () const override</td></tr>
<tr class="memdesc:a7e5568c9d7799b7f80ad0d3efe2cd143"><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:a7e5568c9d7799b7f80ad0d3efe2cd143"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7776f4a526db3245e64a74a3b0172d3" id="r_ae7776f4a526db3245e64a74a3b0172d3"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1trigger_1_1EveryNthTrigger.html#ae7776f4a526db3245e64a74a3b0172d3">numMisses</a> () const override</td></tr>
<tr class="memdesc:ae7776f4a526db3245e64a74a3b0172d3"><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:ae7776f4a526db3245e64a74a3b0172d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classgridfire_1_1trigger_1_1Trigger"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classgridfire_1_1trigger_1_1Trigger')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classgridfire_1_1trigger_1_1Trigger.html">gridfire::trigger::Trigger&lt; TriggerContextStruct &gt;</a></td></tr>
<tr class="memitem:a2c077ccbaf4de9f7068e50144391edda inherit pub_methods_classgridfire_1_1trigger_1_1Trigger" 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_1Trigger.html#a2c077ccbaf4de9f7068e50144391edda">~Trigger</a> ()=default</td></tr>
<tr class="memdesc:a2c077ccbaf4de9f7068e50144391edda inherit pub_methods_classgridfire_1_1trigger_1_1Trigger"><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_1Trigger"><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:a27f1fd8c8a93576f83a4f3320469c83a" id="r_a27f1fd8c8a93576f83a4f3320469c83a"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgridfire_1_1trigger_1_1Trigger.html">Trigger</a>&lt; TriggerContextStruct &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1trigger_1_1EveryNthTrigger.html#a27f1fd8c8a93576f83a4f3320469c83a">m_A</a></td></tr>
<tr class="separator:a27f1fd8c8a93576f83a4f3320469c83a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a652ba8d1ac36b9713f426eedf2b1ead0" id="r_a652ba8d1ac36b9713f426eedf2b1ead0"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1trigger_1_1EveryNthTrigger.html#a652ba8d1ac36b9713f426eedf2b1ead0">m_N</a></td></tr>
<tr class="separator:a652ba8d1ac36b9713f426eedf2b1ead0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80d6f82095c3b5fdbc46776e183cdb1f" id="r_a80d6f82095c3b5fdbc46776e183cdb1f"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1trigger_1_1EveryNthTrigger.html#a80d6f82095c3b5fdbc46776e183cdb1f">m_counter</a> = 0</td></tr>
<tr class="separator:a80d6f82095c3b5fdbc46776e183cdb1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a021c30d6db015bb88a70af348a5dd336" id="r_a021c30d6db015bb88a70af348a5dd336"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1trigger_1_1EveryNthTrigger.html#a021c30d6db015bb88a70af348a5dd336">m_hits</a> = 0</td></tr>
<tr class="separator:a021c30d6db015bb88a70af348a5dd336"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a5c2c5aedc779c1535d3839c6a6596e" id="r_a0a5c2c5aedc779c1535d3839c6a6596e"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1trigger_1_1EveryNthTrigger.html#a0a5c2c5aedc779c1535d3839c6a6596e">m_misses</a> = 0</td></tr>
<tr class="separator:a0a5c2c5aedc779c1535d3839c6a6596e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0a33f49be02d34b27f75edf75dbc06d" id="r_ab0a33f49be02d34b27f75edf75dbc06d"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1trigger_1_1EveryNthTrigger.html#ab0a33f49be02d34b27f75edf75dbc06d">m_updates</a> = 0</td></tr>
<tr class="separator:ab0a33f49be02d34b27f75edf75dbc06d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87b6e54f3a0536d20709d7e746ec575d" id="r_a87b6e54f3a0536d20709d7e746ec575d"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1trigger_1_1EveryNthTrigger.html#a87b6e54f3a0536d20709d7e746ec575d">m_resets</a> = 0</td></tr>
<tr class="separator:a87b6e54f3a0536d20709d7e746ec575d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acefe02899ade9aa595e04f3ec34f251a" id="r_acefe02899ade9aa595e04f3ec34f251a"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1trigger_1_1EveryNthTrigger.html#acefe02899ade9aa595e04f3ec34f251a">m_steps</a> = 0</td></tr>
<tr class="separator:acefe02899ade9aa595e04f3ec34f251a"><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::EveryNthTrigger&lt; TriggerContextStruct &gt;</div><p>Pass-through trigger that fires every Nth time its child trigger is true. </p>
<p>On update(ctx), increments an internal counter when A.check(ctx) is true. check(ctx) returns true only when A.check(ctx) is true and the internal counter is a multiple of N.</p>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::invalid_argument</td><td>When constructed with N==0. </td></tr>
</table>
</dd>
</dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a69e5a3061926e1cd36fbd0a5285fa0a7" name="a69e5a3061926e1cd36fbd0a5285fa0a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a69e5a3061926e1cd36fbd0a5285fa0a7">&#9670;&#160;</a></span>EveryNthTrigger()</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_1EveryNthTrigger.html">gridfire::trigger::EveryNthTrigger</a>&lt; TriggerContextStruct &gt;::EveryNthTrigger </td>
<td>(</td>
<td class="paramtype">std::unique_ptr&lt; <a class="el" href="classgridfire_1_1trigger_1_1Trigger.html">Trigger</a>&lt; TriggerContextStruct &gt; &gt;&#160;</td>
<td class="paramname"><em>A</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>N</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ae28e54330d575d9d1d3d8ebc6e7a6f75" name="ae28e54330d575d9d1d3d8ebc6e7a6f75"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae28e54330d575d9d1d3d8ebc6e7a6f75">&#9670;&#160;</a></span>~EveryNthTrigger()</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_1EveryNthTrigger.html">gridfire::trigger::EveryNthTrigger</a>&lt; TriggerContextStruct &gt;::~<a class="el" href="classgridfire_1_1trigger_1_1EveryNthTrigger.html">EveryNthTrigger</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">override</span><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a69fbb099f8d13d39602f58fa8aa8e7f2" name="a69fbb099f8d13d39602f58fa8aa8e7f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a69fbb099f8d13d39602f58fa8aa8e7f2">&#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_1EveryNthTrigger.html">gridfire::trigger::EveryNthTrigger</a>&lt; TriggerContextStruct &gt;::check </td>
<td>(</td>
<td class="paramtype">const TriggerContextStruct &amp;&#160;</td>
<td class="paramname"><em>ctx</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">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_1Trigger.html#a1579ffb1c841cda4e67990b42d400d88">gridfire::trigger::Trigger&lt; TriggerContextStruct &gt;</a>.</p>
</div>
</div>
<a id="aab88715f3c94437ca7f3fcb1698c69de" name="aab88715f3c94437ca7f3fcb1698c69de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aab88715f3c94437ca7f3fcb1698c69de">&#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_1EveryNthTrigger.html">gridfire::trigger::EveryNthTrigger</a>&lt; TriggerContextStruct &gt;::describe </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">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_1Trigger.html#a402cdd062e9479abbcca02e3d94e528f">gridfire::trigger::Trigger&lt; TriggerContextStruct &gt;</a>.</p>
</div>
</div>
<a id="a4a834d24286f9204995bf78fb69f35dc" name="a4a834d24286f9204995bf78fb69f35dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4a834d24286f9204995bf78fb69f35dc">&#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_1EveryNthTrigger.html">gridfire::trigger::EveryNthTrigger</a>&lt; TriggerContextStruct &gt;::name </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">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_1Trigger.html#a3e5b017147f22ca0733733cd39e334b7">gridfire::trigger::Trigger&lt; TriggerContextStruct &gt;</a>.</p>
</div>
</div>
<a id="ae7776f4a526db3245e64a74a3b0172d3" name="ae7776f4a526db3245e64a74a3b0172d3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae7776f4a526db3245e64a74a3b0172d3">&#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_1EveryNthTrigger.html">gridfire::trigger::EveryNthTrigger</a>&lt; TriggerContextStruct &gt;::numMisses </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">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_1Trigger.html#a81848e5af844795d879b6d885a2701d7">gridfire::trigger::Trigger&lt; TriggerContextStruct &gt;</a>.</p>
</div>
</div>
<a id="a7e5568c9d7799b7f80ad0d3efe2cd143" name="a7e5568c9d7799b7f80ad0d3efe2cd143"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7e5568c9d7799b7f80ad0d3efe2cd143">&#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_1EveryNthTrigger.html">gridfire::trigger::EveryNthTrigger</a>&lt; TriggerContextStruct &gt;::numTriggers </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">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_1Trigger.html#a4ea3abfb76a09c4f55ad05d73a2cf12d">gridfire::trigger::Trigger&lt; TriggerContextStruct &gt;</a>.</p>
</div>
</div>
<a id="abf218d255bde157540b51cd6a54f6eb1" name="abf218d255bde157540b51cd6a54f6eb1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abf218d255bde157540b51cd6a54f6eb1">&#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_1EveryNthTrigger.html">gridfire::trigger::EveryNthTrigger</a>&lt; TriggerContextStruct &gt;::reset </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">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_1Trigger.html#af652af761675736419b961b6946c728d">gridfire::trigger::Trigger&lt; TriggerContextStruct &gt;</a>.</p>
</div>
</div>
<a id="a26d0aca39087a1f69e96e0701ca83f81" name="a26d0aca39087a1f69e96e0701ca83f81"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26d0aca39087a1f69e96e0701ca83f81">&#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_1EveryNthTrigger.html">gridfire::trigger::EveryNthTrigger</a>&lt; TriggerContextStruct &gt;::step </td>
<td>(</td>
<td class="paramtype">const TriggerContextStruct &amp;&#160;</td>
<td class="paramname"><em>ctx</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">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_1Trigger.html#a4b7ffa4d8d31e2118a8e86172be51041">gridfire::trigger::Trigger&lt; TriggerContextStruct &gt;</a>.</p>
</div>
</div>
<a id="a0dd783afab7ef6005f0241f9de7b31f6" name="a0dd783afab7ef6005f0241f9de7b31f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0dd783afab7ef6005f0241f9de7b31f6">&#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_1EveryNthTrigger.html">gridfire::trigger::EveryNthTrigger</a>&lt; TriggerContextStruct &gt;::update </td>
<td>(</td>
<td class="paramtype">const TriggerContextStruct &amp;&#160;</td>
<td class="paramname"><em>ctx</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">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_1Trigger.html#a048899795704f68668960454d118a6fc">gridfire::trigger::Trigger&lt; TriggerContextStruct &gt;</a>.</p>
</div>
</div>
<a id="a3bf0d69122f801deca4b62db47262d9b" name="a3bf0d69122f801deca4b62db47262d9b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3bf0d69122f801deca4b62db47262d9b">&#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_1TriggerResult.html">TriggerResult</a> <a class="el" href="classgridfire_1_1trigger_1_1EveryNthTrigger.html">gridfire::trigger::EveryNthTrigger</a>&lt; TriggerContextStruct &gt;::why </td>
<td>(</td>
<td class="paramtype">const TriggerContextStruct &amp;&#160;</td>
<td class="paramname"><em>ctx</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">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_1TriggerResult.html">TriggerResult</a> tree with a boolean value and per-cause details. </dd></dl>
<p>Implements <a class="el" href="classgridfire_1_1trigger_1_1Trigger.html#a9f020d828ca36a601b780566cc3377ea">gridfire::trigger::Trigger&lt; TriggerContextStruct &gt;</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a27f1fd8c8a93576f83a4f3320469c83a" name="a27f1fd8c8a93576f83a4f3320469c83a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a27f1fd8c8a93576f83a4f3320469c83a">&#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_1Trigger.html">Trigger</a>&lt;TriggerContextStruct&gt; &gt; <a class="el" href="classgridfire_1_1trigger_1_1EveryNthTrigger.html">gridfire::trigger::EveryNthTrigger</a>&lt; TriggerContextStruct &gt;::m_A</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a80d6f82095c3b5fdbc46776e183cdb1f" name="a80d6f82095c3b5fdbc46776e183cdb1f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a80d6f82095c3b5fdbc46776e183cdb1f">&#9670;&#160;</a></span>m_counter</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_1EveryNthTrigger.html">gridfire::trigger::EveryNthTrigger</a>&lt; TriggerContextStruct &gt;::m_counter = 0</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">mutable</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a021c30d6db015bb88a70af348a5dd336" name="a021c30d6db015bb88a70af348a5dd336"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a021c30d6db015bb88a70af348a5dd336">&#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_1EveryNthTrigger.html">gridfire::trigger::EveryNthTrigger</a>&lt; TriggerContextStruct &gt;::m_hits = 0</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">mutable</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a0a5c2c5aedc779c1535d3839c6a6596e" name="a0a5c2c5aedc779c1535d3839c6a6596e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a5c2c5aedc779c1535d3839c6a6596e">&#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_1EveryNthTrigger.html">gridfire::trigger::EveryNthTrigger</a>&lt; TriggerContextStruct &gt;::m_misses = 0</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">mutable</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a652ba8d1ac36b9713f426eedf2b1ead0" name="a652ba8d1ac36b9713f426eedf2b1ead0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a652ba8d1ac36b9713f426eedf2b1ead0">&#9670;&#160;</a></span>m_N</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_1EveryNthTrigger.html">gridfire::trigger::EveryNthTrigger</a>&lt; TriggerContextStruct &gt;::m_N</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a87b6e54f3a0536d20709d7e746ec575d" name="a87b6e54f3a0536d20709d7e746ec575d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a87b6e54f3a0536d20709d7e746ec575d">&#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_1EveryNthTrigger.html">gridfire::trigger::EveryNthTrigger</a>&lt; TriggerContextStruct &gt;::m_resets = 0</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">mutable</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="acefe02899ade9aa595e04f3ec34f251a" name="acefe02899ade9aa595e04f3ec34f251a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acefe02899ade9aa595e04f3ec34f251a">&#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_1EveryNthTrigger.html">gridfire::trigger::EveryNthTrigger</a>&lt; TriggerContextStruct &gt;::m_steps = 0</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">mutable</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ab0a33f49be02d34b27f75edf75dbc06d" name="ab0a33f49be02d34b27f75edf75dbc06d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab0a33f49be02d34b27f75edf75dbc06d">&#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_1EveryNthTrigger.html">gridfire::trigger::EveryNthTrigger</a>&lt; TriggerContextStruct &gt;::m_updates = 0</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">mutable</span><span class="mlabel">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_1EveryNthTrigger.html">EveryNthTrigger</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.9.8 </li>
</ul>
</div>
</body>
</html>