From e08ebfaf2c70ab2c8425e7211e5b78ae2b6b73a3 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Fri, 16 Oct 2020 11:40:30 +0200 Subject: [PATCH] api: list supported node-types and IO formats in capabilities --- lib/api/requests/capabiltities.cpp | 17 +++++++++++++++++ src/villas-node.cpp | 8 ++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/lib/api/requests/capabiltities.cpp b/lib/api/requests/capabiltities.cpp index c4b71240d..5a6965d3c 100644 --- a/lib/api/requests/capabiltities.cpp +++ b/lib/api/requests/capabiltities.cpp @@ -60,6 +60,23 @@ public: json_array_append_new(json_hooks, json_name); } + for (size_t i = 0; i < vlist_length(&plugins); i++) { + struct plugin *p = (struct plugin *) vlist_at(&plugins, i); + + json_t *json_name; + switch(p->type) { + case PluginType::NODE: + json_name = json_string(p->name); + json_array_append_new(json_nodes, json_name); + break; + + case PluginType::FORMAT: + json_name = json_string(p->name); + json_array_append_new(json_formats, json_name); + break; + } + } + #if 0 /* @todo Port to C++ */ for (auto f : NodeFactory::lookup()) { json_name = json_string(f->getName().c_str()); diff --git a/src/villas-node.cpp b/src/villas-node.cpp index 61283983e..3671696b7 100644 --- a/src/villas-node.cpp +++ b/src/villas-node.cpp @@ -105,6 +105,10 @@ protected: plugin_dump(PluginType::NODE); std::cout << std::endl; + std::cout << "Supported IO formats:" << std::endl; + plugin_dump(PluginType::FORMAT); + std::cout << std::endl; + #ifdef WITH_HOOKS std::cout << "Supported hooks:" << std::endl; for (Plugin *p : Registry::lookup()) @@ -119,10 +123,6 @@ protected: std::cout << std::endl; #endif /* WITH_API */ - std::cout << "Supported IO formats:" << std::endl; - plugin_dump(PluginType::FORMAT); - std::cout << std::endl; - printCopyright(); }