Files
ComSquare/classComSquare_1_1Memory_1_1MemoryShadow.html
AnonymusRaccoon d33b0ab52d Deploying the doc
2021-07-13 21:32:24 +00:00

567 lines
36 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">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ComSquare: ComSquare::Memory::MemoryShadow Class 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="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" />
</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 style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ComSquare
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- 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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceComSquare.html">ComSquare</a></li><li class="navelem"><a class="el" href="namespaceComSquare_1_1Memory.html">Memory</a></li><li class="navelem"><a class="el" href="classComSquare_1_1Memory_1_1MemoryShadow.html">MemoryShadow</a></li> </ul>
</div>
</div><!-- top -->
<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="classComSquare_1_1Memory_1_1MemoryShadow-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">ComSquare::Memory::MemoryShadow Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="MemoryShadow_8hpp_source.html">MemoryShadow.hpp</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ComSquare::Memory::MemoryShadow:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classComSquare_1_1Memory_1_1MemoryShadow__inherit__graph.svg" width="186" height="706"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
<div class="dynheader">
Collaboration diagram for ComSquare::Memory::MemoryShadow:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classComSquare_1_1Memory_1_1MemoryShadow__coll__graph.svg" width="335" height="708"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a725e0ffcaee092d19283ff3379fd9224"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1MemoryShadow.html#a725e0ffcaee092d19283ff3379fd9224">MemoryShadow</a> (<a class="el" href="classComSquare_1_1Memory_1_1IMemory.html">IMemory</a> &amp;initial, <a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> start, <a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> end)</td></tr>
<tr class="memdesc:a725e0ffcaee092d19283ff3379fd9224"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a shadow for the memory given as parameter. <a href="classComSquare_1_1Memory_1_1MemoryShadow.html#a725e0ffcaee092d19283ff3379fd9224">More...</a><br /></td></tr>
<tr class="separator:a725e0ffcaee092d19283ff3379fd9224"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9ab5a4c190dbc41d3d023f05b96e7ff"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1MemoryShadow.html#ae9ab5a4c190dbc41d3d023f05b96e7ff">MemoryShadow</a> (const <a class="el" href="classComSquare_1_1Memory_1_1MemoryShadow.html">MemoryShadow</a> &amp;)=default</td></tr>
<tr class="memdesc:ae9ab5a4c190dbc41d3d023f05b96e7ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">A memory shadow is copy constructable. <a href="classComSquare_1_1Memory_1_1MemoryShadow.html#ae9ab5a4c190dbc41d3d023f05b96e7ff">More...</a><br /></td></tr>
<tr class="separator:ae9ab5a4c190dbc41d3d023f05b96e7ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab717b49dc1b840f6b6c008ed915cdef8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classComSquare_1_1Memory_1_1MemoryShadow.html">MemoryShadow</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1MemoryShadow.html#ab717b49dc1b840f6b6c008ed915cdef8">operator=</a> (const <a class="el" href="classComSquare_1_1Memory_1_1MemoryShadow.html">MemoryShadow</a> &amp;)=delete</td></tr>
<tr class="memdesc:ab717b49dc1b840f6b6c008ed915cdef8"><td class="mdescLeft">&#160;</td><td class="mdescRight">A memory shadow is not assignable. <a href="classComSquare_1_1Memory_1_1MemoryShadow.html#ab717b49dc1b840f6b6c008ed915cdef8">More...</a><br /></td></tr>
<tr class="separator:ab717b49dc1b840f6b6c008ed915cdef8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a249f0159ee5926ac6b658e735b0fda78"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1MemoryShadow.html#a249f0159ee5926ac6b658e735b0fda78">~MemoryShadow</a> () override=default</td></tr>
<tr class="memdesc:a249f0159ee5926ac6b658e735b0fda78"><td class="mdescLeft">&#160;</td><td class="mdescRight">A default destructor. <a href="classComSquare_1_1Memory_1_1MemoryShadow.html#a249f0159ee5926ac6b658e735b0fda78">More...</a><br /></td></tr>
<tr class="separator:a249f0159ee5926ac6b658e735b0fda78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc27d0d65cf3f5b4b258a5aa8e1250ff"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1MemoryShadow.html#abc27d0d65cf3f5b4b258a5aa8e1250ff">read</a> (<a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> addr) override</td></tr>
<tr class="memdesc:abc27d0d65cf3f5b4b258a5aa8e1250ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read from the initial <a class="el" href="classComSquare_1_1Memory_1_1AMemory.html" title="Abstract class representing a continuous block of memory.">AMemory</a> given. <a href="classComSquare_1_1Memory_1_1MemoryShadow.html#abc27d0d65cf3f5b4b258a5aa8e1250ff">More...</a><br /></td></tr>
<tr class="separator:abc27d0d65cf3f5b4b258a5aa8e1250ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a885d4559319980e9e5b706f7fe4c3f49"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1MemoryShadow.html#a885d4559319980e9e5b706f7fe4c3f49">write</a> (<a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> addr, uint8_t data) override</td></tr>
<tr class="memdesc:a885d4559319980e9e5b706f7fe4c3f49"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write data to the ram. <a href="classComSquare_1_1Memory_1_1MemoryShadow.html#a885d4559319980e9e5b706f7fe4c3f49">More...</a><br /></td></tr>
<tr class="separator:a885d4559319980e9e5b706f7fe4c3f49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac18f444c8b40e9ef8a077a93c0e7024e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1MemoryShadow.html#ac18f444c8b40e9ef8a077a93c0e7024e">getSize</a> () const override</td></tr>
<tr class="memdesc:ac18f444c8b40e9ef8a077a93c0e7024e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of the data. This size can be lower than the mapped data. <a href="classComSquare_1_1Memory_1_1MemoryShadow.html#ac18f444c8b40e9ef8a077a93c0e7024e">More...</a><br /></td></tr>
<tr class="separator:ac18f444c8b40e9ef8a077a93c0e7024e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c5a02f97b97a258d60d8011b805cb6e"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1MemoryShadow.html#a6c5a02f97b97a258d60d8011b805cb6e">getName</a> () const override</td></tr>
<tr class="memdesc:a6c5a02f97b97a258d60d8011b805cb6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the name of this accessor (used for debug purpose) <a href="classComSquare_1_1Memory_1_1MemoryShadow.html#a6c5a02f97b97a258d60d8011b805cb6e">More...</a><br /></td></tr>
<tr class="separator:a6c5a02f97b97a258d60d8011b805cb6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44297bdec2e515e550b6fcd99f635aa1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceComSquare.html#a891b49feb5c3e0aaa4873ff19b49968c">Component</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1MemoryShadow.html#a44297bdec2e515e550b6fcd99f635aa1">getComponent</a> () const override</td></tr>
<tr class="memdesc:a44297bdec2e515e550b6fcd99f635aa1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the component of this accessor (used for debug purpose) <a href="classComSquare_1_1Memory_1_1MemoryShadow.html#a44297bdec2e515e550b6fcd99f635aa1">More...</a><br /></td></tr>
<tr class="separator:a44297bdec2e515e550b6fcd99f635aa1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3181d146bea3924d4c24974cf7338c97"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1MemoryShadow.html#a3181d146bea3924d4c24974cf7338c97">getValueName</a> (<a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> addr) const override</td></tr>
<tr class="memdesc:a3181d146bea3924d4c24974cf7338c97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the name of the data at the address. <a href="classComSquare_1_1Memory_1_1MemoryShadow.html#a3181d146bea3924d4c24974cf7338c97">More...</a><br /></td></tr>
<tr class="separator:a3181d146bea3924d4c24974cf7338c97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5734503f992ecf521dc715116670f0f5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classComSquare_1_1Memory_1_1IMemory.html">IMemory</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1MemoryShadow.html#a5734503f992ecf521dc715116670f0f5">getMirrored</a> () const</td></tr>
<tr class="memdesc:a5734503f992ecf521dc715116670f0f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the memory accessor this accessor mirror if any. <a href="classComSquare_1_1Memory_1_1MemoryShadow.html#a5734503f992ecf521dc715116670f0f5">More...</a><br /></td></tr>
<tr class="separator:a5734503f992ecf521dc715116670f0f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classComSquare_1_1Memory_1_1AMemory"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classComSquare_1_1Memory_1_1AMemory')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classComSquare_1_1Memory_1_1AMemory.html">ComSquare::Memory::AMemory</a></td></tr>
<tr class="memitem:aff943c07bcf7f7ccb88c82fe47127928 inherit pub_methods_classComSquare_1_1Memory_1_1AMemory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1AMemory.html#aff943c07bcf7f7ccb88c82fe47127928">getRelativeAddress</a> (<a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> addr) const override</td></tr>
<tr class="memdesc:aff943c07bcf7f7ccb88c82fe47127928 inherit pub_methods_classComSquare_1_1Memory_1_1AMemory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Translate an absolute address to a relative address. <a href="classComSquare_1_1Memory_1_1AMemory.html#aff943c07bcf7f7ccb88c82fe47127928">More...</a><br /></td></tr>
<tr class="separator:aff943c07bcf7f7ccb88c82fe47127928 inherit pub_methods_classComSquare_1_1Memory_1_1AMemory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5f0d99dbda62614dda07fdd74d52773 inherit pub_methods_classComSquare_1_1Memory_1_1AMemory"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1AMemory.html#ae5f0d99dbda62614dda07fdd74d52773">setMemoryRegion</a> (<a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> start, <a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> end)</td></tr>
<tr class="memdesc:ae5f0d99dbda62614dda07fdd74d52773 inherit pub_methods_classComSquare_1_1Memory_1_1AMemory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Change starting and ending points of this mapped memory. <a href="classComSquare_1_1Memory_1_1AMemory.html#ae5f0d99dbda62614dda07fdd74d52773">More...</a><br /></td></tr>
<tr class="separator:ae5f0d99dbda62614dda07fdd74d52773 inherit pub_methods_classComSquare_1_1Memory_1_1AMemory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadca52185b1b3db17d6881e91d81516f inherit pub_methods_classComSquare_1_1Memory_1_1AMemory"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1AMemory.html#aadca52185b1b3db17d6881e91d81516f">hasMemoryAt</a> (<a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> addr) const override</td></tr>
<tr class="memdesc:aadca52185b1b3db17d6881e91d81516f inherit pub_methods_classComSquare_1_1Memory_1_1AMemory"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return true if this component has mapped the address. <a href="classComSquare_1_1Memory_1_1AMemory.html#aadca52185b1b3db17d6881e91d81516f">More...</a><br /></td></tr>
<tr class="separator:aadca52185b1b3db17d6881e91d81516f inherit pub_methods_classComSquare_1_1Memory_1_1AMemory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed637aac92569a5aa0f0f18095742ff3 inherit pub_methods_classComSquare_1_1Memory_1_1AMemory"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1AMemory.html#aed637aac92569a5aa0f0f18095742ff3">~AMemory</a> () override=default</td></tr>
<tr class="memdesc:aed637aac92569a5aa0f0f18095742ff3 inherit pub_methods_classComSquare_1_1Memory_1_1AMemory"><td class="mdescLeft">&#160;</td><td class="mdescRight">A default destructor. <a href="classComSquare_1_1Memory_1_1AMemory.html#aed637aac92569a5aa0f0f18095742ff3">More...</a><br /></td></tr>
<tr class="separator:aed637aac92569a5aa0f0f18095742ff3 inherit pub_methods_classComSquare_1_1Memory_1_1AMemory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classComSquare_1_1Memory_1_1IMemory"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classComSquare_1_1Memory_1_1IMemory')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classComSquare_1_1Memory_1_1IMemory.html">ComSquare::Memory::IMemory</a></td></tr>
<tr class="memitem:a0a0679f3cf924e3562d6f89a80aae069 inherit pub_methods_classComSquare_1_1Memory_1_1IMemory"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1IMemory.html#a0a0679f3cf924e3562d6f89a80aae069">~IMemory</a> ()=default</td></tr>
<tr class="memdesc:a0a0679f3cf924e3562d6f89a80aae069 inherit pub_methods_classComSquare_1_1Memory_1_1IMemory"><td class="mdescLeft">&#160;</td><td class="mdescRight">A virtual default destructor. <a href="classComSquare_1_1Memory_1_1IMemory.html#a0a0679f3cf924e3562d6f89a80aae069">More...</a><br /></td></tr>
<tr class="separator:a0a0679f3cf924e3562d6f89a80aae069 inherit pub_methods_classComSquare_1_1Memory_1_1IMemory"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a70738186c3fb76103ad2ba4827e8ff6c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classComSquare_1_1Memory_1_1IMemory.html">IMemory</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1MemoryShadow.html#a70738186c3fb76103ad2ba4827e8ff6c">_initial</a></td></tr>
<tr class="memdesc:a70738186c3fb76103ad2ba4827e8ff6c"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="namespaceComSquare_1_1Memory.html">Memory</a> to shadow from. <a href="classComSquare_1_1Memory_1_1MemoryShadow.html#a70738186c3fb76103ad2ba4827e8ff6c">More...</a><br /></td></tr>
<tr class="separator:a70738186c3fb76103ad2ba4827e8ff6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_attribs_classComSquare_1_1Memory_1_1AMemory"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classComSquare_1_1Memory_1_1AMemory')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classComSquare_1_1Memory_1_1AMemory.html">ComSquare::Memory::AMemory</a></td></tr>
<tr class="memitem:a360315d82100f5a8b0c6f002028054de inherit pro_attribs_classComSquare_1_1Memory_1_1AMemory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1AMemory.html#a360315d82100f5a8b0c6f002028054de">_start</a> = 0</td></tr>
<tr class="memdesc:a360315d82100f5a8b0c6f002028054de inherit pro_attribs_classComSquare_1_1Memory_1_1AMemory"><td class="mdescLeft">&#160;</td><td class="mdescRight">The starting address mapped to this component. <a href="classComSquare_1_1Memory_1_1AMemory.html#a360315d82100f5a8b0c6f002028054de">More...</a><br /></td></tr>
<tr class="separator:a360315d82100f5a8b0c6f002028054de inherit pro_attribs_classComSquare_1_1Memory_1_1AMemory"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69f0e308e2f8dee9ba61bf9bb96c292b inherit pro_attribs_classComSquare_1_1Memory_1_1AMemory"><td class="memItemLeft" align="right" valign="top"><a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classComSquare_1_1Memory_1_1AMemory.html#a69f0e308e2f8dee9ba61bf9bb96c292b">_end</a> = 0</td></tr>
<tr class="memdesc:a69f0e308e2f8dee9ba61bf9bb96c292b inherit pro_attribs_classComSquare_1_1Memory_1_1AMemory"><td class="mdescLeft">&#160;</td><td class="mdescRight">The last continuous address mapped to this components. For shadows, see the <a class="el" href="classComSquare_1_1Memory_1_1MemoryShadow.html">MemoryShadow</a> class. <a href="classComSquare_1_1Memory_1_1AMemory.html#a69f0e308e2f8dee9ba61bf9bb96c292b">More...</a><br /></td></tr>
<tr class="separator:a69f0e308e2f8dee9ba61bf9bb96c292b inherit pro_attribs_classComSquare_1_1Memory_1_1AMemory"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a725e0ffcaee092d19283ff3379fd9224"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a725e0ffcaee092d19283ff3379fd9224">&#9670;&nbsp;</a></span>MemoryShadow() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">ComSquare::Memory::MemoryShadow::MemoryShadow </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classComSquare_1_1Memory_1_1IMemory.html">IMemory</a> &amp;&#160;</td>
<td class="paramname"><em>initial</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a>&#160;</td>
<td class="paramname"><em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a>&#160;</td>
<td class="paramname"><em>end</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a shadow for the memory given as parameter. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">initial</td><td>The memory to shadow </td></tr>
<tr><td class="paramname">start</td><td>The start position of the initial memory to shadow. </td></tr>
<tr><td class="paramname">end</td><td>The end position of the initial memory to shadow. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ae9ab5a4c190dbc41d3d023f05b96e7ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae9ab5a4c190dbc41d3d023f05b96e7ff">&#9670;&nbsp;</a></span>MemoryShadow() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ComSquare::Memory::MemoryShadow::MemoryShadow </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classComSquare_1_1Memory_1_1MemoryShadow.html">MemoryShadow</a> &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>A memory shadow is copy constructable. </p>
</div>
</div>
<a id="a249f0159ee5926ac6b658e735b0fda78"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a249f0159ee5926ac6b658e735b0fda78">&#9670;&nbsp;</a></span>~MemoryShadow()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ComSquare::Memory::MemoryShadow::~MemoryShadow </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">
<p>A default destructor. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a44297bdec2e515e550b6fcd99f635aa1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a44297bdec2e515e550b6fcd99f635aa1">&#9670;&nbsp;</a></span>getComponent()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceComSquare.html#a891b49feb5c3e0aaa4873ff19b49968c">Component</a> ComSquare::Memory::MemoryShadow::getComponent </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>Get the component of this accessor (used for debug purpose) </p>
<p>Implements <a class="el" href="classComSquare_1_1Memory_1_1IMemory.html#a31289443bb26086fb74c724cdafd2241">ComSquare::Memory::IMemory</a>.</p>
</div>
</div>
<a id="a5734503f992ecf521dc715116670f0f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5734503f992ecf521dc715116670f0f5">&#9670;&nbsp;</a></span>getMirrored()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classComSquare_1_1Memory_1_1IMemory.html">IMemory</a> &amp; ComSquare::Memory::MemoryShadow::getMirrored </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the memory accessor this accessor mirror if any. </p>
<dl class="section return"><dt>Returns</dt><dd>nullptr if isMirror is false, the source otherwise. </dd></dl>
</div>
</div>
<a id="a6c5a02f97b97a258d60d8011b805cb6e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c5a02f97b97a258d60d8011b805cb6e">&#9670;&nbsp;</a></span>getName()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string ComSquare::Memory::MemoryShadow::getName </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>Get the name of this accessor (used for debug purpose) </p>
<p>Implements <a class="el" href="classComSquare_1_1Memory_1_1IMemory.html#a34d654c04a8a992b439c4270d566263f">ComSquare::Memory::IMemory</a>.</p>
</div>
</div>
<a id="ac18f444c8b40e9ef8a077a93c0e7024e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac18f444c8b40e9ef8a077a93c0e7024e">&#9670;&nbsp;</a></span>getSize()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a> ComSquare::Memory::MemoryShadow::getSize </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>Get the size of the data. This size can be lower than the mapped data. </p>
<dl class="section return"><dt>Returns</dt><dd>The number of bytes inside this memory. </dd></dl>
<p>Implements <a class="el" href="classComSquare_1_1Memory_1_1IMemory.html#a1072ab44e7389913ff67cb77ff118c8b">ComSquare::Memory::IMemory</a>.</p>
</div>
</div>
<a id="a3181d146bea3924d4c24974cf7338c97"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3181d146bea3924d4c24974cf7338c97">&#9670;&nbsp;</a></span>getValueName()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string ComSquare::Memory::MemoryShadow::getValueName </td>
<td>(</td>
<td class="paramtype"><a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a>&#160;</td>
<td class="paramname"><em>addr</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>Get the name of the data at the address. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">addr</td><td>The address (in local space) </td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="classComSquare_1_1Memory_1_1IMemory.html#a1f02b894a85d7b1a0b8bae677039d821">ComSquare::Memory::IMemory</a>.</p>
</div>
</div>
<a id="ab717b49dc1b840f6b6c008ed915cdef8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab717b49dc1b840f6b6c008ed915cdef8">&#9670;&nbsp;</a></span>operator=()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classComSquare_1_1Memory_1_1MemoryShadow.html">MemoryShadow</a>&amp; ComSquare::Memory::MemoryShadow::operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classComSquare_1_1Memory_1_1MemoryShadow.html">MemoryShadow</a> &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>A memory shadow is not assignable. </p>
</div>
</div>
<a id="abc27d0d65cf3f5b4b258a5aa8e1250ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abc27d0d65cf3f5b4b258a5aa8e1250ff">&#9670;&nbsp;</a></span>read()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">uint8_t ComSquare::Memory::MemoryShadow::read </td>
<td>(</td>
<td class="paramtype"><a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a>&#160;</td>
<td class="paramname"><em>addr</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>Read from the initial <a class="el" href="classComSquare_1_1Memory_1_1AMemory.html" title="Abstract class representing a continuous block of memory.">AMemory</a> given. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">addr</td><td>The address to read from. The address 0x0 should refer to the first byte of the initial <a class="el" href="classComSquare_1_1Memory_1_1AMemory.html" title="Abstract class representing a continuous block of memory.">AMemory</a>. </td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classComSquare_1_1InvalidAddress.html" title="Exception thrown when trying to read/write to an invalid address.">InvalidAddress</a></td><td>will be thrown if the address is more than the size of the initial <a class="el" href="classComSquare_1_1Memory_1_1AMemory.html" title="Abstract class representing a continuous block of memory.">AMemory</a>. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Return the data at the address. </dd></dl>
<p>Implements <a class="el" href="classComSquare_1_1Memory_1_1IMemory.html#a8459ed12c4172ee29ecdc84330f99ff7">ComSquare::Memory::IMemory</a>.</p>
</div>
</div>
<a id="a885d4559319980e9e5b706f7fe4c3f49"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a885d4559319980e9e5b706f7fe4c3f49">&#9670;&nbsp;</a></span>write()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void ComSquare::Memory::MemoryShadow::write </td>
<td>(</td>
<td class="paramtype"><a class="el" href="Ints_8hpp.html#a89f009aaf5d1964a000f44f09fa0bcf8">uint24_t</a>&#160;</td>
<td class="paramname"><em>addr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>data</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">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Write data to the ram. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">addr</td><td>The address to write to. The address 0x0 should refer to the first byte of the initial <a class="el" href="classComSquare_1_1Memory_1_1AMemory.html" title="Abstract class representing a continuous block of memory.">AMemory</a>. </td></tr>
<tr><td class="paramname">data</td><td>The data to write. </td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classComSquare_1_1InvalidAddress.html" title="Exception thrown when trying to read/write to an invalid address.">InvalidAddress</a></td><td>will be thrown if the address is more than the size of the initial <a class="el" href="classComSquare_1_1Memory_1_1AMemory.html" title="Abstract class representing a continuous block of memory.">AMemory</a>. </td></tr>
</table>
</dd>
</dl>
<p>Implements <a class="el" href="classComSquare_1_1Memory_1_1IMemory.html#a449bc89798a0b86028bb0413106514d9">ComSquare::Memory::IMemory</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="a70738186c3fb76103ad2ba4827e8ff6c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a70738186c3fb76103ad2ba4827e8ff6c">&#9670;&nbsp;</a></span>_initial</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classComSquare_1_1Memory_1_1IMemory.html">IMemory</a>&amp; ComSquare::Memory::MemoryShadow::_initial</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="namespaceComSquare_1_1Memory.html">Memory</a> to shadow from. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>sources/Memory/<a class="el" href="MemoryShadow_8hpp_source.html">MemoryShadow.hpp</a></li>
<li>sources/Memory/<a class="el" href="MemoryShadow_8cpp.html">MemoryShadow.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>