524 lines
26 KiB
TeX
524 lines
26 KiB
TeX
\doxysection{DObject Class Reference}
|
|
\hypertarget{class_d_object}{}\label{class_d_object}\index{DObject@{DObject}}
|
|
|
|
|
|
A universal data container class.
|
|
|
|
|
|
|
|
|
|
{\ttfamily \#include $<$DObject.\+h$>$}
|
|
|
|
\doxysubsubsection*{Public Types}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
using \mbox{\hyperlink{class_d_object_a55b7cdac36a3a518ba6e1ecef0e25dcd}{Data\+Type}}
|
|
\begin{DoxyCompactList}\small\item\em Supported data types for the \doxylink{class_d_object}{DObject}. \end{DoxyCompactList}\item
|
|
using \mbox{\hyperlink{class_d_object_af11334d08ef85c68b3aae7554548e5a7}{Plugin}} = std\+::function$<$void(\mbox{\hyperlink{class_d_object}{DObject}}\&)$>$
|
|
\begin{DoxyCompactList}\small\item\em Placeholder type for plugins. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Public Member Functions}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
\mbox{\hyperlink{class_d_object_a0ae54853e18265657296bfb5ac3bf9d0}{DObject}} ()
|
|
\begin{DoxyCompactList}\small\item\em Default constructor. \end{DoxyCompactList}\item
|
|
\mbox{\hyperlink{class_d_object_a598321f3b8524b98df72393c04d7470c}{DObject}} (const \mbox{\hyperlink{class_d_object_a55b7cdac36a3a518ba6e1ecef0e25dcd}{Data\+Type}} \&data)
|
|
\begin{DoxyCompactList}\small\item\em Constructor to initialize a \doxylink{class_d_object}{DObject} with data. \end{DoxyCompactList}\item
|
|
const \mbox{\hyperlink{class_d_object_a55b7cdac36a3a518ba6e1ecef0e25dcd}{Data\+Type}} \& \mbox{\hyperlink{class_d_object_a4862655c3634d019b0a45b811d6f7235}{get\+Data}} () const noexcept
|
|
\begin{DoxyCompactList}\small\item\em Retrieves the data stored in the \doxylink{class_d_object}{DObject}. \end{DoxyCompactList}\item
|
|
{\footnotesize template$<$typename T$>$ }\\T \mbox{\hyperlink{class_d_object_aca2db093c1c8c6f7893de07544aed619}{get\+Data\+As}} () const
|
|
\begin{DoxyCompactList}\small\item\em Retrieves the data stored in the \doxylink{class_d_object}{DObject} as a typed object so that std\+::get$<$\+T$>$() is not needed. \end{DoxyCompactList}\item
|
|
void \mbox{\hyperlink{class_d_object_ab1718571434e84e90f1ec463e4786a8a}{set\+Data}} (const \mbox{\hyperlink{class_d_object_a55b7cdac36a3a518ba6e1ecef0e25dcd}{Data\+Type}} \&data)
|
|
\begin{DoxyCompactList}\small\item\em Sets the data for the \doxylink{class_d_object}{DObject}. \end{DoxyCompactList}\item
|
|
void \mbox{\hyperlink{class_d_object_a6f0023aee463e71d92442dcf61b6ed47}{set\+Debugging}} (bool enable\+Debug)
|
|
\begin{DoxyCompactList}\small\item\em Enables or disables debugging and tracing for the \doxylink{class_d_object}{DObject}. \end{DoxyCompactList}\item
|
|
bool \mbox{\hyperlink{class_d_object_ae47bf220fbe2173cf6933c2380035dbd}{is\+Debugging\+Enabled}} () const noexcept
|
|
\begin{DoxyCompactList}\small\item\em Checks if debugging is enabled for the \doxylink{class_d_object}{DObject}. \end{DoxyCompactList}\item
|
|
int \mbox{\hyperlink{class_d_object_a3dce47a519f9da5085c0c5ac1eea4f38}{set\+Error\+Code}} (int code) noexcept
|
|
\item
|
|
int \mbox{\hyperlink{class_d_object_afa8926d916081de72478cb8813c25e98}{get\+Error\+Code}} () const noexcept
|
|
\begin{DoxyCompactList}\small\item\em Get the error code tracked by the \doxylink{class_d_object}{DObject}. \end{DoxyCompactList}\item
|
|
void \mbox{\hyperlink{class_d_object_a15afffdf339150fc872bf63bdd08d581}{register\+Plugin}} (const std\+::string \&id, \mbox{\hyperlink{class_d_object_af11334d08ef85c68b3aae7554548e5a7}{Plugin}} plugin)
|
|
\begin{DoxyCompactList}\small\item\em Registers a plugin with the \doxylink{class_d_object}{DObject}. \end{DoxyCompactList}\item
|
|
void \mbox{\hyperlink{class_d_object_a99b8688849e11501033a25f61efb8356}{unregister\+Plugin}} (const std\+::string \&id)
|
|
\begin{DoxyCompactList}\small\item\em Unregisters a plugin by its identifier. \end{DoxyCompactList}\item
|
|
void \mbox{\hyperlink{class_d_object_a99072eb52bb22745f0248f273fbf28fb}{run\+Plugin}} (const std\+::string \&id)
|
|
\begin{DoxyCompactList}\small\item\em Executes a plugin by its identifier. \end{DoxyCompactList}\item
|
|
void \mbox{\hyperlink{class_d_object_a1223275dcbbf20334ea11707346acb93}{run\+All\+Plugins}} ()
|
|
\begin{DoxyCompactList}\small\item\em Executes all registered plugins in the registry. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Public Attributes}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
std\+::map$<$ int, std\+::string $>$ \mbox{\hyperlink{class_d_object_a358d5f015da09ae5f0cbb46f3fd9e401}{data\+Type\+Map}}
|
|
\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Private Attributes}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
\mbox{\hyperlink{class_d_object_a55b7cdac36a3a518ba6e1ecef0e25dcd}{Data\+Type}} \mbox{\hyperlink{class_d_object_ad7ba02f6d87ce64792149096f3310b21}{data\+\_\+}}
|
|
\begin{DoxyCompactList}\small\item\em The main data stored in the \doxylink{class_d_object}{DObject}. \end{DoxyCompactList}\item
|
|
bool \mbox{\hyperlink{class_d_object_accf5c10d4afc3969607e11b0055312d5}{debug\+Enabled\+\_\+}} = false
|
|
\begin{DoxyCompactList}\small\item\em Indicates whether debugging is enabled. \end{DoxyCompactList}\item
|
|
int \mbox{\hyperlink{class_d_object_ad8de5890e8dae5fc7e72fabca2520fc3}{error\+Code\+\_\+}} = 0
|
|
\begin{DoxyCompactList}\small\item\em Error code tracked by the \doxylink{class_d_object}{DObject}. \end{DoxyCompactList}\item
|
|
std\+::map$<$ std\+::string, \mbox{\hyperlink{class_d_object_af11334d08ef85c68b3aae7554548e5a7}{Plugin}} $>$ \mbox{\hyperlink{class_d_object_ae9f7e4d2fbabc076961a40185676e208}{plugins\+\_\+}}
|
|
\begin{DoxyCompactList}\small\item\em Registry for dynamically registered plugins. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
\doxysubsubsection*{Friends}
|
|
\begin{DoxyCompactItemize}
|
|
\item
|
|
std\+::ostream \& \mbox{\hyperlink{class_d_object_aa54e75574f0302a2ca7252f9f0f0b3f1}{operator$<$$<$}} (std\+::ostream \&os, const \mbox{\hyperlink{class_d_object}{DObject}} \&obj)
|
|
\begin{DoxyCompactList}\small\item\em Provides a human-\/readable summary of the \doxylink{class_d_object}{DObject}. \end{DoxyCompactList}\end{DoxyCompactItemize}
|
|
|
|
|
|
\doxysubsection{Detailed Description}
|
|
A universal data container class.
|
|
|
|
The \doxylink{class_d_object}{DObject} class is designed to store arbitrary data alongside descriptive metadata. It supports plugin registration to allow extensible functionality.
|
|
|
|
The general purpose of this is to simplify memory managment, function interfaces, and interoperability with other languages by wrapping all of that up inside of one location (\doxylink{class_d_object}{DObject}). There are still a limited number of types that DOBject can represent these include
|
|
\begin{DoxyItemize}
|
|
\item bool
|
|
\item short int
|
|
\item int
|
|
\item long int
|
|
\item float
|
|
\item double
|
|
\item long double
|
|
\item std\+::string
|
|
\item std\+::monostate
|
|
\item std\+::vector$<$int$>$
|
|
\item std\+::vector$<$float$>$
|
|
\item std\+::vector$<$double$>$
|
|
\item std\+::vector$<$std\+::string$>$
|
|
\item std\+::vector$<$std\+::vector$<$int$>$$>$
|
|
\item std\+::vector$<$std\+::vector$<$float$>$$>$
|
|
\item std\+::vector$<$std\+::vector$<$double$>$$>$
|
|
\item std\+::vector$<$std\+::vector$<$std\+::vector$<$int$>$$>$$>$
|
|
\item std\+::vector$<$std\+::vector$<$std\+::vector$<$float$>$$>$$>$
|
|
\item std\+::vector\texorpdfstring{$<$}{<}std\+::vector$<$std\+::vector$<$double$>$$>$
|
|
\end{DoxyItemize}
|
|
|
|
If more types are needed, they can be added to the \doxylink{class_d_object_a55b7cdac36a3a518ba6e1ecef0e25dcd}{Data\+Type} variant.
|
|
|
|
In general the usage of this might look like
|
|
\begin{DoxyCode}{0}
|
|
\DoxyCodeLine{\mbox{\hyperlink{class_d_object_a0ae54853e18265657296bfb5ac3bf9d0}{DObject}}\ obj;}
|
|
\DoxyCodeLine{std::vector<int>\ data\ =\ \{1,\ 2,\ 3,\ 4,\ 5\};}
|
|
\DoxyCodeLine{obj.\mbox{\hyperlink{class_d_object_ab1718571434e84e90f1ec463e4786a8a}{setData}}(data);}
|
|
\DoxyCodeLine{std::cout\ <<\ \textcolor{stringliteral}{"{}Data\ is\ "{}}\ <<\ obj\ <<\ std::end;}
|
|
\DoxyCodeLine{someFunction(\&obj);}
|
|
|
|
\end{DoxyCode}
|
|
|
|
|
|
All memory managment should be taken care of as all datatypes accepted by the varient are either primatives or include their own built in memory managment (i.\+e. this means that wherever possible vectors should be used in place of raw arrays).
|
|
|
|
Definition at line \mbox{\hyperlink{_d_object_8h_source_l00089}{89}} of file \mbox{\hyperlink{_d_object_8h_source}{DObject.\+h}}.
|
|
|
|
|
|
|
|
\doxysubsection{Member Typedef Documentation}
|
|
\Hypertarget{class_d_object_a55b7cdac36a3a518ba6e1ecef0e25dcd}\index{DObject@{DObject}!DataType@{DataType}}
|
|
\index{DataType@{DataType}!DObject@{DObject}}
|
|
\doxysubsubsection{\texorpdfstring{DataType}{DataType}}
|
|
{\footnotesize\ttfamily \label{class_d_object_a55b7cdac36a3a518ba6e1ecef0e25dcd}
|
|
using \mbox{\hyperlink{class_d_object_a55b7cdac36a3a518ba6e1ecef0e25dcd}{DObject\+::\+Data\+Type}}}
|
|
|
|
{\bfseries Initial value\+:}
|
|
\begin{DoxyCode}{0}
|
|
\DoxyCodeLine{\ std::variant<}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ bool,\ \textcolor{keywordtype}{short}\ int,\ int,\ \textcolor{keywordtype}{long}\ int,\ float,\ double,\ }
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{keywordtype}{long}\ double,\ std::string,\ std::monostate,\ std::vector<int>,}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ std::vector<float>,\ std::vector<double>,\ std::vector<std::string>,}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ std::vector<std::vector<int>>,\ std::vector<std::vector<float>>,}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ std::vector<std::vector<double>>,}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ std::vector<std::vector<std::vector<int>>>,}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ std::vector<std::vector<std::vector<float>>>,}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ std::vector<std::vector<std::vector<double>>>}
|
|
\DoxyCodeLine{\ \ \ \ >}
|
|
|
|
\end{DoxyCode}
|
|
|
|
|
|
Supported data types for the \doxylink{class_d_object}{DObject}.
|
|
|
|
This type alias uses {\ttfamily std\+::variant} to store different types of data, ensuring type safety and flexibility.
|
|
|
|
Definition at line \mbox{\hyperlink{_d_object_8h_source_l00097}{97}} of file \mbox{\hyperlink{_d_object_8h_source}{DObject.\+h}}.
|
|
|
|
\Hypertarget{class_d_object_af11334d08ef85c68b3aae7554548e5a7}\index{DObject@{DObject}!Plugin@{Plugin}}
|
|
\index{Plugin@{Plugin}!DObject@{DObject}}
|
|
\doxysubsubsection{\texorpdfstring{Plugin}{Plugin}}
|
|
{\footnotesize\ttfamily \label{class_d_object_af11334d08ef85c68b3aae7554548e5a7}
|
|
using \mbox{\hyperlink{class_d_object_af11334d08ef85c68b3aae7554548e5a7}{DObject\+::\+Plugin}} = std\+::function$<$void(\mbox{\hyperlink{class_d_object}{DObject}}\&)$>$}
|
|
|
|
|
|
|
|
Placeholder type for plugins.
|
|
|
|
In the future, this will be replaced with a concrete interface.
|
|
|
|
Definition at line \mbox{\hyperlink{_d_object_8h_source_l00125}{125}} of file \mbox{\hyperlink{_d_object_8h_source}{DObject.\+h}}.
|
|
|
|
|
|
|
|
\doxysubsection{Constructor \& Destructor Documentation}
|
|
\Hypertarget{class_d_object_a0ae54853e18265657296bfb5ac3bf9d0}\index{DObject@{DObject}!DObject@{DObject}}
|
|
\index{DObject@{DObject}!DObject@{DObject}}
|
|
\doxysubsubsection{\texorpdfstring{DObject()}{DObject()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
|
|
{\footnotesize\ttfamily \label{class_d_object_a0ae54853e18265657296bfb5ac3bf9d0}
|
|
DObject\+::\+DObject (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})}
|
|
|
|
|
|
|
|
Default constructor.
|
|
|
|
Creates an empty \doxylink{class_d_object}{DObject}.
|
|
|
|
Definition at line \mbox{\hyperlink{_d_object_8cpp_source_l00033}{33}} of file \mbox{\hyperlink{_d_object_8cpp_source}{DObject.\+cpp}}.
|
|
|
|
\Hypertarget{class_d_object_a598321f3b8524b98df72393c04d7470c}\index{DObject@{DObject}!DObject@{DObject}}
|
|
\index{DObject@{DObject}!DObject@{DObject}}
|
|
\doxysubsubsection{\texorpdfstring{DObject()}{DObject()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
|
|
{\footnotesize\ttfamily \label{class_d_object_a598321f3b8524b98df72393c04d7470c}
|
|
DObject\+::\+DObject (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_d_object_a55b7cdac36a3a518ba6e1ecef0e25dcd}{Data\+Type}} \&}]{data}{}\end{DoxyParamCaption})}
|
|
|
|
|
|
|
|
Constructor to initialize a \doxylink{class_d_object}{DObject} with data.
|
|
|
|
|
|
\begin{DoxyParams}{Parameters}
|
|
{\em data} & The data to be stored in the \doxylink{class_d_object}{DObject}. \\
|
|
\hline
|
|
\end{DoxyParams}
|
|
|
|
|
|
Definition at line \mbox{\hyperlink{_d_object_8cpp_source_l00040}{40}} of file \mbox{\hyperlink{_d_object_8cpp_source}{DObject.\+cpp}}.
|
|
|
|
|
|
|
|
\doxysubsection{Member Function Documentation}
|
|
\Hypertarget{class_d_object_a4862655c3634d019b0a45b811d6f7235}\index{DObject@{DObject}!getData@{getData}}
|
|
\index{getData@{getData}!DObject@{DObject}}
|
|
\doxysubsubsection{\texorpdfstring{getData()}{getData()}}
|
|
{\footnotesize\ttfamily \label{class_d_object_a4862655c3634d019b0a45b811d6f7235}
|
|
const \mbox{\hyperlink{class_d_object_a55b7cdac36a3a518ba6e1ecef0e25dcd}{DObject\+::\+Data\+Type}} \& DObject\+::get\+Data (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [noexcept]}}
|
|
|
|
|
|
|
|
Retrieves the data stored in the \doxylink{class_d_object}{DObject}.
|
|
|
|
Use the appropriate type (matching the stored data) with {\ttfamily std\+::get\texorpdfstring{$<$}{<}T\texorpdfstring{$>$}{>}()}.
|
|
|
|
\begin{DoxyReturn}{Returns}
|
|
A constant reference to the stored data.
|
|
\end{DoxyReturn}
|
|
|
|
|
|
Definition at line \mbox{\hyperlink{_d_object_8cpp_source_l00046}{46}} of file \mbox{\hyperlink{_d_object_8cpp_source}{DObject.\+cpp}}.
|
|
|
|
\Hypertarget{class_d_object_aca2db093c1c8c6f7893de07544aed619}\index{DObject@{DObject}!getDataAs@{getDataAs}}
|
|
\index{getDataAs@{getDataAs}!DObject@{DObject}}
|
|
\doxysubsubsection{\texorpdfstring{getDataAs()}{getDataAs()}}
|
|
{\footnotesize\ttfamily \label{class_d_object_aca2db093c1c8c6f7893de07544aed619}
|
|
template$<$typename T$>$ \\
|
|
T DObject\+::get\+Data\+As (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
|
|
|
|
|
|
|
|
Retrieves the data stored in the \doxylink{class_d_object}{DObject} as a typed object so that std\+::get$<$\+T$>$() is not needed.
|
|
|
|
\begin{DoxyReturn}{Returns}
|
|
Data as type T
|
|
\end{DoxyReturn}
|
|
|
|
|
|
Definition at line \mbox{\hyperlink{_d_object_8h_source_l00156}{156}} of file \mbox{\hyperlink{_d_object_8h_source}{DObject.\+h}}.
|
|
|
|
\Hypertarget{class_d_object_afa8926d916081de72478cb8813c25e98}\index{DObject@{DObject}!getErrorCode@{getErrorCode}}
|
|
\index{getErrorCode@{getErrorCode}!DObject@{DObject}}
|
|
\doxysubsubsection{\texorpdfstring{getErrorCode()}{getErrorCode()}}
|
|
{\footnotesize\ttfamily \label{class_d_object_afa8926d916081de72478cb8813c25e98}
|
|
int DObject\+::get\+Error\+Code (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [noexcept]}}
|
|
|
|
|
|
|
|
Get the error code tracked by the \doxylink{class_d_object}{DObject}.
|
|
|
|
\begin{DoxyReturn}{Returns}
|
|
The error code
|
|
\end{DoxyReturn}
|
|
|
|
|
|
Definition at line \mbox{\hyperlink{_d_object_8cpp_source_l00080}{80}} of file \mbox{\hyperlink{_d_object_8cpp_source}{DObject.\+cpp}}.
|
|
|
|
\Hypertarget{class_d_object_ae47bf220fbe2173cf6933c2380035dbd}\index{DObject@{DObject}!isDebuggingEnabled@{isDebuggingEnabled}}
|
|
\index{isDebuggingEnabled@{isDebuggingEnabled}!DObject@{DObject}}
|
|
\doxysubsubsection{\texorpdfstring{isDebuggingEnabled()}{isDebuggingEnabled()}}
|
|
{\footnotesize\ttfamily \label{class_d_object_ae47bf220fbe2173cf6933c2380035dbd}
|
|
bool DObject\+::is\+Debugging\+Enabled (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [noexcept]}}
|
|
|
|
|
|
|
|
Checks if debugging is enabled for the \doxylink{class_d_object}{DObject}.
|
|
|
|
\begin{DoxyReturn}{Returns}
|
|
True if debugging is enabled, false otherwise.
|
|
\end{DoxyReturn}
|
|
|
|
|
|
Definition at line \mbox{\hyperlink{_d_object_8cpp_source_l00067}{67}} of file \mbox{\hyperlink{_d_object_8cpp_source}{DObject.\+cpp}}.
|
|
|
|
\Hypertarget{class_d_object_a15afffdf339150fc872bf63bdd08d581}\index{DObject@{DObject}!registerPlugin@{registerPlugin}}
|
|
\index{registerPlugin@{registerPlugin}!DObject@{DObject}}
|
|
\doxysubsubsection{\texorpdfstring{registerPlugin()}{registerPlugin()}}
|
|
{\footnotesize\ttfamily \label{class_d_object_a15afffdf339150fc872bf63bdd08d581}
|
|
void DObject\+::register\+Plugin (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{id}{, }\item[{\mbox{\hyperlink{class_d_object_af11334d08ef85c68b3aae7554548e5a7}{Plugin}}}]{plugin}{}\end{DoxyParamCaption})}
|
|
|
|
|
|
|
|
Registers a plugin with the \doxylink{class_d_object}{DObject}.
|
|
|
|
Plugins are stored in a registry and can add custom functionality to the \doxylink{class_d_object}{DObject}.
|
|
|
|
|
|
\begin{DoxyParams}{Parameters}
|
|
{\em id} & A unique identifier for the plugin. \\
|
|
\hline
|
|
{\em plugin} & The plugin function to register. \\
|
|
\hline
|
|
\end{DoxyParams}
|
|
|
|
|
|
Definition at line \mbox{\hyperlink{_d_object_8cpp_source_l00087}{87}} of file \mbox{\hyperlink{_d_object_8cpp_source}{DObject.\+cpp}}.
|
|
|
|
\Hypertarget{class_d_object_a1223275dcbbf20334ea11707346acb93}\index{DObject@{DObject}!runAllPlugins@{runAllPlugins}}
|
|
\index{runAllPlugins@{runAllPlugins}!DObject@{DObject}}
|
|
\doxysubsubsection{\texorpdfstring{runAllPlugins()}{runAllPlugins()}}
|
|
{\footnotesize\ttfamily \label{class_d_object_a1223275dcbbf20334ea11707346acb93}
|
|
void DObject\+::run\+All\+Plugins (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})}
|
|
|
|
|
|
|
|
Executes all registered plugins in the registry.
|
|
|
|
Iterates through all plugins and invokes them on the current \doxylink{class_d_object}{DObject}.
|
|
|
|
Definition at line \mbox{\hyperlink{_d_object_8cpp_source_l00117}{117}} of file \mbox{\hyperlink{_d_object_8cpp_source}{DObject.\+cpp}}.
|
|
|
|
\Hypertarget{class_d_object_a99072eb52bb22745f0248f273fbf28fb}\index{DObject@{DObject}!runPlugin@{runPlugin}}
|
|
\index{runPlugin@{runPlugin}!DObject@{DObject}}
|
|
\doxysubsubsection{\texorpdfstring{runPlugin()}{runPlugin()}}
|
|
{\footnotesize\ttfamily \label{class_d_object_a99072eb52bb22745f0248f273fbf28fb}
|
|
void DObject\+::run\+Plugin (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{id}{}\end{DoxyParamCaption})}
|
|
|
|
|
|
|
|
Executes a plugin by its identifier.
|
|
|
|
Invokes the registered plugin function. If the plugin is not found, no action is taken.
|
|
|
|
|
|
\begin{DoxyParams}{Parameters}
|
|
{\em id} & The unique identifier of the plugin to execute. \\
|
|
\hline
|
|
\end{DoxyParams}
|
|
|
|
|
|
Definition at line \mbox{\hyperlink{_d_object_8cpp_source_l00106}{106}} of file \mbox{\hyperlink{_d_object_8cpp_source}{DObject.\+cpp}}.
|
|
|
|
\Hypertarget{class_d_object_ab1718571434e84e90f1ec463e4786a8a}\index{DObject@{DObject}!setData@{setData}}
|
|
\index{setData@{setData}!DObject@{DObject}}
|
|
\doxysubsubsection{\texorpdfstring{setData()}{setData()}}
|
|
{\footnotesize\ttfamily \label{class_d_object_ab1718571434e84e90f1ec463e4786a8a}
|
|
void DObject\+::set\+Data (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{class_d_object_a55b7cdac36a3a518ba6e1ecef0e25dcd}{Data\+Type}} \&}]{data}{}\end{DoxyParamCaption})}
|
|
|
|
|
|
|
|
Sets the data for the \doxylink{class_d_object}{DObject}.
|
|
|
|
Updates the stored data and optionally updates metadata.
|
|
|
|
|
|
\begin{DoxyParams}{Parameters}
|
|
{\em data} & The new data to store in the \doxylink{class_d_object}{DObject}. \\
|
|
\hline
|
|
\end{DoxyParams}
|
|
|
|
|
|
Definition at line \mbox{\hyperlink{_d_object_8cpp_source_l00053}{53}} of file \mbox{\hyperlink{_d_object_8cpp_source}{DObject.\+cpp}}.
|
|
|
|
\Hypertarget{class_d_object_a6f0023aee463e71d92442dcf61b6ed47}\index{DObject@{DObject}!setDebugging@{setDebugging}}
|
|
\index{setDebugging@{setDebugging}!DObject@{DObject}}
|
|
\doxysubsubsection{\texorpdfstring{setDebugging()}{setDebugging()}}
|
|
{\footnotesize\ttfamily \label{class_d_object_a6f0023aee463e71d92442dcf61b6ed47}
|
|
void DObject\+::set\+Debugging (\begin{DoxyParamCaption}\item[{bool}]{enable\+Debug}{}\end{DoxyParamCaption})}
|
|
|
|
|
|
|
|
Enables or disables debugging and tracing for the \doxylink{class_d_object}{DObject}.
|
|
|
|
When debugging is enabled, the \doxylink{class_d_object}{DObject} tracks creation and modification history.
|
|
|
|
|
|
\begin{DoxyParams}{Parameters}
|
|
{\em enable\+Debug} & True to enable debugging, false to disable it. \\
|
|
\hline
|
|
\end{DoxyParams}
|
|
|
|
|
|
Definition at line \mbox{\hyperlink{_d_object_8cpp_source_l00060}{60}} of file \mbox{\hyperlink{_d_object_8cpp_source}{DObject.\+cpp}}.
|
|
|
|
\Hypertarget{class_d_object_a3dce47a519f9da5085c0c5ac1eea4f38}\index{DObject@{DObject}!setErrorCode@{setErrorCode}}
|
|
\index{setErrorCode@{setErrorCode}!DObject@{DObject}}
|
|
\doxysubsubsection{\texorpdfstring{setErrorCode()}{setErrorCode()}}
|
|
{\footnotesize\ttfamily \label{class_d_object_a3dce47a519f9da5085c0c5ac1eea4f38}
|
|
int DObject\+::set\+Error\+Code (\begin{DoxyParamCaption}\item[{int}]{code}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [noexcept]}}
|
|
|
|
@breif Set error code tracked by the DOBject
|
|
|
|
\begin{DoxyReturn}{Returns}
|
|
The previous error code
|
|
\end{DoxyReturn}
|
|
@breif Sets an error code and returns the old one
|
|
|
|
Definition at line \mbox{\hyperlink{_d_object_8cpp_source_l00074}{74}} of file \mbox{\hyperlink{_d_object_8cpp_source}{DObject.\+cpp}}.
|
|
|
|
\Hypertarget{class_d_object_a99b8688849e11501033a25f61efb8356}\index{DObject@{DObject}!unregisterPlugin@{unregisterPlugin}}
|
|
\index{unregisterPlugin@{unregisterPlugin}!DObject@{DObject}}
|
|
\doxysubsubsection{\texorpdfstring{unregisterPlugin()}{unregisterPlugin()}}
|
|
{\footnotesize\ttfamily \label{class_d_object_a99b8688849e11501033a25f61efb8356}
|
|
void DObject\+::unregister\+Plugin (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{id}{}\end{DoxyParamCaption})}
|
|
|
|
|
|
|
|
Unregisters a plugin by its identifier.
|
|
|
|
Removes the plugin from the registry if it exists.
|
|
|
|
|
|
\begin{DoxyParams}{Parameters}
|
|
{\em id} & The unique identifier of the plugin to unregister. \\
|
|
\hline
|
|
\end{DoxyParams}
|
|
|
|
|
|
Definition at line \mbox{\hyperlink{_d_object_8cpp_source_l00097}{97}} of file \mbox{\hyperlink{_d_object_8cpp_source}{DObject.\+cpp}}.
|
|
|
|
|
|
|
|
\doxysubsection{Friends And Related Symbol Documentation}
|
|
\Hypertarget{class_d_object_aa54e75574f0302a2ca7252f9f0f0b3f1}\index{DObject@{DObject}!operator$<$$<$@{operator$<$$<$}}
|
|
\index{operator$<$$<$@{operator$<$$<$}!DObject@{DObject}}
|
|
\doxysubsubsection{\texorpdfstring{operator$<$$<$}{operator<<}}
|
|
{\footnotesize\ttfamily \label{class_d_object_aa54e75574f0302a2ca7252f9f0f0b3f1}
|
|
std\+::ostream \& operator$<$$<$ (\begin{DoxyParamCaption}\item[{std\+::ostream \&}]{os}{, }\item[{const \mbox{\hyperlink{class_d_object}{DObject}} \&}]{obj}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [friend]}}
|
|
|
|
|
|
|
|
Provides a human-\/readable summary of the \doxylink{class_d_object}{DObject}.
|
|
|
|
Useful for quick inspection or logging during debugging sessions.
|
|
|
|
|
|
\begin{DoxyParams}{Parameters}
|
|
{\em os} & The output stream to write to. \\
|
|
\hline
|
|
{\em obj} & The \doxylink{class_d_object}{DObject} to summarize. \\
|
|
\hline
|
|
\end{DoxyParams}
|
|
\begin{DoxyReturn}{Returns}
|
|
A reference to the output stream.
|
|
\end{DoxyReturn}
|
|
|
|
|
|
Definition at line \mbox{\hyperlink{_d_object_8cpp_source_l00126}{126}} of file \mbox{\hyperlink{_d_object_8cpp_source}{DObject.\+cpp}}.
|
|
|
|
|
|
|
|
\doxysubsection{Member Data Documentation}
|
|
\Hypertarget{class_d_object_ad7ba02f6d87ce64792149096f3310b21}\index{DObject@{DObject}!data\_@{data\_}}
|
|
\index{data\_@{data\_}!DObject@{DObject}}
|
|
\doxysubsubsection{\texorpdfstring{data\_}{data\_}}
|
|
{\footnotesize\ttfamily \label{class_d_object_ad7ba02f6d87ce64792149096f3310b21}
|
|
\mbox{\hyperlink{class_d_object_a55b7cdac36a3a518ba6e1ecef0e25dcd}{Data\+Type}} DObject\+::data\+\_\+\hspace{0.3cm}{\ttfamily [private]}}
|
|
|
|
|
|
|
|
The main data stored in the \doxylink{class_d_object}{DObject}.
|
|
|
|
|
|
|
|
Definition at line \mbox{\hyperlink{_d_object_8h_source_l00251}{251}} of file \mbox{\hyperlink{_d_object_8h_source}{DObject.\+h}}.
|
|
|
|
\Hypertarget{class_d_object_a358d5f015da09ae5f0cbb46f3fd9e401}\index{DObject@{DObject}!dataTypeMap@{dataTypeMap}}
|
|
\index{dataTypeMap@{dataTypeMap}!DObject@{DObject}}
|
|
\doxysubsubsection{\texorpdfstring{dataTypeMap}{dataTypeMap}}
|
|
{\footnotesize\ttfamily \label{class_d_object_a358d5f015da09ae5f0cbb46f3fd9e401}
|
|
std\+::map$<$int, std\+::string$>$ DObject\+::data\+Type\+Map}
|
|
|
|
{\bfseries Initial value\+:}
|
|
\begin{DoxyCode}{0}
|
|
\DoxyCodeLine{=\ \{}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{0,\ \textcolor{stringliteral}{"{}bool"{}}\},\ \{1,\ \textcolor{stringliteral}{"{}short\ int"{}}\},\ \{2,\ \textcolor{stringliteral}{"{}int"{}}\},\ \{3,\ \textcolor{stringliteral}{"{}long\ int"{}}\},\ \{4,\ \textcolor{stringliteral}{"{}float"{}}\},}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{5,\ \textcolor{stringliteral}{"{}double"{}}\},\ \{6,\ \textcolor{stringliteral}{"{}long\ double"{}}\},\ \{7,\ \textcolor{stringliteral}{"{}string"{}}\},\ \{8,\ \textcolor{stringliteral}{"{}std::monostate"{}}\},}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{9,\ \textcolor{stringliteral}{"{}vector<int>"{}}\},\ \{10,\ \textcolor{stringliteral}{"{}vector<float>"{}}\},\ \{11,\ \textcolor{stringliteral}{"{}vector<double>"{}}\},}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{12,\ \textcolor{stringliteral}{"{}vector<string>"{}}\},\ \{13,\ \textcolor{stringliteral}{"{}vector<vector<int>"{}}\},}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{14,\ \textcolor{stringliteral}{"{}vector<vector<float>"{}}\},\ \{15,\ \textcolor{stringliteral}{"{}vector<vector<double>"{}}\},}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{16,\ \textcolor{stringliteral}{"{}vector<vector<vector<int>>"{}}\},\ \{17,\ \textcolor{stringliteral}{"{}vector<vector<vector<float>>"{}}\},}
|
|
\DoxyCodeLine{\ \ \ \ \ \ \ \ \{18,\ \textcolor{stringliteral}{"{}vector<vector<vector<double>>"{}}\}}
|
|
\DoxyCodeLine{\ \ \ \ \}}
|
|
|
|
\end{DoxyCode}
|
|
|
|
|
|
Definition at line \mbox{\hyperlink{_d_object_8h_source_l00109}{109}} of file \mbox{\hyperlink{_d_object_8h_source}{DObject.\+h}}.
|
|
|
|
\Hypertarget{class_d_object_accf5c10d4afc3969607e11b0055312d5}\index{DObject@{DObject}!debugEnabled\_@{debugEnabled\_}}
|
|
\index{debugEnabled\_@{debugEnabled\_}!DObject@{DObject}}
|
|
\doxysubsubsection{\texorpdfstring{debugEnabled\_}{debugEnabled\_}}
|
|
{\footnotesize\ttfamily \label{class_d_object_accf5c10d4afc3969607e11b0055312d5}
|
|
bool DObject\+::debug\+Enabled\+\_\+ = false\hspace{0.3cm}{\ttfamily [private]}}
|
|
|
|
|
|
|
|
Indicates whether debugging is enabled.
|
|
|
|
|
|
|
|
Definition at line \mbox{\hyperlink{_d_object_8h_source_l00252}{252}} of file \mbox{\hyperlink{_d_object_8h_source}{DObject.\+h}}.
|
|
|
|
\Hypertarget{class_d_object_ad8de5890e8dae5fc7e72fabca2520fc3}\index{DObject@{DObject}!errorCode\_@{errorCode\_}}
|
|
\index{errorCode\_@{errorCode\_}!DObject@{DObject}}
|
|
\doxysubsubsection{\texorpdfstring{errorCode\_}{errorCode\_}}
|
|
{\footnotesize\ttfamily \label{class_d_object_ad8de5890e8dae5fc7e72fabca2520fc3}
|
|
int DObject\+::error\+Code\+\_\+ = 0\hspace{0.3cm}{\ttfamily [private]}}
|
|
|
|
|
|
|
|
Error code tracked by the \doxylink{class_d_object}{DObject}.
|
|
|
|
|
|
|
|
Definition at line \mbox{\hyperlink{_d_object_8h_source_l00253}{253}} of file \mbox{\hyperlink{_d_object_8h_source}{DObject.\+h}}.
|
|
|
|
\Hypertarget{class_d_object_ae9f7e4d2fbabc076961a40185676e208}\index{DObject@{DObject}!plugins\_@{plugins\_}}
|
|
\index{plugins\_@{plugins\_}!DObject@{DObject}}
|
|
\doxysubsubsection{\texorpdfstring{plugins\_}{plugins\_}}
|
|
{\footnotesize\ttfamily \label{class_d_object_ae9f7e4d2fbabc076961a40185676e208}
|
|
std\+::map$<$std\+::string, \mbox{\hyperlink{class_d_object_af11334d08ef85c68b3aae7554548e5a7}{Plugin}}$>$ DObject\+::plugins\+\_\+\hspace{0.3cm}{\ttfamily [private]}}
|
|
|
|
|
|
|
|
Registry for dynamically registered plugins.
|
|
|
|
|
|
|
|
Definition at line \mbox{\hyperlink{_d_object_8h_source_l00254}{254}} of file \mbox{\hyperlink{_d_object_8h_source}{DObject.\+h}}.
|
|
|
|
|
|
|
|
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
|
|
\item
|
|
src/dobj/public/\mbox{\hyperlink{_d_object_8h}{DObject.\+h}}\item
|
|
src/dobj/private/\mbox{\hyperlink{_d_object_8cpp}{DObject.\+cpp}}\end{DoxyCompactItemize}
|