/* Capabilities. * * Author: Steffen Vogel * SPDX-FileCopyrightText: 2014-2023 Institute for Automation of Complex Power Systems, RWTH Aachen University * SPDX-License-Identifier: Apache-2.0 */ #include #include #include #include #include using namespace villas; using namespace villas::node; json_t *villas::node::getCapabilities() { json_t *json_hooks = json_array(); json_t *json_apis = json_array(); json_t *json_nodes = json_array(); json_t *json_formats = json_array(); json_t *json_name; for (auto p : plugin::registry->lookup()) { json_name = json_string(p->getName().c_str()); json_array_append_new(json_apis, json_name); } for (auto p : plugin::registry->lookup()) { json_name = json_string(p->getName().c_str()); json_array_append_new(json_hooks, json_name); } for (auto p : plugin::registry->lookup()) { json_name = json_string(p->getName().c_str()); json_array_append_new(json_formats, json_name); } for (auto f : plugin::registry->lookup()) { if (f->isInternal()) continue; json_name = json_string(f->getName().c_str()); json_array_append_new(json_nodes, json_name); } return json_pack("{ s: o, s: o, s: o, s: o }", "hooks", json_hooks, "nodes", json_nodes, "apis", json_apis, "formats", json_formats); }