From 1efd8ab1b4d4a2b1c8236aee33f51d960964c20b Mon Sep 17 00:00:00 2001 From: Niklas Halle Date: Wed, 26 Aug 2020 12:00:21 +0200 Subject: fixes (i hope) --- include/Handler.hpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'include/Handler.hpp') diff --git a/include/Handler.hpp b/include/Handler.hpp index 3aed302..3328d91 100644 --- a/include/Handler.hpp +++ b/include/Handler.hpp @@ -3,6 +3,7 @@ #include #include #include +#include #include "crow.h" @@ -12,14 +13,26 @@ namespace Handler { void *payload)> handler_function; struct CommandHandler { + CommandHandler(std::string command, handler_function func, std::queue *description, void *payload = nullptr) + : command{std::move(command)}, func{std::move(func)}, description{description}, payload{payload} {} + ~CommandHandler() { delete description; + description = nullptr; + } + + CommandHandler(CommandHandler &&o) noexcept { + func = o.func; + description = o.description; + o.description = nullptr; + payload = o.payload; } [[nodiscard]] json exec(std::string const &arguments, std::string const &session) const { return func(arguments, session, payload); } + std::string command; handler_function func{nullptr}; // handler takes ownership of the description, using it after passing is unsafe std::queue *description{nullptr}; -- cgit v1.2.3-54-g00ecf