aboutsummaryrefslogtreecommitdiffstats
path: root/include/Handler.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/Handler.hpp')
-rw-r--r--include/Handler.hpp28
1 files changed, 7 insertions, 21 deletions
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<json> *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<json> *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<json> *description{nullptr};
void *payload{nullptr};
};