\doxysection{Metadata Class Reference}
\hypertarget{class_metadata}{}\label{class_metadata}\index{Metadata@{Metadata}}


Represents metadata information for data objects in the dobj module.  




{\ttfamily \#include $<$Metadata.\+h$>$}

\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{class_metadata_ae849560667461008cb72e83919c20be0}{Metadata}} ()=default
\begin{DoxyCompactList}\small\item\em Default constructor for \doxylink{class_metadata}{Metadata}. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_metadata_a3d56c8c5adee4b8c7d2089802211522b}{Metadata}} (std\+::size\+\_\+t byte\+Size, std\+::string data\+Type, std\+::vector$<$ std\+::size\+\_\+t $>$ dimensions, bool debug\+Flag=false)
\begin{DoxyCompactList}\small\item\em Constructor to initialize \doxylink{class_metadata}{Metadata} with specific attributes. \end{DoxyCompactList}\item 
std\+::size\+\_\+t \mbox{\hyperlink{class_metadata_ac7980d1efdd6ae434f0115f83d08348e}{get\+Byte\+Size}} () const noexcept
\begin{DoxyCompactList}\small\item\em Gets the total size of the data in bytes. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_metadata_a07035de7b0c780ef340e1a11c60a4d2b}{set\+Byte\+Size}} (std\+::size\+\_\+t byte\+Size) noexcept
\begin{DoxyCompactList}\small\item\em Sets the total size of the data in bytes. \end{DoxyCompactList}\item 
const std\+::string \& \mbox{\hyperlink{class_metadata_aeed7f22ccc61d9a3d6425441d381dcdc}{get\+Data\+Type}} () const noexcept
\begin{DoxyCompactList}\small\item\em Gets the type of the data. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_metadata_a88f4f57d443e2b7664e75e57a29dfbf0}{set\+Data\+Type}} (const std\+::string \&data\+Type)
\begin{DoxyCompactList}\small\item\em Sets the type of the data. \end{DoxyCompactList}\item 
const std\+::vector$<$ std\+::size\+\_\+t $>$ \& \mbox{\hyperlink{class_metadata_a412c0c0b8754d85f9edbbdcd637f3b20}{get\+Dimensions}} () const noexcept
\begin{DoxyCompactList}\small\item\em Gets the dimensions of the data. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_metadata_af5264d1666839e69c192b565b5cfa606}{set\+Dimensions}} (const std\+::vector$<$ std\+::size\+\_\+t $>$ \&dimensions)
\begin{DoxyCompactList}\small\item\em Sets the dimensions of the data. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_metadata_abe52c81e04665628666b4140cd346b69}{is\+Debug\+Enabled}} () const noexcept
\begin{DoxyCompactList}\small\item\em Checks if debugging information is enabled. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_metadata_a365c4594ad65c3b10b40a1cf4f4aea26}{set\+Debug\+Enabled}} (bool debug\+Flag) noexcept
\begin{DoxyCompactList}\small\item\em Sets the debugging flag. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
int \mbox{\hyperlink{class_metadata_ac73a509797c98c0d52fb32e1f93e38bc}{byte\+Size\+\_\+}} = 0
\begin{DoxyCompactList}\small\item\em Total size of the data in bytes. \end{DoxyCompactList}\item 
std\+::string \mbox{\hyperlink{class_metadata_a290205e5f46416dd0f48bd6ff62888ac}{data\+Type\+\_\+}}
\begin{DoxyCompactList}\small\item\em Type of the data (e.\+g., "{}float"{}, "{}double"{}). \end{DoxyCompactList}\item 
std\+::vector$<$ std\+::size\+\_\+t $>$ \mbox{\hyperlink{class_metadata_a163f74d4ef9ecd13a34e7e9cab2e21ce}{dimensions\+\_\+}}
\begin{DoxyCompactList}\small\item\em Dimensions of the data (e.\+g., \{3, 4\} for a 3x4 matrix). \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_metadata_a65fd506f1bd41699d9cd19bc0dfc9701}{debug\+Flag\+\_\+}} = false
\begin{DoxyCompactList}\small\item\em Indicates whether debugging is enabled. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Friends}
\begin{DoxyCompactItemize}
\item 
std\+::ostream \& \mbox{\hyperlink{class_metadata_a12949a1ea26c4ff1afeb97101c0493c5}{operator$<$$<$}} (std\+::ostream \&os, const \mbox{\hyperlink{class_metadata}{Metadata}} \&metadata)
\begin{DoxyCompactList}\small\item\em Prints the metadata information for debugging purposes. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Represents metadata information for data objects in the dobj module. 

The \doxylink{class_metadata}{Metadata} class encapsulates details such as data size, type, dimensions, and optional debugging flags. It is designed to provide descriptive attributes in a lightweight and efficient manner. 

Definition at line \mbox{\hyperlink{_metadata_8h_source_l00051}{51}} of file \mbox{\hyperlink{_metadata_8h_source}{Metadata.\+h}}.



\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{class_metadata_ae849560667461008cb72e83919c20be0}\index{Metadata@{Metadata}!Metadata@{Metadata}}
\index{Metadata@{Metadata}!Metadata@{Metadata}}
\doxysubsubsection{\texorpdfstring{Metadata()}{Metadata()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \label{class_metadata_ae849560667461008cb72e83919c20be0} 
Metadata\+::\+Metadata (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [default]}}



Default constructor for \doxylink{class_metadata}{Metadata}. 

\Hypertarget{class_metadata_a3d56c8c5adee4b8c7d2089802211522b}\index{Metadata@{Metadata}!Metadata@{Metadata}}
\index{Metadata@{Metadata}!Metadata@{Metadata}}
\doxysubsubsection{\texorpdfstring{Metadata()}{Metadata()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \label{class_metadata_a3d56c8c5adee4b8c7d2089802211522b} 
Metadata\+::\+Metadata (\begin{DoxyParamCaption}\item[{std\+::size\+\_\+t}]{byte\+Size}{, }\item[{std\+::string}]{data\+Type}{, }\item[{std\+::vector$<$ std\+::size\+\_\+t $>$}]{dimensions}{, }\item[{bool}]{debug\+Flag}{ = {\ttfamily false}}\end{DoxyParamCaption})}



Constructor to initialize \doxylink{class_metadata}{Metadata} with specific attributes. 


\begin{DoxyParams}{Parameters}
{\em byte\+Size} & The total size of the data in bytes. \\
\hline
{\em data\+Type} & The type of the data (e.\+g., "{}float"{}, "{}double"{}). \\
\hline
{\em dimensions} & A vector representing the size of each dimension (e.\+g., \{3, 4\} for a 3x4 matrix). \\
\hline
{\em debug\+Flag} & Whether debugging information is enabled for this \doxylink{class_metadata}{Metadata} instance. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{_metadata_8cpp_source_l00040}{40}} of file \mbox{\hyperlink{_metadata_8cpp_source}{Metadata.\+cpp}}.



\doxysubsection{Member Function Documentation}
\Hypertarget{class_metadata_ac7980d1efdd6ae434f0115f83d08348e}\index{Metadata@{Metadata}!getByteSize@{getByteSize}}
\index{getByteSize@{getByteSize}!Metadata@{Metadata}}
\doxysubsubsection{\texorpdfstring{getByteSize()}{getByteSize()}}
{\footnotesize\ttfamily \label{class_metadata_ac7980d1efdd6ae434f0115f83d08348e} 
std\+::size\+\_\+t Metadata\+::get\+Byte\+Size (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [noexcept]}}



Gets the total size of the data in bytes. 

\begin{DoxyReturn}{Returns}
The total byte size of the data.
\end{DoxyReturn}
The size is often required for memory allocation and validation in numerical routines.

\begin{DoxyReturn}{Returns}
The total byte size of the data. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{_metadata_8cpp_source_l00050}{50}} of file \mbox{\hyperlink{_metadata_8cpp_source}{Metadata.\+cpp}}.

\Hypertarget{class_metadata_aeed7f22ccc61d9a3d6425441d381dcdc}\index{Metadata@{Metadata}!getDataType@{getDataType}}
\index{getDataType@{getDataType}!Metadata@{Metadata}}
\doxysubsubsection{\texorpdfstring{getDataType()}{getDataType()}}
{\footnotesize\ttfamily \label{class_metadata_aeed7f22ccc61d9a3d6425441d381dcdc} 
const std\+::string \& Metadata\+::get\+Data\+Type (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [noexcept]}}



Gets the type of the data. 

\begin{DoxyReturn}{Returns}
A string representing the data type.
\end{DoxyReturn}
The type (e.\+g., "{}float"{}, "{}double"{}) is critical for casting raw data or interfacing with libraries that require specific types.

\begin{DoxyReturn}{Returns}
A string representing the data type. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{_metadata_8cpp_source_l00074}{74}} of file \mbox{\hyperlink{_metadata_8cpp_source}{Metadata.\+cpp}}.

\Hypertarget{class_metadata_a412c0c0b8754d85f9edbbdcd637f3b20}\index{Metadata@{Metadata}!getDimensions@{getDimensions}}
\index{getDimensions@{getDimensions}!Metadata@{Metadata}}
\doxysubsubsection{\texorpdfstring{getDimensions()}{getDimensions()}}
{\footnotesize\ttfamily \label{class_metadata_a412c0c0b8754d85f9edbbdcd637f3b20} 
const std\+::vector$<$ std\+::size\+\_\+t $>$ \& Metadata\+::get\+Dimensions (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [noexcept]}}



Gets the dimensions of the data. 

\begin{DoxyReturn}{Returns}
A vector representing the size of each dimension.
\end{DoxyReturn}
Dimensions define the shape of the data (e.\+g., 2D arrays, 3D matrices). This is essential for ensuring that operations (e.\+g., matrix multiplication) are performed correctly.

\begin{DoxyReturn}{Returns}
A vector representing the size of each dimension. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{_metadata_8cpp_source_l00098}{98}} of file \mbox{\hyperlink{_metadata_8cpp_source}{Metadata.\+cpp}}.

\Hypertarget{class_metadata_abe52c81e04665628666b4140cd346b69}\index{Metadata@{Metadata}!isDebugEnabled@{isDebugEnabled}}
\index{isDebugEnabled@{isDebugEnabled}!Metadata@{Metadata}}
\doxysubsubsection{\texorpdfstring{isDebugEnabled()}{isDebugEnabled()}}
{\footnotesize\ttfamily \label{class_metadata_abe52c81e04665628666b4140cd346b69} 
bool Metadata\+::is\+Debug\+Enabled (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [nodiscard]}, {\ttfamily [noexcept]}}



Checks if debugging information is enabled. 

\begin{DoxyReturn}{Returns}
True if debugging is enabled, false otherwise.
\end{DoxyReturn}
Debugging flags can be useful for tracking performance metrics or error provenance.

\begin{DoxyReturn}{Returns}
True if debugging is enabled, false otherwise. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{_metadata_8cpp_source_l00120}{120}} of file \mbox{\hyperlink{_metadata_8cpp_source}{Metadata.\+cpp}}.

\Hypertarget{class_metadata_a07035de7b0c780ef340e1a11c60a4d2b}\index{Metadata@{Metadata}!setByteSize@{setByteSize}}
\index{setByteSize@{setByteSize}!Metadata@{Metadata}}
\doxysubsubsection{\texorpdfstring{setByteSize()}{setByteSize()}}
{\footnotesize\ttfamily \label{class_metadata_a07035de7b0c780ef340e1a11c60a4d2b} 
void Metadata\+::set\+Byte\+Size (\begin{DoxyParamCaption}\item[{std\+::size\+\_\+t}]{byte\+Size}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [noexcept]}}



Sets the total size of the data in bytes. 


\begin{DoxyParams}{Parameters}
{\em byte\+Size} & The total byte size to set.\\
\hline
\end{DoxyParams}
It\textquotesingle{}s important to ensure this matches the actual data size in memory to prevent overflows or incorrect computations downstream.


\begin{DoxyParams}{Parameters}
{\em byte\+Size} & The total byte size to set. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{_metadata_8cpp_source_l00062}{62}} of file \mbox{\hyperlink{_metadata_8cpp_source}{Metadata.\+cpp}}.

\Hypertarget{class_metadata_a88f4f57d443e2b7664e75e57a29dfbf0}\index{Metadata@{Metadata}!setDataType@{setDataType}}
\index{setDataType@{setDataType}!Metadata@{Metadata}}
\doxysubsubsection{\texorpdfstring{setDataType()}{setDataType()}}
{\footnotesize\ttfamily \label{class_metadata_a88f4f57d443e2b7664e75e57a29dfbf0} 
void Metadata\+::set\+Data\+Type (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{data\+Type}{}\end{DoxyParamCaption})}



Sets the type of the data. 


\begin{DoxyParams}{Parameters}
{\em data\+Type} & A string representing the data type.\\
\hline
\end{DoxyParams}
When setting the data type, ensure it aligns with the underlying data representation. Mismatched types can lead to undefined behavior in numerical calculations.


\begin{DoxyParams}{Parameters}
{\em data\+Type} & A string representing the data type. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{_metadata_8cpp_source_l00086}{86}} of file \mbox{\hyperlink{_metadata_8cpp_source}{Metadata.\+cpp}}.

\Hypertarget{class_metadata_a365c4594ad65c3b10b40a1cf4f4aea26}\index{Metadata@{Metadata}!setDebugEnabled@{setDebugEnabled}}
\index{setDebugEnabled@{setDebugEnabled}!Metadata@{Metadata}}
\doxysubsubsection{\texorpdfstring{setDebugEnabled()}{setDebugEnabled()}}
{\footnotesize\ttfamily \label{class_metadata_a365c4594ad65c3b10b40a1cf4f4aea26} 
void Metadata\+::set\+Debug\+Enabled (\begin{DoxyParamCaption}\item[{bool}]{debug\+Flag}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [noexcept]}}



Sets the debugging flag. 


\begin{DoxyParams}{Parameters}
{\em debug\+Flag} & Whether debugging is enabled.\\
\hline
\end{DoxyParams}
Enabling debugging can introduce performance overhead but provides valuable insights during development or testing.


\begin{DoxyParams}{Parameters}
{\em debug\+Flag} & Whether debugging is enabled. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{_metadata_8cpp_source_l00132}{132}} of file \mbox{\hyperlink{_metadata_8cpp_source}{Metadata.\+cpp}}.

\Hypertarget{class_metadata_af5264d1666839e69c192b565b5cfa606}\index{Metadata@{Metadata}!setDimensions@{setDimensions}}
\index{setDimensions@{setDimensions}!Metadata@{Metadata}}
\doxysubsubsection{\texorpdfstring{setDimensions()}{setDimensions()}}
{\footnotesize\ttfamily \label{class_metadata_af5264d1666839e69c192b565b5cfa606} 
void Metadata\+::set\+Dimensions (\begin{DoxyParamCaption}\item[{const std\+::vector$<$ std\+::size\+\_\+t $>$ \&}]{dimensions}{}\end{DoxyParamCaption})}



Sets the dimensions of the data. 


\begin{DoxyParams}{Parameters}
{\em dimensions} & A vector representing the size of each dimension.\\
\hline
\end{DoxyParams}
When modifying dimensions, verify that they are consistent with the actual data representation.


\begin{DoxyParams}{Parameters}
{\em dimensions} & A vector representing the size of each dimension. \\
\hline
\end{DoxyParams}


Definition at line \mbox{\hyperlink{_metadata_8cpp_source_l00109}{109}} of file \mbox{\hyperlink{_metadata_8cpp_source}{Metadata.\+cpp}}.



\doxysubsection{Friends And Related Symbol Documentation}
\Hypertarget{class_metadata_a12949a1ea26c4ff1afeb97101c0493c5}\index{Metadata@{Metadata}!operator$<$$<$@{operator$<$$<$}}
\index{operator$<$$<$@{operator$<$$<$}!Metadata@{Metadata}}
\doxysubsubsection{\texorpdfstring{operator$<$$<$}{operator<<}}
{\footnotesize\ttfamily \label{class_metadata_a12949a1ea26c4ff1afeb97101c0493c5} 
std\+::ostream \& operator$<$$<$ (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{os}{, }\item[{const \mbox{\hyperlink{class_metadata}{Metadata}} \&}]{metadata}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [friend]}}



Prints the metadata information for debugging purposes. 


\begin{DoxyParams}{Parameters}
{\em os} & The output stream to print to. \\
\hline
{\em metadata} & The \doxylink{class_metadata}{Metadata} object to print. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A reference to the output stream.
\end{DoxyReturn}
This function provides a human-\/readable summary of the metadata. Useful for quick checks or logging during debugging sessions.


\begin{DoxyParams}{Parameters}
{\em os} & The output stream to print to. \\
\hline
{\em metadata} & The \doxylink{class_metadata}{Metadata} object to print. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A reference to the output stream. 
\end{DoxyReturn}


Definition at line \mbox{\hyperlink{_metadata_8cpp_source_l00146}{146}} of file \mbox{\hyperlink{_metadata_8cpp_source}{Metadata.\+cpp}}.



\doxysubsection{Member Data Documentation}
\Hypertarget{class_metadata_ac73a509797c98c0d52fb32e1f93e38bc}\index{Metadata@{Metadata}!byteSize\_@{byteSize\_}}
\index{byteSize\_@{byteSize\_}!Metadata@{Metadata}}
\doxysubsubsection{\texorpdfstring{byteSize\_}{byteSize\_}}
{\footnotesize\ttfamily \label{class_metadata_ac73a509797c98c0d52fb32e1f93e38bc} 
int Metadata\+::byte\+Size\+\_\+ = 0\hspace{0.3cm}{\ttfamily [private]}}



Total size of the data in bytes. 



Definition at line \mbox{\hyperlink{_metadata_8h_source_l00126}{126}} of file \mbox{\hyperlink{_metadata_8h_source}{Metadata.\+h}}.

\Hypertarget{class_metadata_a290205e5f46416dd0f48bd6ff62888ac}\index{Metadata@{Metadata}!dataType\_@{dataType\_}}
\index{dataType\_@{dataType\_}!Metadata@{Metadata}}
\doxysubsubsection{\texorpdfstring{dataType\_}{dataType\_}}
{\footnotesize\ttfamily \label{class_metadata_a290205e5f46416dd0f48bd6ff62888ac} 
std\+::string Metadata\+::data\+Type\+\_\+\hspace{0.3cm}{\ttfamily [private]}}



Type of the data (e.\+g., "{}float"{}, "{}double"{}). 



Definition at line \mbox{\hyperlink{_metadata_8h_source_l00127}{127}} of file \mbox{\hyperlink{_metadata_8h_source}{Metadata.\+h}}.

\Hypertarget{class_metadata_a65fd506f1bd41699d9cd19bc0dfc9701}\index{Metadata@{Metadata}!debugFlag\_@{debugFlag\_}}
\index{debugFlag\_@{debugFlag\_}!Metadata@{Metadata}}
\doxysubsubsection{\texorpdfstring{debugFlag\_}{debugFlag\_}}
{\footnotesize\ttfamily \label{class_metadata_a65fd506f1bd41699d9cd19bc0dfc9701} 
bool Metadata\+::debug\+Flag\+\_\+ = false\hspace{0.3cm}{\ttfamily [private]}}



Indicates whether debugging is enabled. 



Definition at line \mbox{\hyperlink{_metadata_8h_source_l00129}{129}} of file \mbox{\hyperlink{_metadata_8h_source}{Metadata.\+h}}.

\Hypertarget{class_metadata_a163f74d4ef9ecd13a34e7e9cab2e21ce}\index{Metadata@{Metadata}!dimensions\_@{dimensions\_}}
\index{dimensions\_@{dimensions\_}!Metadata@{Metadata}}
\doxysubsubsection{\texorpdfstring{dimensions\_}{dimensions\_}}
{\footnotesize\ttfamily \label{class_metadata_a163f74d4ef9ecd13a34e7e9cab2e21ce} 
std\+::vector$<$std\+::size\+\_\+t$>$ Metadata\+::dimensions\+\_\+\hspace{0.3cm}{\ttfamily [private]}}



Dimensions of the data (e.\+g., \{3, 4\} for a 3x4 matrix). 



Definition at line \mbox{\hyperlink{_metadata_8h_source_l00128}{128}} of file \mbox{\hyperlink{_metadata_8h_source}{Metadata.\+h}}.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
src/dobj/public/\mbox{\hyperlink{_metadata_8h}{Metadata.\+h}}\item 
src/dobj/private/\mbox{\hyperlink{_metadata_8cpp}{Metadata.\+cpp}}\end{DoxyCompactItemize}
