From 66fe7376737aac50bac4e080b6a71ecddfb553ad Mon Sep 17 00:00:00 2001 From: set Date: Fri, 28 Aug 2020 15:10:57 +0200 Subject: make description function pointer, so move should leave it be (hopefully) --- include/Handler.hpp | 8 ++++---- src/Handler.cpp | 4 ++-- src/main.cpp | 10 +++++----- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/include/Handler.hpp b/include/Handler.hpp index 37f281c..1ae84d1 100644 --- a/include/Handler.hpp +++ b/include/Handler.hpp @@ -14,7 +14,7 @@ namespace Handler { typedef std::function()> description_function; struct CommandHandler { - CommandHandler(std::string command, handler_function func, description_function desc, void *payload = nullptr); + CommandHandler(std::string command, handler_function *func, description_function *desc, void *payload = nullptr); CommandHandler(CommandHandler &&o) noexcept { command = std::move(o.command); @@ -26,10 +26,10 @@ namespace Handler { [[nodiscard]] json exec(std::string const &arguments, std::string const &session) const; std::string command; - handler_function func{nullptr}; - description_function get_description{nullptr}; + handler_function *func{nullptr}; + description_function *get_description{nullptr}; void *payload{nullptr}; }; std::vector tokenizeArguments(std::string const &arguments, std::string const &delimiter = " "); -} \ No newline at end of file +} diff --git a/src/Handler.cpp b/src/Handler.cpp index a26ee8a..f2492fc 100644 --- a/src/Handler.cpp +++ b/src/Handler.cpp @@ -19,6 +19,6 @@ Handler::json Handler::CommandHandler::exec(const std::string &arguments, const return func(arguments, session, payload); } -Handler::CommandHandler::CommandHandler(std::string command, Handler::handler_function func, description_function desc, +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} {} + : command{std::move(command)}, func{func}, get_description{desc}, payload{payload} {} diff --git a/src/main.cpp b/src/main.cpp index 8a8e4ba..b1c71e7 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -27,24 +27,24 @@ int main() { // command --> handler std::vector commands; commands.emplace_back( - Handler::CommandHandler{"wiki", Handler::wikiHandler, [createPlainDescriptionFromText]() { + Handler::CommandHandler{"wiki", &Handler::wikiHandler, [createPlainDescriptionFromText]() { return createPlainDescriptionFromText("Sends you to Wikipedia!"); }}); commands.emplace_back( - Handler::CommandHandler{"stop", Handler::stopHandler, [createPlainDescriptionFromText]() { + Handler::CommandHandler{"stop", &Handler::stopHandler, [createPlainDescriptionFromText]() { return createPlainDescriptionFromText("Stops the bot"); }, &app}); commands.emplace_back( - Handler::CommandHandler{"mensa", Handler::mensaHandler, [createPlainDescriptionFromText]() { + Handler::CommandHandler{"mensa", &Handler::mensaHandler, [createPlainDescriptionFromText]() { return createPlainDescriptionFromText( "{adlershof, nord, sued} Shows the daily menu of the mensa at various places."); }}); commands.emplace_back( - Handler::CommandHandler{"klinger", Handler::klingerHandler, [createPlainDescriptionFromText]() { + Handler::CommandHandler{"klinger", &Handler::klingerHandler, [createPlainDescriptionFromText]() { return createPlainDescriptionFromText("Greats in french. Bonjour!"); }}); commands.emplace_back( - Handler::CommandHandler{"say", Handler::sayHandler, [createPlainDescriptionFromText]() { + Handler::CommandHandler{"say", &Handler::sayHandler, [createPlainDescriptionFromText]() { return createPlainDescriptionFromText("Say something!"); }}); commands.emplace_back( -- cgit v1.2.3-54-g00ecf