\doxysection{DObject.\+h} \hypertarget{_d_object_8h_source}{}\label{_d_object_8h_source}\index{src/dobj/public/DObject.h@{src/dobj/public/DObject.h}} \mbox{\hyperlink{_d_object_8h}{Go to the documentation of this file.}} \begin{DoxyCode}{0} \DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ DOBJECT\_H}} \DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ DOBJECT\_H}} \DoxyCodeLine{00003\ } \DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}\mbox{\hyperlink{_metadata_8h}{Metadata.h}}"{}}} \DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ }} \DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ }} \DoxyCodeLine{00007\ \textcolor{preprocessor}{\#include\ }} \DoxyCodeLine{00008\ \textcolor{preprocessor}{\#include\ }} \DoxyCodeLine{00009\ \textcolor{preprocessor}{\#include\ }} \DoxyCodeLine{00010\ \textcolor{preprocessor}{\#include\ }} \DoxyCodeLine{00011\ \textcolor{preprocessor}{\#include\ }} \DoxyCodeLine{00012\ } \DoxyCodeLine{00021\ } \DoxyCodeLine{00029\ \textcolor{keyword}{class\ }\mbox{\hyperlink{class_d_object_a0ae54853e18265657296bfb5ac3bf9d0}{DObject}}\ \{} \DoxyCodeLine{00030\ \textcolor{keyword}{public}:} \DoxyCodeLine{00037\ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{class_d_object_ad6fc2e29eae70cf94a2d241527857573}{DataType}}\ =\ std::variant<} \DoxyCodeLine{00038\ \ \ \ \ \ \ \ \ int,\ float,\ double,\ std::string,\ std::monostate,} \DoxyCodeLine{00039\ \ \ \ \ \ \ \ \ std::vector,\ std::vector,\ std::vector} \DoxyCodeLine{00040\ \ \ \ \ >;} \DoxyCodeLine{00041\ } \DoxyCodeLine{00047\ \ \ \ \ \textcolor{keyword}{using\ }\mbox{\hyperlink{class_d_object_af11334d08ef85c68b3aae7554548e5a7}{Plugin}}\ =\ std::function;} \DoxyCodeLine{00048\ } \DoxyCodeLine{00054\ \ \ \ \ \mbox{\hyperlink{class_d_object_a0ae54853e18265657296bfb5ac3bf9d0}{DObject}}();} \DoxyCodeLine{00055\ } \DoxyCodeLine{00062\ \ \ \ \ \mbox{\hyperlink{class_d_object_a0ae54853e18265657296bfb5ac3bf9d0}{DObject}}(\textcolor{keyword}{const}\ \mbox{\hyperlink{class_d_object_ad6fc2e29eae70cf94a2d241527857573}{DataType}}\&\ data,\ \textcolor{keyword}{const}\ \mbox{\hyperlink{class_metadata}{Metadata}}\&\ metadata);} \DoxyCodeLine{00063\ } \DoxyCodeLine{00071\ \ \ \ \ \textcolor{keyword}{const}\ \mbox{\hyperlink{class_d_object_ad6fc2e29eae70cf94a2d241527857573}{DataType}}\&\ \mbox{\hyperlink{class_d_object_a4862655c3634d019b0a45b811d6f7235}{getData}}()\ const\ noexcept;} \DoxyCodeLine{00072\ } \DoxyCodeLine{00080\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{class_d_object_ab1718571434e84e90f1ec463e4786a8a}{setData}}(const\ \mbox{\hyperlink{class_d_object_ad6fc2e29eae70cf94a2d241527857573}{DataType}}\&\ data);} \DoxyCodeLine{00081\ } \DoxyCodeLine{00090\ \ \ \ \ const\ \mbox{\hyperlink{class_metadata}{Metadata}}\&\ \mbox{\hyperlink{class_d_object_a157b31e881aac6dd40782d3abc561d4e}{getMetadata}}()\ const\ noexcept;} \DoxyCodeLine{00091\ } \DoxyCodeLine{00099\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{class_d_object_a296b1519249fdc1f6c7b4ab62d5421bc}{setMetadata}}(const\ \mbox{\hyperlink{class_metadata}{Metadata}}\&\ metadata);} \DoxyCodeLine{00100\ } \DoxyCodeLine{00108\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{class_d_object_a6f0023aee463e71d92442dcf61b6ed47}{setDebugging}}(\textcolor{keywordtype}{bool}\ enableDebug);} \DoxyCodeLine{00109\ } \DoxyCodeLine{00115\ \ \ \ \ [[nodiscard]]\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{class_d_object_ae47bf220fbe2173cf6933c2380035dbd}{isDebuggingEnabled}}()\ const\ noexcept;} \DoxyCodeLine{00116\ } \DoxyCodeLine{00125\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{class_d_object_a15afffdf339150fc872bf63bdd08d581}{registerPlugin}}(const\ std::\textcolor{keywordtype}{string}\&\ \textcolor{keywordtype}{id},\ \mbox{\hyperlink{class_d_object_af11334d08ef85c68b3aae7554548e5a7}{Plugin}}\ plugin);} \DoxyCodeLine{00126\ } \DoxyCodeLine{00134\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{class_d_object_a99b8688849e11501033a25f61efb8356}{unregisterPlugin}}(const\ std::\textcolor{keywordtype}{string}\&\ \textcolor{keywordtype}{id});} \DoxyCodeLine{00135\ } \DoxyCodeLine{00143\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{class_d_object_a99072eb52bb22745f0248f273fbf28fb}{runPlugin}}(const\ std::\textcolor{keywordtype}{string}\&\ \textcolor{keywordtype}{id});} \DoxyCodeLine{00144\ } \DoxyCodeLine{00150\ \ \ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{class_d_object_a1223275dcbbf20334ea11707346acb93}{runAllPlugins}}();} \DoxyCodeLine{00151\ } \DoxyCodeLine{00161\ \ \ \ \ friend\ std::ostream\&\ operator<<(std::ostream\&\ os,\ const\ \mbox{\hyperlink{class_d_object_a0ae54853e18265657296bfb5ac3bf9d0}{DObject}}\&\ obj);} \DoxyCodeLine{00162\ } \DoxyCodeLine{00163\ private:} \DoxyCodeLine{00164\ \ \ \ \ \mbox{\hyperlink{class_d_object_ad6fc2e29eae70cf94a2d241527857573}{DataType}}\ data\_;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ } \DoxyCodeLine{00165\ \ \ \ \ \mbox{\hyperlink{class_metadata}{Metadata}}\ metadata\_;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ } \DoxyCodeLine{00166\ \ \ \ \ \textcolor{keywordtype}{bool}\ debugEnabled\_\ =\ false;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ } \DoxyCodeLine{00167\ \ \ \ \ std::map\ plugins\_;\ \ \ \ \ \ } \DoxyCodeLine{00168\ \};} \DoxyCodeLine{00169\ } \DoxyCodeLine{00170\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ DOBJECT\_H}} \end{DoxyCode}