\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 
\Hypertarget{class_metadata_ae849560667461008cb72e83919c20be0}\label{class_metadata_ae849560667461008cb72e83919c20be0} 
{\bfseries 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*{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. 

\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{class_metadata_a3d56c8c5adee4b8c7d2089802211522b}\index{Metadata@{Metadata}!Metadata@{Metadata}}
\index{Metadata@{Metadata}!Metadata@{Metadata}}
\doxysubsubsection{\texorpdfstring{Metadata()}{Metadata()}}
{\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}


\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}
\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}
\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}
\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}
\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}
\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}
\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}
\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}


\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}


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}
