diff --git a/common/include/villas/plugin.hpp b/common/include/villas/plugin.hpp index 5fb763f2a..0dbb98ecb 100644 --- a/common/include/villas/plugin.hpp +++ b/common/include/villas/plugin.hpp @@ -24,6 +24,7 @@ #pragma once +#include #include #include #include @@ -53,7 +54,8 @@ public: return logging.get("plugin:registry"); } - static void add(Plugin *p) + static void + add(Plugin *p) { if (plugins == nullptr) plugins = new List<>; @@ -61,7 +63,8 @@ public: plugins->push_back(p); } - static void remove(Plugin *p) + static void + remove(Plugin *p) { plugins->remove(p); } @@ -95,6 +98,10 @@ public: return list; } + + template + static void + dumpList(); }; class Loader { @@ -135,5 +142,16 @@ protected: } }; +template +void +Registry::dumpList() +{ + for (Plugin *p : *plugins) { + T *t = dynamic_cast(p); + if (t) + std::cout << " - " << p->getName() << ": " << p->getDescription() << std::endl; + } +} + } /* namespace plugin */ } /* namespace villas */