2025-01-19 12:24:13 -05:00
\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
2025-06-11 11:41:55 -04:00
using \mbox { \hyperlink { class_ d_ object_ a55b7cdac36a3a518ba6e1ecef0e25dcd} { Data\+ Type} }
2025-01-19 12:24:13 -05:00
\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
2025-06-11 11:41:55 -04:00
\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
2025-01-19 12:24:13 -05:00
\begin { DoxyCompactList} \small \item \em Retrieves the data stored in the \doxylink { class_ d_ object} { DObject} . \end { DoxyCompactList} \item
2025-06-11 11:41:55 -04:00
{ \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)
2025-01-19 12:24:13 -05:00
\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
2025-06-11 11:41:55 -04:00
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
2025-01-19 12:24:13 -05:00
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}
2025-06-11 11:41:55 -04:00
\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}
2025-01-19 12:24:13 -05:00
\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.
2025-06-11 11:41:55 -04:00
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} } .
2025-01-19 12:24:13 -05:00
\doxysubsection { Member Typedef Documentation}
2025-06-11 11:41:55 -04:00
\Hypertarget { class_ d_ object_ a55b7cdac36a3a518ba6e1ecef0e25dcd} \index { DObject@{ DObject} !DataType@{ DataType} }
2025-01-19 12:24:13 -05:00
\index { DataType@{ DataType} !DObject@{ DObject} }
\doxysubsubsection { \texorpdfstring { DataType} { DataType} }
2025-06-11 11:41:55 -04:00
{ \footnotesize \ttfamily \label { class_ d_ object_ a55b7cdac36a3a518ba6e1ecef0e25dcd}
using \mbox { \hyperlink { class_ d_ object_ a55b7cdac36a3a518ba6e1ecef0e25dcd} { DObject\+ ::\+ Data\+ Type} } }
2025-01-19 12:24:13 -05:00
{ \bfseries Initial value\+ :}
\begin { DoxyCode} { 0}
\DoxyCodeLine { \ std::variant<}
2025-06-11 11:41:55 -04:00
\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>>>}
2025-01-19 12:24:13 -05:00
\DoxyCodeLine { \ \ \ \ >}
\end { DoxyCode}
Supported data types for the \doxylink { class_ d_ object} { DObject} .
2025-06-11 11:41:55 -04:00
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} }
2025-01-19 12:24:13 -05:00
\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.
2025-06-11 11:41:55 -04:00
Definition at line \mbox { \hyperlink { _ d_ object_ 8h_ source_ l00125} { 125} } of file \mbox { \hyperlink { _ d_ object_ 8h_ source} { DObject.\+ h} } .
2025-01-19 12:24:13 -05:00
\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.
2025-06-11 11:41:55 -04:00
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} }
2025-01-19 12:24:13 -05:00
\index { DObject@{ DObject} !DObject@{ DObject} }
\doxysubsubsection { \texorpdfstring { DObject()} { DObject()} \hspace { 0.1cm} { \footnotesize \ttfamily [2/2]} }
2025-06-11 11:41:55 -04:00
{ \footnotesize \ttfamily \label { class_ d_ object_ a598321f3b8524b98df72393c04d7470c}
DObject\+ ::\+ DObject (\begin { DoxyParamCaption} \item [{const \mbox{\hyperlink{class_d_object_a55b7cdac36a3a518ba6e1ecef0e25dcd}{Data\+Type}} \&}] { data} { } \end { DoxyParamCaption} )}
2025-01-19 12:24:13 -05:00
2025-06-11 11:41:55 -04:00
Constructor to initialize a \doxylink { class_ d_ object} { DObject} with data.
2025-01-19 12:24:13 -05:00
\begin { DoxyParams} { Parameters}
{ \em data} & The data to be stored in the \doxylink { class_ d_ object} { DObject} . \\
\hline
\end { DoxyParams}
2025-06-11 11:41:55 -04:00
Definition at line \mbox { \hyperlink { _ d_ object_ 8cpp_ source_ l00040} { 40} } of file \mbox { \hyperlink { _ d_ object_ 8cpp_ source} { DObject.\+ cpp} } .
2025-01-19 12:24:13 -05:00
\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}
2025-06-11 11:41:55 -04:00
const \mbox { \hyperlink { class_ d_ object_ a55b7cdac36a3a518ba6e1ecef0e25dcd} { DObject\+ ::\+ Data\+ Type} } \& DObject\+ ::get\+ Data (\begin { DoxyParamCaption} { } { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [noexcept]} }
2025-01-19 12:24:13 -05:00
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}
2025-06-11 11:41:55 -04:00
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]} }
2025-01-19 12:24:13 -05:00
2025-06-11 11:41:55 -04:00
Retrieves the data stored in the \doxylink { class_ d_ object} { DObject} as a typed object so that std\+ ::get$ < $ \+ T$ > $ () is not needed.
2025-01-19 12:24:13 -05:00
\begin { DoxyReturn} { Returns}
2025-06-11 11:41:55 -04:00
Data as type T
2025-01-19 12:24:13 -05:00
\end { DoxyReturn}
2025-06-11 11:41:55 -04:00
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} } .
2025-01-19 12:24:13 -05:00
\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}
2025-06-11 11:41:55 -04:00
bool DObject\+ ::is\+ Debugging\+ Enabled (\begin { DoxyParamCaption} { } { } \end { DoxyParamCaption} ) const\hspace { 0.3cm} { \ttfamily [noexcept]} }
2025-01-19 12:24:13 -05:00
Checks if debugging is enabled for the \doxylink { class_ d_ object} { DObject} .
\begin { DoxyReturn} { Returns}
True if debugging is enabled, false otherwise.
\end { DoxyReturn}
2025-06-11 11:41:55 -04:00
Definition at line \mbox { \hyperlink { _ d_ object_ 8cpp_ source_ l00067} { 67} } of file \mbox { \hyperlink { _ d_ object_ 8cpp_ source} { DObject.\+ cpp} } .
2025-01-19 12:24:13 -05:00
\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}
2025-06-11 11:41:55 -04:00
Definition at line \mbox { \hyperlink { _ d_ object_ 8cpp_ source_ l00087} { 87} } of file \mbox { \hyperlink { _ d_ object_ 8cpp_ source} { DObject.\+ cpp} } .
2025-01-19 12:24:13 -05:00
\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.
2025-06-11 11:41:55 -04:00
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} }
2025-01-19 12:24:13 -05:00
\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}
2025-06-11 11:41:55 -04:00
Definition at line \mbox { \hyperlink { _ d_ object_ 8cpp_ source_ l00106} { 106} } of file \mbox { \hyperlink { _ d_ object_ 8cpp_ source} { DObject.\+ cpp} } .
2025-01-19 12:24:13 -05:00
\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}
2025-06-11 11:41:55 -04:00
void DObject\+ ::set\+ Data (\begin { DoxyParamCaption} \item [{const \mbox{\hyperlink{class_d_object_a55b7cdac36a3a518ba6e1ecef0e25dcd}{Data\+Type}} \&}] { data} { } \end { DoxyParamCaption} )}
2025-01-19 12:24:13 -05:00
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}
2025-06-11 11:41:55 -04:00
Definition at line \mbox { \hyperlink { _ d_ object_ 8cpp_ source_ l00053} { 53} } of file \mbox { \hyperlink { _ d_ object_ 8cpp_ source} { DObject.\+ cpp} } .
2025-01-19 12:24:13 -05:00
\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}
2025-06-11 11:41:55 -04:00
Definition at line \mbox { \hyperlink { _ d_ object_ 8cpp_ source_ l00060} { 60} } of file \mbox { \hyperlink { _ d_ object_ 8cpp_ source} { DObject.\+ cpp} } .
2025-01-19 12:24:13 -05:00
2025-06-11 11:41:55 -04:00
\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]} }
2025-01-19 12:24:13 -05:00
2025-06-11 11:41:55 -04:00
@breif Set error code tracked by the DOBject
2025-01-19 12:24:13 -05:00
2025-06-11 11:41:55 -04:00
\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} } .
2025-01-19 12:24:13 -05:00
\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}
2025-06-11 11:41:55 -04:00
Definition at line \mbox { \hyperlink { _ d_ object_ 8cpp_ source_ l00097} { 97} } of file \mbox { \hyperlink { _ d_ object_ 8cpp_ source} { DObject.\+ cpp} } .
2025-01-19 12:24:13 -05:00
\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}
2025-06-11 11:41:55 -04:00
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} } .
2025-01-19 12:24:13 -05:00
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}