From afdd7e9b69b26aa7fadb65a0da6aa9a21341bc4c Mon Sep 17 00:00:00 2001 From: Niklas Halle Date: Wed, 26 Aug 2020 14:38:20 +0200 Subject: :( --- include/Handler.hpp | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) (limited to 'include') diff --git a/include/Handler.hpp b/include/Handler.hpp index 63efa5d..7bbefcd 100644 --- a/include/Handler.hpp +++ b/include/Handler.hpp @@ -13,30 +13,16 @@ namespace Handler { void *payload)> handler_function; struct CommandHandler { - CommandHandler(std::string command, handler_function func, std::vector *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 { - command = std::move(o.command); - func = std::move(o.func); - description = o.description; - o.description = nullptr; - payload = o.payload; - o.payload = nullptr; - } - - [[nodiscard]] json exec(std::string const &arguments, std::string const &session) const { - return func(arguments, session, payload); - } + CommandHandler(std::string command, handler_function func, std::vector *description, + void *payload = nullptr); + + CommandHandler(CommandHandler &&o) noexcept; + + [[nodiscard]] json exec(std::string const &arguments, std::string const &session) const; std::string command; handler_function func{nullptr}; - // handler takes ownership of the description, using it after passing is unsafe + // handler does NOT take ownership of the description, you have to delete it - after this object is destroyed std::vector *description{nullptr}; void *payload{nullptr}; }; -- cgit v1.2.3-54-g00ecf