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