aboutsummaryrefslogtreecommitdiffstats
path: root/src/Handler.cpp
diff options
context:
space:
mode:
authorNiklas Halle <niklas@niklashalle.net>2020-08-26 17:19:19 +0200
committerNiklas Halle <niklas@niklashalle.net>2020-08-26 17:19:19 +0200
commitc5ea2cf0d741e7ced6bd32e4a013a21be3755394 (patch)
tree55e7da929f3956a90b12f67e45155a09824b949a /src/Handler.cpp
parent83572f021f3b23a9046f1988e6e0443ed6295df3 (diff)
downloadn_core-c5ea2cf0d741e7ced6bd32e4a013a21be3755394.tar.gz
n_core-c5ea2cf0d741e7ced6bd32e4a013a21be3755394.zip
more indirection always helps, right?test/new_server
Diffstat (limited to 'src/Handler.cpp')
-rw-r--r--src/Handler.cpp14
1 files changed, 3 insertions, 11 deletions
diff --git a/src/Handler.cpp b/src/Handler.cpp
index b5ed9f0..a26ee8a 100644
--- a/src/Handler.cpp
+++ b/src/Handler.cpp
@@ -15,18 +15,10 @@ std::vector<std::string> Handler::tokenizeArguments(const std::string &arguments
return tokens;
}
-Handler::CommandHandler::CommandHandler(Handler::CommandHandler &&o) noexcept {
- // this is a copy constructor, disguised as a move constructor.. I am sorry
- command = o.command;
- func = o.func;
- description = o.description; // this is the main problem, any "moved" object will point to the same description TODO: maybe smart pointer can help?
- payload = o.payload;
-}
-
Handler::json Handler::CommandHandler::exec(const std::string &arguments, const std::string &session) const {
return func(arguments, session, payload);
}
-Handler::CommandHandler::CommandHandler(std::string command, Handler::handler_function func,
- std::vector<json> *description, void *payload)
- : command{std::move(command)}, func{std::move(func)}, description{description}, payload{payload} {}
+Handler::CommandHandler::CommandHandler(std::string command, Handler::handler_function func, description_function desc,
+ void *payload)
+ : command{std::move(command)}, func{std::move(func)}, get_description{std::move(desc)}, payload{payload} {}