diff options
Diffstat (limited to 'rotord/src')
| -rwxr-xr-x | rotord/src/rotor.h | 10 | ||||
| -rwxr-xr-x | rotord/src/rotord.cpp | 10 |
2 files changed, 20 insertions, 0 deletions
diff --git a/rotord/src/rotor.h b/rotord/src/rotor.h index 8e37b51..e4207b3 100755 --- a/rotord/src/rotor.h +++ b/rotord/src/rotor.h @@ -1138,6 +1138,16 @@ namespace Rotor { } return NULL; }; + void list_nodes(xmlIO XML){ + int i=0; + for (auto& type: type_map) { //c++11 + XML.addTag("node"); + XML.addAttribute("node","name",type.first,i); + if (dynamic_cast<Signal_node*> (type.second)!=nullptr) XML.addAttribute("node","type","signal",i); + if (dynamic_cast<Image_node*> (type.second)!=nullptr) XML.addAttribute("node","type","image",i); + i++; + } + } private: unordered_map<string,Node*> type_map; }; diff --git a/rotord/src/rotord.cpp b/rotord/src/rotord.cpp index 6f2d765..fefca8e 100755 --- a/rotord/src/rotord.cpp +++ b/rotord/src/rotord.cpp @@ -1,5 +1,7 @@ #include "rotord.h" +using namespace Rotor; + RenderContextHandler::RenderContextHandler(const std::string _content,const HTTPServerResponse::HTTPStatus _status){ content=_content; status=_status; @@ -98,6 +100,14 @@ HTTPRequestHandler* RotorRequestHandlerFactory::createRequestHandler(const HTTPS status=HTTPResponse::HTTP_OK; } } + else if (command[0]=="listnodes") { + XML.pushTag("rotor"); + if (request.getMethod()=="GET") { + Node_factory factory; + factory.list_nodes(XML); + status=HTTPResponse::HTTP_OK; + } + } else if (command[0]=="exit") { logger.information("exiting"); exit(0); |
