<divclass="center"><divclass="zoom"><iframescrolling="no"frameborder="0"src="blob_8h__incl.svg"width="100%"height="527"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
This graph shows which files directly or indirectly include this file:</div>
<divclass="dyncontent">
<divclass="center"><divclass="zoom"><iframescrolling="no"frameborder="0"src="blob_8h__dep__incl.svg"width="100%"height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
<trclass="memdesc:"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Container for managing a collection of typed scratchpad instances. <ahref="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html#details">More...</a><br/></td></tr>
<trclass="memdesc:"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Concept that constrains types to valid scratchpad implementations. <br/></td></tr>
<divclass="textblock"><p>Container class for managing multiple scratchpad instances. </p>
<p>This header defines the StateBlob class, which serves as a centralized registry for managing multiple scratchpad instances used by computational engines. It provides type-safe enrollment, retrieval, and cloning of scratchpads using compile-time type checking via C++20 concepts.</p>
<divclass="ttc"id="ablob_8h_html"><divclass="ttname"><ahref="blob_8h.html">blob.h</a></div><divclass="ttdoc">Container class for managing multiple scratchpad instances.</div></div>
<divclass="ttc"id="aclassgridfire_1_1engine_1_1scratch_1_1_state_blob_html"><divclass="ttname"><ahref="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html">gridfire::engine::scratch::StateBlob</a></div><divclass="ttdoc">Container for managing a collection of typed scratchpad instances.</div><divclass="ttdef"><b>Definition</b> blob.h:114</div></div>
<divclass="ttc"id="aclassgridfire_1_1engine_1_1scratch_1_1_state_blob_html_a12f7a1fcb8bd6277f91b7ee08f267bd8abe3241d81779b1878546fba3b251eba3"><divclass="ttname"><ahref="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html#a12f7a1fcb8bd6277f91b7ee08f267bd8abe3241d81779b1878546fba3b251eba3">gridfire::engine::scratch::StateBlob::Error::SCRATCHPAD_NOT_INITIALIZED</a></div><divclass="ttdeci">@ SCRATCHPAD_NOT_INITIALIZED</div><divclass="ttdoc">Scratchpad exists but is not initialized.</div><divclass="ttdef"><b>Definition</b> blob.h:122</div></div>
<divclass="ttc"id="aclassgridfire_1_1engine_1_1scratch_1_1_state_blob_html_aa06d7bb89e67c4b6fd584d8f32a251bf"><divclass="ttname"><ahref="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html#aa06d7bb89e67c4b6fd584d8f32a251bf">gridfire::engine::scratch::StateBlob::enroll</a></div><divclass="ttdeci">void enroll()</div><divclass="ttdoc">Enroll a new scratchpad type into the blob.</div><divclass="ttdef"><b>Definition</b> blob.h:196</div></div>
<divclass="ttc"id="aclassgridfire_1_1engine_1_1scratch_1_1_state_blob_html_aa45357f0c368d7403306452c5ea56af0"><divclass="ttname"><ahref="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html#aa45357f0c368d7403306452c5ea56af0">gridfire::engine::scratch::StateBlob::clone_structure</a></div><divclass="ttdeci">std::unique_ptr< StateBlob > clone_structure() const</div><divclass="ttdoc">Create a deep copy of this blob with all enrolled scratchpads.</div><divclass="ttdef"><b>Definition</b> blob.h:361</div></div>
<divclass="ttc"id="aclassgridfire_1_1engine_1_1scratch_1_1_state_blob_html_acedd28277e5c6805865a9baa3991686a"><divclass="ttname"><ahref="classgridfire_1_1engine_1_1scratch_1_1_state_blob.html#acedd28277e5c6805865a9baa3991686a">gridfire::engine::scratch::StateBlob::get</a></div><divclass="ttdeci">std::expected< CTX *, Error > get() const</div><divclass="ttdoc">Retrieve a scratchpad by type.</div><divclass="ttdef"><b>Definition</b> blob.h:230</div></div>
<divclass="ttc"id="aengine__graph__scratchpad_8h_html"><divclass="ttname"><ahref="engine__graph__scratchpad_8h.html">engine_graph_scratchpad.h</a></div><divclass="ttdoc">Scratchpad implementation for the GraphEngine using CppAD automatic differentiation.</div></div>
<divclass="ttc"id="anamespacegridfire_1_1engine_1_1scratch_html"><divclass="ttname"><ahref="namespacegridfire_1_1engine_1_1scratch.html">gridfire::engine::scratch</a></div><divclass="ttdoc">Scratchpad memory management for computational engines.</div><divclass="ttdef"><b>Definition</b> blob.h:69</div></div>
<divclass="ttc"id="astructgridfire_1_1engine_1_1scratch_1_1_graph_engine_scratch_pad_html"><divclass="ttname"><ahref="structgridfire_1_1engine_1_1scratch_1_1_graph_engine_scratch_pad.html">gridfire::engine::scratch::GraphEngineScratchPad</a></div><divclass="ttdoc">Scratchpad for storing CppAD automatic differentiation state for GraphEngine.</div><divclass="ttdef"><b>Definition</b> engine_graph_scratchpad.h:83</div></div>
</div><!-- fragment --></dd></dl>
<dlclass="section user"><dt>Thread Safety</dt><dd>The StateBlob class is <b>not thread-safe</b>. Each thread should have its own StateBlob instance. Use clone_structure() to create independent copies for parallel workers. The cloned blob contains deep copies of all enrolled scratchpads.</dd></dl>
<liclass="footer">Generated by <ahref="https://www.doxygen.org/index.html"><imgclass="footer"src="doxygen.svg"width="104"height="31"alt="doxygen"/></a> 1.13.2 </li>