aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNiklas Halle <niklas@niklashalle.net>2020-08-26 12:31:23 +0200
committerNiklas Halle <niklas@niklashalle.net>2020-08-26 12:31:23 +0200
commite78a940d37e8ab614fd566ee840d00fbaa577c40 (patch)
treec2507e212f482ddb7fef9c946d6f20aaf7780059
parent36c2918c9980a343a50921e9f3443f39db82b7a2 (diff)
downloadn_core-e78a940d37e8ab614fd566ee840d00fbaa577c40.tar.gz
n_core-e78a940d37e8ab614fd566ee840d00fbaa577c40.zip
fix description being an extra field of command annotation
-rw-r--r--include/Handler.hpp6
-rw-r--r--src/SimpleHandlers.cpp6
-rw-r--r--src/main.cpp8
3 files changed, 8 insertions, 12 deletions
diff --git a/include/Handler.hpp b/include/Handler.hpp
index b84315d..63efa5d 100644
--- a/include/Handler.hpp
+++ b/include/Handler.hpp
@@ -1,7 +1,7 @@
#pragma once
-#include <queue>
#include <string>
+#include <vector>
#include <functional>
#include <utility>
@@ -13,7 +13,7 @@ namespace Handler {
void *payload)> handler_function;
struct CommandHandler {
- CommandHandler(std::string command, handler_function func, std::queue<json> *description, void *payload = nullptr)
+ CommandHandler(std::string command, handler_function func, std::vector<json> *description, void *payload = nullptr)
: command{std::move(command)}, func{std::move(func)}, description{description}, payload{payload} {}
~CommandHandler() {
@@ -37,7 +37,7 @@ namespace Handler {
std::string command;
handler_function func{nullptr};
// handler takes ownership of the description, using it after passing is unsafe
- std::queue<json> *description{nullptr};
+ std::vector<json> *description{nullptr};
void *payload{nullptr};
};
diff --git a/src/SimpleHandlers.cpp b/src/SimpleHandlers.cpp
index 40cfa68..0ebdd79 100644
--- a/src/SimpleHandlers.cpp
+++ b/src/SimpleHandlers.cpp
@@ -36,14 +36,10 @@ Handler::json Handler::helpHandler(std::string const &arguments, std::string con
for (auto const &itor : *commands) {
std::vector<json> commandAnnotations;
- commandAnnotations.emplace_back(create_annotation(Reply::AnnotationType::command));
+ commandAnnotations.emplace_back(create_annotation(Reply::AnnotationType::command, std::move(*itor.description)));
reply_vec.emplace_back(create_text("- "));
reply_vec.emplace_back(create_text(itor.command, std::move(commandAnnotations)));
- while (!itor.description->empty()) {
- reply_vec.emplace_back(std::move(itor.description->back()));
- itor.description->pop();
- }
}
reply_vec.emplace_back(create_text(
diff --git a/src/main.cpp b/src/main.cpp
index 8e0b442..8289584 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -19,10 +19,10 @@
int main() {
crow::SimpleApp app;
- auto createPlainDescriptionFromText = [](std::string const &text) -> std::queue<crow::json::wvalue> * {
- auto reply_queue = new std::queue<crow::json::wvalue>;
- reply_queue->emplace(Response::create_text(text));
- return reply_queue;
+ auto createPlainDescriptionFromText = [](std::string const &text) -> std::vector<crow::json::wvalue> * {
+ auto reply_vector = new std::vector<crow::json::wvalue>;
+ reply_vector->emplace_back(Response::create_text(text));
+ return reply_vector;
};
// command --> handler