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

262 lines
17 KiB
TeX

\hypertarget{classComSquare_1_1Memory_1_1MemoryShadow}{}\doxysection{Com\+Square\+::Memory\+::Memory\+Shadow Class Reference}
\label{classComSquare_1_1Memory_1_1MemoryShadow}\index{ComSquare::Memory::MemoryShadow@{ComSquare::Memory::MemoryShadow}}
{\ttfamily \#include $<$Memory\+Shadow.\+hpp$>$}
Inheritance diagram for Com\+Square\+::Memory\+::Memory\+Shadow\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=550pt]{classComSquare_1_1Memory_1_1MemoryShadow__inherit__graph}
\end{center}
\end{figure}
Collaboration diagram for Com\+Square\+::Memory\+::Memory\+Shadow\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=550pt]{classComSquare_1_1Memory_1_1MemoryShadow__coll__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{classComSquare_1_1Memory_1_1MemoryShadow_a725e0ffcaee092d19283ff3379fd9224}{Memory\+Shadow}} (\mbox{\hyperlink{classComSquare_1_1Memory_1_1IMemory}{I\+Memory}} \&initial, \mbox{\hyperlink{Ints_8hpp_a89f009aaf5d1964a000f44f09fa0bcf8}{uint24\+\_\+t}} start, \mbox{\hyperlink{Ints_8hpp_a89f009aaf5d1964a000f44f09fa0bcf8}{uint24\+\_\+t}} end)
\begin{DoxyCompactList}\small\item\em Create a shadow for the memory given as parameter. \end{DoxyCompactList}\item
\mbox{\hyperlink{classComSquare_1_1Memory_1_1MemoryShadow_ae9ab5a4c190dbc41d3d023f05b96e7ff}{Memory\+Shadow}} (const \mbox{\hyperlink{classComSquare_1_1Memory_1_1MemoryShadow}{Memory\+Shadow}} \&)=default
\begin{DoxyCompactList}\small\item\em A memory shadow is copy constructable. \end{DoxyCompactList}\item
\mbox{\hyperlink{classComSquare_1_1Memory_1_1MemoryShadow}{Memory\+Shadow}} \& \mbox{\hyperlink{classComSquare_1_1Memory_1_1MemoryShadow_ab717b49dc1b840f6b6c008ed915cdef8}{operator=}} (const \mbox{\hyperlink{classComSquare_1_1Memory_1_1MemoryShadow}{Memory\+Shadow}} \&)=delete
\begin{DoxyCompactList}\small\item\em A memory shadow is not assignable. \end{DoxyCompactList}\item
\mbox{\hyperlink{classComSquare_1_1Memory_1_1MemoryShadow_a249f0159ee5926ac6b658e735b0fda78}{$\sim$\+Memory\+Shadow}} () override=default
\begin{DoxyCompactList}\small\item\em A default destructor. \end{DoxyCompactList}\item
uint8\+\_\+t \mbox{\hyperlink{classComSquare_1_1Memory_1_1MemoryShadow_abc27d0d65cf3f5b4b258a5aa8e1250ff}{read}} (\mbox{\hyperlink{Ints_8hpp_a89f009aaf5d1964a000f44f09fa0bcf8}{uint24\+\_\+t}} addr) override
\begin{DoxyCompactList}\small\item\em Read from the initial \mbox{\hyperlink{classComSquare_1_1Memory_1_1AMemory}{A\+Memory}} given. \end{DoxyCompactList}\item
void \mbox{\hyperlink{classComSquare_1_1Memory_1_1MemoryShadow_a885d4559319980e9e5b706f7fe4c3f49}{write}} (\mbox{\hyperlink{Ints_8hpp_a89f009aaf5d1964a000f44f09fa0bcf8}{uint24\+\_\+t}} addr, uint8\+\_\+t data) override
\begin{DoxyCompactList}\small\item\em Write data to the ram. \end{DoxyCompactList}\item
\mbox{\hyperlink{Ints_8hpp_a89f009aaf5d1964a000f44f09fa0bcf8}{uint24\+\_\+t}} \mbox{\hyperlink{classComSquare_1_1Memory_1_1MemoryShadow_ac18f444c8b40e9ef8a077a93c0e7024e}{get\+Size}} () const override
\begin{DoxyCompactList}\small\item\em Get the size of the data. This size can be lower than the mapped data. \end{DoxyCompactList}\item
std\+::string \mbox{\hyperlink{classComSquare_1_1Memory_1_1MemoryShadow_a6c5a02f97b97a258d60d8011b805cb6e}{get\+Name}} () const override
\begin{DoxyCompactList}\small\item\em Get the name of this accessor (used for debug purpose) \end{DoxyCompactList}\item
\mbox{\hyperlink{namespaceComSquare_a891b49feb5c3e0aaa4873ff19b49968c}{Component}} \mbox{\hyperlink{classComSquare_1_1Memory_1_1MemoryShadow_a44297bdec2e515e550b6fcd99f635aa1}{get\+Component}} () const override
\begin{DoxyCompactList}\small\item\em Get the component of this accessor (used for debug purpose) \end{DoxyCompactList}\item
std\+::string \mbox{\hyperlink{classComSquare_1_1Memory_1_1MemoryShadow_a3181d146bea3924d4c24974cf7338c97}{get\+Value\+Name}} (\mbox{\hyperlink{Ints_8hpp_a89f009aaf5d1964a000f44f09fa0bcf8}{uint24\+\_\+t}} addr) const override
\begin{DoxyCompactList}\small\item\em Get the name of the data at the address. \end{DoxyCompactList}\item
\mbox{\hyperlink{classComSquare_1_1Memory_1_1IMemory}{I\+Memory}} \& \mbox{\hyperlink{classComSquare_1_1Memory_1_1MemoryShadow_a5734503f992ecf521dc715116670f0f5}{get\+Mirrored}} () const
\begin{DoxyCompactList}\small\item\em Return the memory accessor this accessor mirror if any. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item
\mbox{\hyperlink{classComSquare_1_1Memory_1_1IMemory}{I\+Memory}} \& \mbox{\hyperlink{classComSquare_1_1Memory_1_1MemoryShadow_a70738186c3fb76103ad2ba4827e8ff6c}{\+\_\+initial}}
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{namespaceComSquare_1_1Memory}{Memory}} to shadow from. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Additional Inherited Members}
\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{classComSquare_1_1Memory_1_1MemoryShadow_a725e0ffcaee092d19283ff3379fd9224}\label{classComSquare_1_1Memory_1_1MemoryShadow_a725e0ffcaee092d19283ff3379fd9224}}
\index{ComSquare::Memory::MemoryShadow@{ComSquare::Memory::MemoryShadow}!MemoryShadow@{MemoryShadow}}
\index{MemoryShadow@{MemoryShadow}!ComSquare::Memory::MemoryShadow@{ComSquare::Memory::MemoryShadow}}
\doxysubsubsection{\texorpdfstring{MemoryShadow()}{MemoryShadow()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily Com\+Square\+::\+Memory\+::\+Memory\+Shadow\+::\+Memory\+Shadow (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classComSquare_1_1Memory_1_1IMemory}{I\+Memory}} \&}]{initial, }\item[{\mbox{\hyperlink{Ints_8hpp_a89f009aaf5d1964a000f44f09fa0bcf8}{uint24\+\_\+t}}}]{start, }\item[{\mbox{\hyperlink{Ints_8hpp_a89f009aaf5d1964a000f44f09fa0bcf8}{uint24\+\_\+t}}}]{end }\end{DoxyParamCaption})}
Create a shadow for the memory given as parameter.
\begin{DoxyParams}{Parameters}
{\em initial} & The memory to shadow \\
\hline
{\em start} & The start position of the initial memory to shadow. \\
\hline
{\em end} & The end position of the initial memory to shadow. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classComSquare_1_1Memory_1_1MemoryShadow_ae9ab5a4c190dbc41d3d023f05b96e7ff}\label{classComSquare_1_1Memory_1_1MemoryShadow_ae9ab5a4c190dbc41d3d023f05b96e7ff}}
\index{ComSquare::Memory::MemoryShadow@{ComSquare::Memory::MemoryShadow}!MemoryShadow@{MemoryShadow}}
\index{MemoryShadow@{MemoryShadow}!ComSquare::Memory::MemoryShadow@{ComSquare::Memory::MemoryShadow}}
\doxysubsubsection{\texorpdfstring{MemoryShadow()}{MemoryShadow()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily Com\+Square\+::\+Memory\+::\+Memory\+Shadow\+::\+Memory\+Shadow (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classComSquare_1_1Memory_1_1MemoryShadow}{Memory\+Shadow}} \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [default]}}
A memory shadow is copy constructable.
\mbox{\Hypertarget{classComSquare_1_1Memory_1_1MemoryShadow_a249f0159ee5926ac6b658e735b0fda78}\label{classComSquare_1_1Memory_1_1MemoryShadow_a249f0159ee5926ac6b658e735b0fda78}}
\index{ComSquare::Memory::MemoryShadow@{ComSquare::Memory::MemoryShadow}!````~MemoryShadow@{$\sim$MemoryShadow}}
\index{````~MemoryShadow@{$\sim$MemoryShadow}!ComSquare::Memory::MemoryShadow@{ComSquare::Memory::MemoryShadow}}
\doxysubsubsection{\texorpdfstring{$\sim$MemoryShadow()}{~MemoryShadow()}}
{\footnotesize\ttfamily Com\+Square\+::\+Memory\+::\+Memory\+Shadow\+::$\sim$\+Memory\+Shadow (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [default]}}
A default destructor.
\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classComSquare_1_1Memory_1_1MemoryShadow_a44297bdec2e515e550b6fcd99f635aa1}\label{classComSquare_1_1Memory_1_1MemoryShadow_a44297bdec2e515e550b6fcd99f635aa1}}
\index{ComSquare::Memory::MemoryShadow@{ComSquare::Memory::MemoryShadow}!getComponent@{getComponent}}
\index{getComponent@{getComponent}!ComSquare::Memory::MemoryShadow@{ComSquare::Memory::MemoryShadow}}
\doxysubsubsection{\texorpdfstring{getComponent()}{getComponent()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespaceComSquare_a891b49feb5c3e0aaa4873ff19b49968c}{Component}} Com\+Square\+::\+Memory\+::\+Memory\+Shadow\+::get\+Component (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
Get the component of this accessor (used for debug purpose)
Implements \mbox{\hyperlink{classComSquare_1_1Memory_1_1IMemory_a31289443bb26086fb74c724cdafd2241}{Com\+Square\+::\+Memory\+::\+I\+Memory}}.
\mbox{\Hypertarget{classComSquare_1_1Memory_1_1MemoryShadow_a5734503f992ecf521dc715116670f0f5}\label{classComSquare_1_1Memory_1_1MemoryShadow_a5734503f992ecf521dc715116670f0f5}}
\index{ComSquare::Memory::MemoryShadow@{ComSquare::Memory::MemoryShadow}!getMirrored@{getMirrored}}
\index{getMirrored@{getMirrored}!ComSquare::Memory::MemoryShadow@{ComSquare::Memory::MemoryShadow}}
\doxysubsubsection{\texorpdfstring{getMirrored()}{getMirrored()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classComSquare_1_1Memory_1_1IMemory}{I\+Memory}} \& Com\+Square\+::\+Memory\+::\+Memory\+Shadow\+::get\+Mirrored (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}
Return the memory accessor this accessor mirror if any.
\begin{DoxyReturn}{Returns}
nullptr if is\+Mirror is false, the source otherwise.
\end{DoxyReturn}
\mbox{\Hypertarget{classComSquare_1_1Memory_1_1MemoryShadow_a6c5a02f97b97a258d60d8011b805cb6e}\label{classComSquare_1_1Memory_1_1MemoryShadow_a6c5a02f97b97a258d60d8011b805cb6e}}
\index{ComSquare::Memory::MemoryShadow@{ComSquare::Memory::MemoryShadow}!getName@{getName}}
\index{getName@{getName}!ComSquare::Memory::MemoryShadow@{ComSquare::Memory::MemoryShadow}}
\doxysubsubsection{\texorpdfstring{getName()}{getName()}}
{\footnotesize\ttfamily std\+::string Com\+Square\+::\+Memory\+::\+Memory\+Shadow\+::get\+Name (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
Get the name of this accessor (used for debug purpose)
Implements \mbox{\hyperlink{classComSquare_1_1Memory_1_1IMemory_a34d654c04a8a992b439c4270d566263f}{Com\+Square\+::\+Memory\+::\+I\+Memory}}.
\mbox{\Hypertarget{classComSquare_1_1Memory_1_1MemoryShadow_ac18f444c8b40e9ef8a077a93c0e7024e}\label{classComSquare_1_1Memory_1_1MemoryShadow_ac18f444c8b40e9ef8a077a93c0e7024e}}
\index{ComSquare::Memory::MemoryShadow@{ComSquare::Memory::MemoryShadow}!getSize@{getSize}}
\index{getSize@{getSize}!ComSquare::Memory::MemoryShadow@{ComSquare::Memory::MemoryShadow}}
\doxysubsubsection{\texorpdfstring{getSize()}{getSize()}}
{\footnotesize\ttfamily \mbox{\hyperlink{Ints_8hpp_a89f009aaf5d1964a000f44f09fa0bcf8}{uint24\+\_\+t}} Com\+Square\+::\+Memory\+::\+Memory\+Shadow\+::get\+Size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
Get the size of the data. This size can be lower than the mapped data.
\begin{DoxyReturn}{Returns}
The number of bytes inside this memory.
\end{DoxyReturn}
Implements \mbox{\hyperlink{classComSquare_1_1Memory_1_1IMemory_a1072ab44e7389913ff67cb77ff118c8b}{Com\+Square\+::\+Memory\+::\+I\+Memory}}.
\mbox{\Hypertarget{classComSquare_1_1Memory_1_1MemoryShadow_a3181d146bea3924d4c24974cf7338c97}\label{classComSquare_1_1Memory_1_1MemoryShadow_a3181d146bea3924d4c24974cf7338c97}}
\index{ComSquare::Memory::MemoryShadow@{ComSquare::Memory::MemoryShadow}!getValueName@{getValueName}}
\index{getValueName@{getValueName}!ComSquare::Memory::MemoryShadow@{ComSquare::Memory::MemoryShadow}}
\doxysubsubsection{\texorpdfstring{getValueName()}{getValueName()}}
{\footnotesize\ttfamily std\+::string Com\+Square\+::\+Memory\+::\+Memory\+Shadow\+::get\+Value\+Name (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{Ints_8hpp_a89f009aaf5d1964a000f44f09fa0bcf8}{uint24\+\_\+t}}}]{addr }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
Get the name of the data at the address.
\begin{DoxyParams}{Parameters}
{\em addr} & The address (in local space) \\
\hline
\end{DoxyParams}
Implements \mbox{\hyperlink{classComSquare_1_1Memory_1_1IMemory_a1f02b894a85d7b1a0b8bae677039d821}{Com\+Square\+::\+Memory\+::\+I\+Memory}}.
\mbox{\Hypertarget{classComSquare_1_1Memory_1_1MemoryShadow_ab717b49dc1b840f6b6c008ed915cdef8}\label{classComSquare_1_1Memory_1_1MemoryShadow_ab717b49dc1b840f6b6c008ed915cdef8}}
\index{ComSquare::Memory::MemoryShadow@{ComSquare::Memory::MemoryShadow}!operator=@{operator=}}
\index{operator=@{operator=}!ComSquare::Memory::MemoryShadow@{ComSquare::Memory::MemoryShadow}}
\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}}
{\footnotesize\ttfamily \mbox{\hyperlink{classComSquare_1_1Memory_1_1MemoryShadow}{Memory\+Shadow}}\& Com\+Square\+::\+Memory\+::\+Memory\+Shadow\+::operator= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classComSquare_1_1Memory_1_1MemoryShadow}{Memory\+Shadow}} \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [delete]}}
A memory shadow is not assignable.
\mbox{\Hypertarget{classComSquare_1_1Memory_1_1MemoryShadow_abc27d0d65cf3f5b4b258a5aa8e1250ff}\label{classComSquare_1_1Memory_1_1MemoryShadow_abc27d0d65cf3f5b4b258a5aa8e1250ff}}
\index{ComSquare::Memory::MemoryShadow@{ComSquare::Memory::MemoryShadow}!read@{read}}
\index{read@{read}!ComSquare::Memory::MemoryShadow@{ComSquare::Memory::MemoryShadow}}
\doxysubsubsection{\texorpdfstring{read()}{read()}}
{\footnotesize\ttfamily uint8\+\_\+t Com\+Square\+::\+Memory\+::\+Memory\+Shadow\+::read (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{Ints_8hpp_a89f009aaf5d1964a000f44f09fa0bcf8}{uint24\+\_\+t}}}]{addr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
Read from the initial \mbox{\hyperlink{classComSquare_1_1Memory_1_1AMemory}{A\+Memory}} given.
\begin{DoxyParams}{Parameters}
{\em addr} & The address to read from. The address 0x0 should refer to the first byte of the initial \mbox{\hyperlink{classComSquare_1_1Memory_1_1AMemory}{A\+Memory}}. \\
\hline
\end{DoxyParams}
\begin{DoxyExceptions}{Exceptions}
{\em \mbox{\hyperlink{classComSquare_1_1InvalidAddress}{Invalid\+Address}}} & will be thrown if the address is more than the size of the initial \mbox{\hyperlink{classComSquare_1_1Memory_1_1AMemory}{A\+Memory}}. \\
\hline
\end{DoxyExceptions}
\begin{DoxyReturn}{Returns}
Return the data at the address.
\end{DoxyReturn}
Implements \mbox{\hyperlink{classComSquare_1_1Memory_1_1IMemory_a8459ed12c4172ee29ecdc84330f99ff7}{Com\+Square\+::\+Memory\+::\+I\+Memory}}.
\mbox{\Hypertarget{classComSquare_1_1Memory_1_1MemoryShadow_a885d4559319980e9e5b706f7fe4c3f49}\label{classComSquare_1_1Memory_1_1MemoryShadow_a885d4559319980e9e5b706f7fe4c3f49}}
\index{ComSquare::Memory::MemoryShadow@{ComSquare::Memory::MemoryShadow}!write@{write}}
\index{write@{write}!ComSquare::Memory::MemoryShadow@{ComSquare::Memory::MemoryShadow}}
\doxysubsubsection{\texorpdfstring{write()}{write()}}
{\footnotesize\ttfamily void Com\+Square\+::\+Memory\+::\+Memory\+Shadow\+::write (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{Ints_8hpp_a89f009aaf5d1964a000f44f09fa0bcf8}{uint24\+\_\+t}}}]{addr, }\item[{uint8\+\_\+t}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}
Write data to the ram.
\begin{DoxyParams}{Parameters}
{\em addr} & The address to write to. The address 0x0 should refer to the first byte of the initial \mbox{\hyperlink{classComSquare_1_1Memory_1_1AMemory}{A\+Memory}}. \\
\hline
{\em data} & The data to write. \\
\hline
\end{DoxyParams}
\begin{DoxyExceptions}{Exceptions}
{\em \mbox{\hyperlink{classComSquare_1_1InvalidAddress}{Invalid\+Address}}} & will be thrown if the address is more than the size of the initial \mbox{\hyperlink{classComSquare_1_1Memory_1_1AMemory}{A\+Memory}}. \\
\hline
\end{DoxyExceptions}
Implements \mbox{\hyperlink{classComSquare_1_1Memory_1_1IMemory_a449bc89798a0b86028bb0413106514d9}{Com\+Square\+::\+Memory\+::\+I\+Memory}}.
\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{classComSquare_1_1Memory_1_1MemoryShadow_a70738186c3fb76103ad2ba4827e8ff6c}\label{classComSquare_1_1Memory_1_1MemoryShadow_a70738186c3fb76103ad2ba4827e8ff6c}}
\index{ComSquare::Memory::MemoryShadow@{ComSquare::Memory::MemoryShadow}!\_initial@{\_initial}}
\index{\_initial@{\_initial}!ComSquare::Memory::MemoryShadow@{ComSquare::Memory::MemoryShadow}}
\doxysubsubsection{\texorpdfstring{\_initial}{\_initial}}
{\footnotesize\ttfamily \mbox{\hyperlink{classComSquare_1_1Memory_1_1IMemory}{I\+Memory}}\& Com\+Square\+::\+Memory\+::\+Memory\+Shadow\+::\+\_\+initial\hspace{0.3cm}{\ttfamily [private]}}
\mbox{\hyperlink{namespaceComSquare_1_1Memory}{Memory}} to shadow from.
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item
sources/\+Memory/\mbox{\hyperlink{MemoryShadow_8hpp}{Memory\+Shadow.\+hpp}}\item
sources/\+Memory/\mbox{\hyperlink{MemoryShadow_8cpp}{Memory\+Shadow.\+cpp}}\end{DoxyCompactItemize}