544 lines
48 KiB
HTML
544 lines
48 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.13.2"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>GridFire: gridfire::engine::scratch Namespace 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">
|
|
<div id="projectname">GridFire<span id="projectnumber"> v0.7.6rc4.0</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&dn=expat.txt MIT */
|
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&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&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&dn=expat.txt MIT */
|
|
$(function(){initNavTree('namespacegridfire_1_1engine_1_1scratch.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="#nested-classes">Classes</a> |
|
|
<a href="#concepts">Concepts</a> |
|
|
<a href="#enum-members">Enumerations</a> |
|
|
<a href="#func-members">Functions</a> </div>
|
|
<div class="headertitle"><div class="title">gridfire::engine::scratch Namespace Reference</div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>Scratchpad memory management for computational engines.
|
|
<a href="#details">More...</a></p>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
|
|
Classes</h2></td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structgridfire_1_1engine_1_1scratch_1_1_abstract_scratch_pad.html">AbstractScratchPad</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Abstract base struct for engine scratchpad memory. <a href="structgridfire_1_1engine_1_1scratch_1_1_abstract_scratch_pad.html#details">More...</a><br /></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structgridfire_1_1engine_1_1scratch_1_1_adaptive_engine_view_scratch_pad.html">AdaptiveEngineViewScratchPad</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Scratchpad for storing working memory used by <a class="el" href="classgridfire_1_1engine_1_1_adaptive_engine_view.html" title="An engine view that dynamically adapts the reaction network based on runtime conditions.">AdaptiveEngineView</a> computations. <a href="structgridfire_1_1engine_1_1scratch_1_1_adaptive_engine_view_scratch_pad.html#details">More...</a><br /></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structgridfire_1_1engine_1_1scratch_1_1_defined_engine_view_scratch_pad.html">DefinedEngineViewScratchPad</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Scratchpad for storing working memory used by defined reaction network engines. <a href="structgridfire_1_1engine_1_1scratch_1_1_defined_engine_view_scratch_pad.html#details">More...</a><br /></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structgridfire_1_1engine_1_1scratch_1_1_graph_engine_scratch_pad.html">GraphEngineScratchPad</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Scratchpad for storing CppAD automatic differentiation state for <a class="el" href="classgridfire_1_1engine_1_1_graph_engine.html" title="A reaction network engine that uses a graph-based representation.">GraphEngine</a>. <a href="structgridfire_1_1engine_1_1scratch_1_1_graph_engine_scratch_pad.html#details">More...</a><br /></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structgridfire_1_1engine_1_1scratch_1_1_multiscale_partitioning_engine_view_scratch_pad.html">MultiscalePartitioningEngineViewScratchPad</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Scratchpad for multiscale partitioning engine computations with QSE groups. <a href="structgridfire_1_1engine_1_1scratch_1_1_multiscale_partitioning_engine_view_scratch_pad.html#details">More...</a><br /></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">StateBlob</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Container for managing a collection of typed scratchpad instances. <a href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html#details">More...</a><br /></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="concepts" name="concepts"></a>
|
|
Concepts</h2></td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">concept  </td><td class="memItemRight" valign="bottom"><a class="el" href="conceptgridfire_1_1engine_1_1scratch_1_1_is_scratch_pad.html">IsScratchPad</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Concept that constrains types to valid scratchpad implementations. <br /></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
|
|
Enumerations</h2></td></tr>
|
|
<tr class="memitem:a61cbbc8ec7103cc74fc8e549fd0649be" id="r_a61cbbc8ec7103cc74fc8e549fd0649be"><td class="memItemLeft" align="right" valign="top">enum class  </td><td class="memItemRight" valign="bottom"><a class="el" href="#a61cbbc8ec7103cc74fc8e549fd0649be">ScratchPadType</a> : uint8_t { <br />
|
|
  <a class="el" href="#a61cbbc8ec7103cc74fc8e549fd0649bea979fbf2c36e2a27005d241a7d27eb723">GRAPH_ENGINE_SCRATCHPAD</a>
|
|
, <a class="el" href="#a61cbbc8ec7103cc74fc8e549fd0649bea04752870c6cbdf741856f817d68f80bc">MULTISCALE_PARTITIONING_ENGINE_VIEW_SCRATCHPAD</a>
|
|
, <a class="el" href="#a61cbbc8ec7103cc74fc8e549fd0649bea7ea429f895ad8257bbf75dc52312d999">ADAPTIVE_ENGINE_VIEW_SCRATCHPAD</a>
|
|
, <a class="el" href="#a61cbbc8ec7103cc74fc8e549fd0649bead249b18ecc73b7531c3b609272989f04">DEFINED_ENGINE_VIEW_SCRATCHPAD</a>
|
|
, <br />
|
|
  <a class="el" href="#a61cbbc8ec7103cc74fc8e549fd0649bea051914b0c2bbfe353fa2621902e0a84a">PRIMING_ENGINE_VIEW_SCRATCHPAD</a>
|
|
, <a class="el" href="#a61cbbc8ec7103cc74fc8e549fd0649beaf3351ee60ccc810690817d90739bf103">_COUNT</a>
|
|
<br />
|
|
}</td></tr>
|
|
<tr class="memdesc:a61cbbc8ec7103cc74fc8e549fd0649be"><td class="mdescLeft"> </td><td class="mdescRight">Enumeration of all registered scratchpad types. <a href="#a61cbbc8ec7103cc74fc8e549fd0649be">More...</a><br /></td></tr>
|
|
<tr class="separator:a61cbbc8ec7103cc74fc8e549fd0649be"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
|
|
Functions</h2></td></tr>
|
|
<tr class="memitem:a7fa4b4931eb98910018ecb9e6d37a778" id="r_a7fa4b4931eb98910018ecb9e6d37a778"><td class="memItemLeft" align="right" valign="top">consteval size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="#a7fa4b4931eb98910018ecb9e6d37a778">get_max_scratchpad_types</a> ()</td></tr>
|
|
<tr class="memdesc:a7fa4b4931eb98910018ecb9e6d37a778"><td class="mdescLeft"> </td><td class="mdescRight">Get the maximum number of scratchpad types at compile time. <br /></td></tr>
|
|
<tr class="separator:a7fa4b4931eb98910018ecb9e6d37a778"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aca27b37993186128808c8fdd96c54849" id="r_aca27b37993186128808c8fdd96c54849"><td class="memItemLeft" align="right" valign="top">constexpr std::string_view </td><td class="memItemRight" valign="bottom"><a class="el" href="#aca27b37993186128808c8fdd96c54849">get_scratchpad_type_name</a> (const <a class="el" href="#a61cbbc8ec7103cc74fc8e549fd0649be">ScratchPadType</a> scratchpad_type)</td></tr>
|
|
<tr class="memdesc:aca27b37993186128808c8fdd96c54849"><td class="mdescLeft"> </td><td class="mdescRight">Convert a <a class="el" href="#a61cbbc8ec7103cc74fc8e549fd0649be" title="Enumeration of all registered scratchpad types.">ScratchPadType</a> to a human-readable name. <br /></td></tr>
|
|
<tr class="separator:aca27b37993186128808c8fdd96c54849"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab8f89f710094bfc93b84e26c818249b9" id="r_ab8f89f710094bfc93b84e26c818249b9"><td class="memTemplParams" colspan="2">template<IsScratchPad CTX> </td></tr>
|
|
<tr class="memitem:ab8f89f710094bfc93b84e26c818249b9"><td class="memTemplItemLeft" align="right" valign="top">CTX * </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#ab8f89f710094bfc93b84e26c818249b9">get_state</a> (<a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">StateBlob</a> &ctx)</td></tr>
|
|
<tr class="memdesc:ab8f89f710094bfc93b84e26c818249b9"><td class="mdescLeft"> </td><td class="mdescRight">Retrieve a scratchpad from a <a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html" title="Container for managing a collection of typed scratchpad instances.">StateBlob</a>, throwing on error. <br /></td></tr>
|
|
<tr class="separator:ab8f89f710094bfc93b84e26c818249b9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a322cc33cefc958d2507229aa283e8d4e" id="r_a322cc33cefc958d2507229aa283e8d4e"><td class="memTemplParams" colspan="2">template<IsScratchPad CTX> </td></tr>
|
|
<tr class="memitem:a322cc33cefc958d2507229aa283e8d4e"><td class="memTemplItemLeft" align="right" valign="top">const CTX * </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a322cc33cefc958d2507229aa283e8d4e">get_state</a> (const <a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">StateBlob</a> &ctx)</td></tr>
|
|
<tr class="memdesc:a322cc33cefc958d2507229aa283e8d4e"><td class="mdescLeft"> </td><td class="mdescRight">Retrieve a const scratchpad from a const <a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html" title="Container for managing a collection of typed scratchpad instances.">StateBlob</a>, throwing on error. <br /></td></tr>
|
|
<tr class="separator:a322cc33cefc958d2507229aa283e8d4e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aeae70212ece1d604b41e434641bd4291" id="r_aeae70212ece1d604b41e434641bd4291"><td class="memTemplParams" colspan="2">template<IsScratchPad CTX, bool MUST_BE_INITIALIZED> </td></tr>
|
|
<tr class="memitem:aeae70212ece1d604b41e434641bd4291"><td class="memTemplItemLeft" align="right" valign="top">CTX * </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#aeae70212ece1d604b41e434641bd4291">get_state</a> (<a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">StateBlob</a> &ctx)</td></tr>
|
|
<tr class="memdesc:aeae70212ece1d604b41e434641bd4291"><td class="mdescLeft"> </td><td class="mdescRight">Retrieve a scratchpad with optional initialization check, throwing on error. <br /></td></tr>
|
|
<tr class="separator:aeae70212ece1d604b41e434641bd4291"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:afd8f2cf5ed25a1c719ba1886836ff892" id="r_afd8f2cf5ed25a1c719ba1886836ff892"><td class="memTemplParams" colspan="2">template<IsScratchPad CTX, bool MUST_BE_INITIALIZED> </td></tr>
|
|
<tr class="memitem:afd8f2cf5ed25a1c719ba1886836ff892"><td class="memTemplItemLeft" align="right" valign="top">const CTX * </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#afd8f2cf5ed25a1c719ba1886836ff892">get_state</a> (const <a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">StateBlob</a> &ctx)</td></tr>
|
|
<tr class="memdesc:afd8f2cf5ed25a1c719ba1886836ff892"><td class="mdescLeft"> </td><td class="mdescRight">Retrieve a const scratchpad with optional initialization check, throwing on error. <br /></td></tr>
|
|
<tr class="separator:afd8f2cf5ed25a1c719ba1886836ff892"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><p>Scratchpad memory management for computational engines. </p>
|
|
<p>The scratch namespace contains all components related to temporary working memory management for GridFire's computational engines. This includes the abstract scratchpad interface, concrete implementations for each engine type, the <a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html" title="Container for managing a collection of typed scratchpad instances.">StateBlob</a> container for managing multiple scratchpads, and utilities for convenient access.</p>
|
|
<dl class="section user"><dt>Key Components</dt><dd><ul>
|
|
<li><a class="el" href="structgridfire_1_1engine_1_1scratch_1_1_abstract_scratch_pad.html" title="Abstract base struct for engine scratchpad memory.">AbstractScratchPad</a>: Interface for all scratchpad types</li>
|
|
<li><a class="el" href="structgridfire_1_1engine_1_1scratch_1_1_graph_engine_scratch_pad.html" title="Scratchpad for storing CppAD automatic differentiation state for GraphEngine.">GraphEngineScratchPad</a>: Working memory for CppAD-based graph engines</li>
|
|
<li><a class="el" href="structgridfire_1_1engine_1_1scratch_1_1_adaptive_engine_view_scratch_pad.html" title="Scratchpad for storing working memory used by AdaptiveEngineView computations.">AdaptiveEngineViewScratchPad</a>: Storage for adaptive network computations</li>
|
|
<li><a class="el" href="structgridfire_1_1engine_1_1scratch_1_1_defined_engine_view_scratch_pad.html" title="Scratchpad for storing working memory used by defined reaction network engines.">DefinedEngineViewScratchPad</a>: Storage for static network computations</li>
|
|
<li><a class="el" href="structgridfire_1_1engine_1_1scratch_1_1_multiscale_partitioning_engine_view_scratch_pad.html" title="Scratchpad for multiscale partitioning engine computations with QSE groups.">MultiscalePartitioningEngineViewScratchPad</a>: QSE solver state management</li>
|
|
<li><a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html" title="Container for managing a collection of typed scratchpad instances.">StateBlob</a>: Type-safe container for multiple scratchpads</li>
|
|
<li><a class="el" href="#a61cbbc8ec7103cc74fc8e549fd0649be" title="Enumeration of all registered scratchpad types.">ScratchPadType</a>: Enumeration of registered scratchpad types</li>
|
|
<li><a class="el" href="conceptgridfire_1_1engine_1_1scratch_1_1_is_scratch_pad.html" title="Concept that constrains types to valid scratchpad implementations.">IsScratchPad</a>: Concept constraining valid scratchpad types</li>
|
|
<li><a class="el" href="#ab8f89f710094bfc93b84e26c818249b9" title="Retrieve a scratchpad from a StateBlob, throwing on error.">get_state()</a>: Utility functions for exception-based retrieval</li>
|
|
</ul>
|
|
</dd></dl>
|
|
<dl class="section user"><dt>Design Philosophy</dt><dd>The scratchpad system follows these design principles:</dd></dl>
|
|
<ol type="1">
|
|
<li><b>Separation of Concerns</b>: Working memory is separate from engine configuration</li>
|
|
<li><b>Type Safety</b>: Compile-time verification of scratchpad types via concepts</li>
|
|
<li><b>Performance</b>: O(1) access via enum-indexed arrays</li>
|
|
<li><b>Thread Locality</b>: Each thread owns its scratchpad instances</li>
|
|
<li><b>Clonability</b>: Deep copying enables parallel execution patterns </li>
|
|
</ol>
|
|
</div><h2 class="groupheader">Enumeration Type Documentation</h2>
|
|
<a id="a61cbbc8ec7103cc74fc8e549fd0649be" name="a61cbbc8ec7103cc74fc8e549fd0649be"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a61cbbc8ec7103cc74fc8e549fd0649be">◆ </a></span>ScratchPadType</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">enum class <a class="el" href="#a61cbbc8ec7103cc74fc8e549fd0649be">gridfire::engine::scratch::ScratchPadType</a> : uint8_t</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel strong">strong</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Enumeration of all registered scratchpad types. </p>
|
|
<p>Each scratchpad implementation must have a unique type identifier in this enumeration. The concrete scratchpad class should define a static <code>ID</code> member initialized to its corresponding <a class="el" href="#a61cbbc8ec7103cc74fc8e549fd0649be" title="Enumeration of all registered scratchpad types.">ScratchPadType</a> value.</p>
|
|
<dl class="section note"><dt>Note</dt><dd>The <code>_COUNT</code> enumerator is a sentinel value used to determine the total number of scratchpad types. It must always be the last entry. Do not use <code>_COUNT</code> as an actual scratchpad type. </dd></dl>
|
|
<table class="fieldtable">
|
|
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a61cbbc8ec7103cc74fc8e549fd0649bea979fbf2c36e2a27005d241a7d27eb723" name="a61cbbc8ec7103cc74fc8e549fd0649bea979fbf2c36e2a27005d241a7d27eb723"></a>GRAPH_ENGINE_SCRATCHPAD </td><td class="fielddoc"><p><a class="el" href="structgridfire_1_1engine_1_1scratch_1_1_graph_engine_scratch_pad.html" title="Scratchpad for storing CppAD automatic differentiation state for GraphEngine.">GraphEngineScratchPad</a> for CppAD-based engines. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="a61cbbc8ec7103cc74fc8e549fd0649bea04752870c6cbdf741856f817d68f80bc" name="a61cbbc8ec7103cc74fc8e549fd0649bea04752870c6cbdf741856f817d68f80bc"></a>MULTISCALE_PARTITIONING_ENGINE_VIEW_SCRATCHPAD </td><td class="fielddoc"><p><a class="el" href="structgridfire_1_1engine_1_1scratch_1_1_multiscale_partitioning_engine_view_scratch_pad.html" title="Scratchpad for multiscale partitioning engine computations with QSE groups.">MultiscalePartitioningEngineViewScratchPad</a> for QSE partitioning. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="a61cbbc8ec7103cc74fc8e549fd0649bea7ea429f895ad8257bbf75dc52312d999" name="a61cbbc8ec7103cc74fc8e549fd0649bea7ea429f895ad8257bbf75dc52312d999"></a>ADAPTIVE_ENGINE_VIEW_SCRATCHPAD </td><td class="fielddoc"><p><a class="el" href="structgridfire_1_1engine_1_1scratch_1_1_adaptive_engine_view_scratch_pad.html" title="Scratchpad for storing working memory used by AdaptiveEngineView computations.">AdaptiveEngineViewScratchPad</a> for adaptive networks. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="a61cbbc8ec7103cc74fc8e549fd0649bead249b18ecc73b7531c3b609272989f04" name="a61cbbc8ec7103cc74fc8e549fd0649bead249b18ecc73b7531c3b609272989f04"></a>DEFINED_ENGINE_VIEW_SCRATCHPAD </td><td class="fielddoc"><p><a class="el" href="structgridfire_1_1engine_1_1scratch_1_1_defined_engine_view_scratch_pad.html" title="Scratchpad for storing working memory used by defined reaction network engines.">DefinedEngineViewScratchPad</a> for static networks. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="a61cbbc8ec7103cc74fc8e549fd0649bea051914b0c2bbfe353fa2621902e0a84a" name="a61cbbc8ec7103cc74fc8e549fd0649bea051914b0c2bbfe353fa2621902e0a84a"></a>PRIMING_ENGINE_VIEW_SCRATCHPAD </td><td class="fielddoc"><p>PrimingEngineViewScratchPad for engine priming. </p>
|
|
</td></tr>
|
|
<tr><td class="fieldname"><a id="a61cbbc8ec7103cc74fc8e549fd0649beaf3351ee60ccc810690817d90739bf103" name="a61cbbc8ec7103cc74fc8e549fd0649beaf3351ee60ccc810690817d90739bf103"></a>_COUNT </td><td class="fielddoc"><p>Sentinel value representing the total number of scratchpad types. Do not use as a type. </p>
|
|
</td></tr>
|
|
</table>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Function Documentation</h2>
|
|
<a id="a7fa4b4931eb98910018ecb9e6d37a778" name="a7fa4b4931eb98910018ecb9e6d37a778"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a7fa4b4931eb98910018ecb9e6d37a778">◆ </a></span>get_max_scratchpad_types()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">size_t gridfire::engine::scratch::get_max_scratchpad_types </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 consteval">consteval</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Get the maximum number of scratchpad types at compile time. </p>
|
|
<p>Returns the total count of registered scratchpad types, derived from the <a class="el" href="#a61cbbc8ec7103cc74fc8e549fd0649beaf3351ee60ccc810690817d90739bf103" title="Sentinel value representing the total number of scratchpad types. Do not use as a type.">ScratchPadType::_COUNT</a> sentinel value. This is useful for sizing fixed-size arrays that need a slot for each scratchpad type.</p>
|
|
<dl class="section return"><dt>Returns</dt><dd>The number of valid scratchpad types (excluding _COUNT).</dd></dl>
|
|
<dl class="section user"><dt>Examples</dt><dd><div class="fragment"><div class="line"><span class="comment">// Use at compile time for array sizing</span></div>
|
|
<div class="line"><span class="keyword">constexpr</span> <span class="keywordtype">size_t</span> NUM_TYPES = <a class="code hl_function" href="#a7fa4b4931eb98910018ecb9e6d37a778">get_max_scratchpad_types</a>();</div>
|
|
<div class="line">std::array<std::unique_ptr<AbstractScratchPad>, NUM_TYPES> scratchpads;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><span class="comment">// Use in static_assert</span></div>
|
|
<div class="line"><span class="keyword">static_assert</span>(<a class="code hl_function" href="#a7fa4b4931eb98910018ecb9e6d37a778">get_max_scratchpad_types</a>() > 0, <span class="stringliteral">"No scratchpad types defined"</span>);</div>
|
|
<div class="ttc" id="anamespacegridfire_1_1engine_1_1scratch_html_a7fa4b4931eb98910018ecb9e6d37a778"><div class="ttname"><a href="#a7fa4b4931eb98910018ecb9e6d37a778">gridfire::engine::scratch::get_max_scratchpad_types</a></div><div class="ttdeci">consteval size_t get_max_scratchpad_types()</div><div class="ttdoc">Get the maximum number of scratchpad types at compile time.</div><div class="ttdef"><b>Definition</b> types.h:93</div></div>
|
|
</div><!-- fragment --> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aca27b37993186128808c8fdd96c54849" name="aca27b37993186128808c8fdd96c54849"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aca27b37993186128808c8fdd96c54849">◆ </a></span>get_scratchpad_type_name()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">std::string_view gridfire::engine::scratch::get_scratchpad_type_name </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="#a61cbbc8ec7103cc74fc8e549fd0649be">ScratchPadType</a></td> <td class="paramname"><span class="paramname"><em>scratchpad_type</em></span></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel constexpr">constexpr</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Convert a <a class="el" href="#a61cbbc8ec7103cc74fc8e549fd0649be" title="Enumeration of all registered scratchpad types.">ScratchPadType</a> to a human-readable name. </p>
|
|
<p>Returns a string view containing the class name associated with the given scratchpad type. Useful for logging, debugging, and error messages.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">scratchpad_type</td><td>The scratchpad type to convert.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>A string view containing the scratchpad class name, or "UnknownScratchPadType" for unrecognized values.</dd></dl>
|
|
<dl class="section user"><dt>Examples</dt><dd><div class="fragment"><div class="line"><a class="code hl_enumeration" href="#a61cbbc8ec7103cc74fc8e549fd0649be">ScratchPadType</a> type = <a class="code hl_enumvalue" href="#a61cbbc8ec7103cc74fc8e549fd0649bea979fbf2c36e2a27005d241a7d27eb723">ScratchPadType::GRAPH_ENGINE_SCRATCHPAD</a>;</div>
|
|
<div class="line">std::cout << <span class="stringliteral">"Using: "</span> << <a class="code hl_function" href="#aca27b37993186128808c8fdd96c54849">get_scratchpad_type_name</a>(type) << <span class="stringliteral">"\n"</span>;</div>
|
|
<div class="line"><span class="comment">// Output: "Using: GraphEngineScratchPad"</span></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><span class="comment">// Use in error messages</span></div>
|
|
<div class="line"><span class="keywordflow">throw</span> std::runtime_error(</div>
|
|
<div class="line"> std::format(<span class="stringliteral">"Failed to initialize {}"</span>, <a class="code hl_function" href="#aca27b37993186128808c8fdd96c54849">get_scratchpad_type_name</a>(type))</div>
|
|
<div class="line">);</div>
|
|
<div class="ttc" id="anamespacegridfire_1_1engine_1_1scratch_html_a61cbbc8ec7103cc74fc8e549fd0649be"><div class="ttname"><a href="#a61cbbc8ec7103cc74fc8e549fd0649be">gridfire::engine::scratch::ScratchPadType</a></div><div class="ttdeci">ScratchPadType</div><div class="ttdoc">Enumeration of all registered scratchpad types.</div><div class="ttdef"><b>Definition</b> types.h:64</div></div>
|
|
<div class="ttc" id="anamespacegridfire_1_1engine_1_1scratch_html_a61cbbc8ec7103cc74fc8e549fd0649bea979fbf2c36e2a27005d241a7d27eb723"><div class="ttname"><a href="#a61cbbc8ec7103cc74fc8e549fd0649bea979fbf2c36e2a27005d241a7d27eb723">gridfire::engine::scratch::ScratchPadType::GRAPH_ENGINE_SCRATCHPAD</a></div><div class="ttdeci">@ GRAPH_ENGINE_SCRATCHPAD</div><div class="ttdoc">GraphEngineScratchPad for CppAD-based engines.</div><div class="ttdef"><b>Definition</b> types.h:65</div></div>
|
|
<div class="ttc" id="anamespacegridfire_1_1engine_1_1scratch_html_aca27b37993186128808c8fdd96c54849"><div class="ttname"><a href="#aca27b37993186128808c8fdd96c54849">gridfire::engine::scratch::get_scratchpad_type_name</a></div><div class="ttdeci">constexpr std::string_view get_scratchpad_type_name(const ScratchPadType scratchpad_type)</div><div class="ttdoc">Convert a ScratchPadType to a human-readable name.</div><div class="ttdef"><b>Definition</b> types.h:121</div></div>
|
|
</div><!-- fragment --> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a322cc33cefc958d2507229aa283e8d4e" name="a322cc33cefc958d2507229aa283e8d4e"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a322cc33cefc958d2507229aa283e8d4e">◆ </a></span>get_state() <span class="overload">[1/4]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<IsScratchPad CTX> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const CTX * gridfire::engine::scratch::get_state </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">StateBlob</a> &</td> <td class="paramname"><span class="paramname"><em>ctx</em></span></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Retrieve a const scratchpad from a const <a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html" title="Container for managing a collection of typed scratchpad instances.">StateBlob</a>, throwing on error. </p>
|
|
<p>Const-correct overload of <a class="el" href="#ab8f89f710094bfc93b84e26c818249b9" title="Retrieve a scratchpad from a StateBlob, throwing on error.">get_state()</a> for read-only access to scratchpads. Use this when you have a const reference to the <a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html" title="Container for managing a collection of typed scratchpad instances.">StateBlob</a> and only need to read from the scratchpad.</p>
|
|
<dl class="tparams"><dt>Template Parameters</dt><dd>
|
|
<table class="tparams">
|
|
<tr><td class="paramname">CTX</td><td>The scratchpad type to retrieve (must satisfy <a class="el" href="conceptgridfire_1_1engine_1_1scratch_1_1_is_scratch_pad.html" title="Concept that constrains types to valid scratchpad implementations.">IsScratchPad</a>).</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">ctx</td><td>The const <a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html" title="Container for managing a collection of typed scratchpad instances.">StateBlob</a> to retrieve the scratchpad from.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Const pointer to the requested scratchpad.</dd></dl>
|
|
<dl class="exception"><dt>Exceptions</dt><dd>
|
|
<table class="exception">
|
|
<tr><td class="paramname"><a class="el" href="classgridfire_1_1exceptions_1_1_scratch_pad_error.html">exceptions::ScratchPadError</a></td><td>if the scratchpad is not found, cannot be cast to the requested type, or any other error occurs.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section user"><dt>Examples</dt><dd><div class="fragment"><div class="line"><span class="keywordtype">void</span> inspect(<span class="keyword">const</span> <a class="code hl_class" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">StateBlob</a>& blob) {</div>
|
|
<div class="line"> <span class="keyword">const</span> <a class="code hl_struct" href="structgridfire_1_1engine_1_1scratch_1_1_graph_engine_scratch_pad.html">GraphEngineScratchPad</a>* <a class="code hl_namespace" href="namespacegridfire_1_1engine_1_1scratch.html">scratch</a> = <a class="code hl_function" href="#ab8f89f710094bfc93b84e26c818249b9">get_state<GraphEngineScratchPad></a>(blob);</div>
|
|
<div class="line"> <span class="keywordflow">if</span> (<a class="code hl_namespace" href="namespacegridfire_1_1engine_1_1scratch.html">scratch</a>->is_initialized()) {</div>
|
|
<div class="line"> <span class="comment">// Read from scratch...</span></div>
|
|
<div class="line"> }</div>
|
|
<div class="line">}</div>
|
|
<div class="ttc" id="aclassgridfire_1_1engine_1_1scratch_1_1_state_blob_html"><div class="ttname"><a href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">gridfire::engine::scratch::StateBlob</a></div><div class="ttdoc">Container for managing a collection of typed scratchpad instances.</div><div class="ttdef"><b>Definition</b> blob.h:114</div></div>
|
|
<div class="ttc" id="anamespacegridfire_1_1engine_1_1scratch_html"><div class="ttname"><a href="namespacegridfire_1_1engine_1_1scratch.html">gridfire::engine::scratch</a></div><div class="ttdoc">Scratchpad memory management for computational engines.</div><div class="ttdef"><b>Definition</b> blob.h:69</div></div>
|
|
<div class="ttc" id="anamespacegridfire_1_1engine_1_1scratch_html_ab8f89f710094bfc93b84e26c818249b9"><div class="ttname"><a href="#ab8f89f710094bfc93b84e26c818249b9">gridfire::engine::scratch::get_state</a></div><div class="ttdeci">CTX * get_state(StateBlob &ctx)</div><div class="ttdoc">Retrieve a scratchpad from a StateBlob, throwing on error.</div><div class="ttdef"><b>Definition</b> utils.h:84</div></div>
|
|
<div class="ttc" id="astructgridfire_1_1engine_1_1scratch_1_1_graph_engine_scratch_pad_html"><div class="ttname"><a href="structgridfire_1_1engine_1_1scratch_1_1_graph_engine_scratch_pad.html">gridfire::engine::scratch::GraphEngineScratchPad</a></div><div class="ttdoc">Scratchpad for storing CppAD automatic differentiation state for GraphEngine.</div><div class="ttdef"><b>Definition</b> engine_graph_scratchpad.h:83</div></div>
|
|
</div><!-- fragment --> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="afd8f2cf5ed25a1c719ba1886836ff892" name="afd8f2cf5ed25a1c719ba1886836ff892"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#afd8f2cf5ed25a1c719ba1886836ff892">◆ </a></span>get_state() <span class="overload">[2/4]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<IsScratchPad CTX, bool MUST_BE_INITIALIZED> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const CTX * gridfire::engine::scratch::get_state </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const <a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">StateBlob</a> &</td> <td class="paramname"><span class="paramname"><em>ctx</em></span></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Retrieve a const scratchpad with optional initialization check, throwing on error. </p>
|
|
<p>Const-correct overload of the initialization-checking <a class="el" href="#ab8f89f710094bfc93b84e26c818249b9" title="Retrieve a scratchpad from a StateBlob, throwing on error.">get_state()</a>. Combines read-only access with optional initialization verification.</p>
|
|
<dl class="tparams"><dt>Template Parameters</dt><dd>
|
|
<table class="tparams">
|
|
<tr><td class="paramname">CTX</td><td>The scratchpad type to retrieve (must satisfy <a class="el" href="conceptgridfire_1_1engine_1_1scratch_1_1_is_scratch_pad.html" title="Concept that constrains types to valid scratchpad implementations.">IsScratchPad</a>). </td></tr>
|
|
<tr><td class="paramname">MUST_BE_INITIALIZED</td><td>If true, throws when the scratchpad is not initialized.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">ctx</td><td>The const <a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html" title="Container for managing a collection of typed scratchpad instances.">StateBlob</a> to retrieve the scratchpad from.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Const pointer to the requested scratchpad (guaranteed initialized if MUST_BE_INITIALIZED is true).</dd></dl>
|
|
<dl class="exception"><dt>Exceptions</dt><dd>
|
|
<table class="exception">
|
|
<tr><td class="paramname"><a class="el" href="classgridfire_1_1exceptions_1_1_scratch_pad_error.html">exceptions::ScratchPadError</a></td><td>if the scratchpad is not found, cannot be cast, is not initialized (when required), or any other error.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section user"><dt>Examples</dt><dd><div class="fragment"><div class="line"><span class="keywordtype">void</span> validate(<span class="keyword">const</span> <a class="code hl_class" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">StateBlob</a>& blob) {</div>
|
|
<div class="line"> <span class="comment">// Get const access, ensuring initialization</span></div>
|
|
<div class="line"> <span class="keyword">const</span> <span class="keyword">auto</span>* <a class="code hl_namespace" href="namespacegridfire_1_1engine_1_1scratch.html">scratch</a> = <a class="code hl_function" href="#ab8f89f710094bfc93b84e26c818249b9">get_state<GraphEngineScratchPad, true></a>(blob);</div>
|
|
<div class="line"> <span class="comment">// Safe to read - guaranteed initialized</span></div>
|
|
<div class="line"> <span class="keyword">const</span> <span class="keyword">auto</span>& adfun = <a class="code hl_namespace" href="namespacegridfire_1_1engine_1_1scratch.html">scratch</a>->rhsADFun.value();</div>
|
|
<div class="line">}</div>
|
|
</div><!-- fragment --> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ab8f89f710094bfc93b84e26c818249b9" name="ab8f89f710094bfc93b84e26c818249b9"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab8f89f710094bfc93b84e26c818249b9">◆ </a></span>get_state() <span class="overload">[3/4]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<IsScratchPad CTX> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">CTX * gridfire::engine::scratch::get_state </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">StateBlob</a> &</td> <td class="paramname"><span class="paramname"><em>ctx</em></span></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Retrieve a scratchpad from a <a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html" title="Container for managing a collection of typed scratchpad instances.">StateBlob</a>, throwing on error. </p>
|
|
<p>Convenience wrapper around <a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html#acedd28277e5c6805865a9baa3991686a" title="Retrieve a scratchpad by type.">StateBlob::get()</a> that converts error codes into exceptions. Use this when you expect the scratchpad to exist and want exception-based error handling.</p>
|
|
<dl class="tparams"><dt>Template Parameters</dt><dd>
|
|
<table class="tparams">
|
|
<tr><td class="paramname">CTX</td><td>The scratchpad type to retrieve (must satisfy <a class="el" href="conceptgridfire_1_1engine_1_1scratch_1_1_is_scratch_pad.html" title="Concept that constrains types to valid scratchpad implementations.">IsScratchPad</a>).</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">ctx</td><td>The <a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html" title="Container for managing a collection of typed scratchpad instances.">StateBlob</a> to retrieve the scratchpad from.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Pointer to the requested scratchpad.</dd></dl>
|
|
<dl class="exception"><dt>Exceptions</dt><dd>
|
|
<table class="exception">
|
|
<tr><td class="paramname"><a class="el" href="classgridfire_1_1exceptions_1_1_scratch_pad_error.html">exceptions::ScratchPadError</a></td><td>if the scratchpad is not found, cannot be cast to the requested type, or any other error occurs.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section user"><dt>Examples</dt><dd><div class="fragment"><div class="line"><a class="code hl_class" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">StateBlob</a> blob;</div>
|
|
<div class="line">blob.<a class="code hl_function" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html#aa06d7bb89e67c4b6fd584d8f32a251bf">enroll</a><<a class="code hl_struct" href="structgridfire_1_1engine_1_1scratch_1_1_graph_engine_scratch_pad.html">GraphEngineScratchPad</a>>();</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><span class="comment">// Retrieve the scratchpad - throws if not enrolled</span></div>
|
|
<div class="line"><a class="code hl_struct" href="structgridfire_1_1engine_1_1scratch_1_1_graph_engine_scratch_pad.html">GraphEngineScratchPad</a>* <a class="code hl_namespace" href="namespacegridfire_1_1engine_1_1scratch.html">scratch</a> = <a class="code hl_function" href="#ab8f89f710094bfc93b84e26c818249b9">get_state<GraphEngineScratchPad></a>(blob);</div>
|
|
<div class="line"><a class="code hl_namespace" href="namespacegridfire_1_1engine_1_1scratch.html">scratch</a>->initialize(<a class="code hl_namespace" href="namespacegridfire_1_1engine.html">engine</a>);</div>
|
|
<div class="ttc" id="aclassgridfire_1_1engine_1_1scratch_1_1_state_blob_html_aa06d7bb89e67c4b6fd584d8f32a251bf"><div class="ttname"><a href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html#aa06d7bb89e67c4b6fd584d8f32a251bf">gridfire::engine::scratch::StateBlob::enroll</a></div><div class="ttdeci">void enroll()</div><div class="ttdoc">Enroll a new scratchpad type into the blob.</div><div class="ttdef"><b>Definition</b> blob.h:196</div></div>
|
|
<div class="ttc" id="anamespacegridfire_1_1engine_html"><div class="ttname"><a href="namespacegridfire_1_1engine.html">gridfire::engine</a></div><div class="ttdef"><b>Definition</b> dynamic_engine_diagnostics.h:39</div></div>
|
|
</div><!-- fragment --> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aeae70212ece1d604b41e434641bd4291" name="aeae70212ece1d604b41e434641bd4291"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aeae70212ece1d604b41e434641bd4291">◆ </a></span>get_state() <span class="overload">[4/4]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<div class="memtemplate">
|
|
template<IsScratchPad CTX, bool MUST_BE_INITIALIZED> </div>
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">CTX * gridfire::engine::scratch::get_state </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">StateBlob</a> &</td> <td class="paramname"><span class="paramname"><em>ctx</em></span></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Retrieve a scratchpad with optional initialization check, throwing on error. </p>
|
|
<p>Extended version of <a class="el" href="#ab8f89f710094bfc93b84e26c818249b9" title="Retrieve a scratchpad from a StateBlob, throwing on error.">get_state()</a> that can optionally verify the scratchpad is initialized before returning it. When MUST_BE_INITIALIZED is true, an exception is thrown if the scratchpad exists but hasn't been initialized.</p>
|
|
<dl class="tparams"><dt>Template Parameters</dt><dd>
|
|
<table class="tparams">
|
|
<tr><td class="paramname">CTX</td><td>The scratchpad type to retrieve (must satisfy <a class="el" href="conceptgridfire_1_1engine_1_1scratch_1_1_is_scratch_pad.html" title="Concept that constrains types to valid scratchpad implementations.">IsScratchPad</a>). </td></tr>
|
|
<tr><td class="paramname">MUST_BE_INITIALIZED</td><td>If true, throws when the scratchpad is not initialized.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">ctx</td><td>The <a class="el" href="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html" title="Container for managing a collection of typed scratchpad instances.">StateBlob</a> to retrieve the scratchpad from.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Pointer to the requested scratchpad (guaranteed initialized if MUST_BE_INITIALIZED is true).</dd></dl>
|
|
<dl class="exception"><dt>Exceptions</dt><dd>
|
|
<table class="exception">
|
|
<tr><td class="paramname"><a class="el" href="classgridfire_1_1exceptions_1_1_scratch_pad_error.html">exceptions::ScratchPadError</a></td><td>if the scratchpad is not found, cannot be cast, is not initialized (when required), or any other error.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section user"><dt>Examples</dt><dd><div class="fragment"><div class="line"><span class="comment">// Ensure scratchpad is initialized before use</span></div>
|
|
<div class="line"><span class="keywordflow">try</span> {</div>
|
|
<div class="line"> <span class="keyword">auto</span>* <a class="code hl_namespace" href="namespacegridfire_1_1engine_1_1scratch.html">scratch</a> = <a class="code hl_function" href="#ab8f89f710094bfc93b84e26c818249b9">get_state<GraphEngineScratchPad, true></a>(blob);</div>
|
|
<div class="line"> <span class="comment">// Guaranteed to be initialized here</span></div>
|
|
<div class="line"> use_scratchpad(*<a class="code hl_namespace" href="namespacegridfire_1_1engine_1_1scratch.html">scratch</a>);</div>
|
|
<div class="line">} <span class="keywordflow">catch</span> (<span class="keyword">const</span> <a class="code hl_class" href="classgridfire_1_1exceptions_1_1_scratch_pad_error.html">exceptions::ScratchPadError</a>& e) {</div>
|
|
<div class="line"> <span class="comment">// Handle missing or uninitialized scratchpad</span></div>
|
|
<div class="line">}</div>
|
|
<div class="ttc" id="aclassgridfire_1_1exceptions_1_1_scratch_pad_error_html"><div class="ttname"><a href="classgridfire_1_1exceptions_1_1_scratch_pad_error.html">gridfire::exceptions::ScratchPadError</a></div><div class="ttdef"><b>Definition</b> error_scratchpad.h:9</div></div>
|
|
</div><!-- fragment --> </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
</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_1engine.html">engine</a></li><li class="navelem"><a class="el" href="namespacegridfire_1_1engine_1_1scratch.html">scratch</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>
|