diff options
author | Niklas Halle <niklas@niklashalle.net> | 2020-08-26 14:38:20 +0200 |
---|---|---|
committer | Niklas Halle <niklas@niklashalle.net> | 2020-08-26 14:38:20 +0200 |
commit | afdd7e9b69b26aa7fadb65a0da6aa9a21341bc4c (patch) | |
tree | 44fea26701a3258f50500af1b3fb91b84d23ecb8 /src/Handler.cpp | |
parent | e78a940d37e8ab614fd566ee840d00fbaa577c40 (diff) | |
download | n_core-afdd7e9b69b26aa7fadb65a0da6aa9a21341bc4c.tar.gz n_core-afdd7e9b69b26aa7fadb65a0da6aa9a21341bc4c.zip |
:(
Diffstat (limited to 'src/Handler.cpp')
-rw-r--r-- | src/Handler.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/Handler.cpp b/src/Handler.cpp index 1c0cd12..b5ed9f0 100644 --- a/src/Handler.cpp +++ b/src/Handler.cpp @@ -14,3 +14,19 @@ 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} {} |