aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNiklas Halle <niklas@niklashalle.net>2020-08-28 20:22:40 +0200
committerNiklas Halle <niklas@niklashalle.net>2020-08-28 20:22:40 +0200
commit7a03c9340b6b53c2505c7cd26fa3aede0cf14603 (patch)
tree34fd1f2ce8eb73e0492edb5370f25022eb66d5eb
parentda8246e8efece2397440a59c6011c4f832baa7b8 (diff)
downloadn_core-7a03c9340b6b53c2505c7cd26fa3aede0cf14603.tar.gz
n_core-7a03c9340b6b53c2505c7cd26fa3aede0cf14603.zip
-rw-r--r--include/Handler.hpp13
-rw-r--r--src/Handler.cpp9
-rw-r--r--src/main.cpp10
3 files changed, 17 insertions, 15 deletions
diff --git a/include/Handler.hpp b/include/Handler.hpp
index 1ae84d1..c22abe5 100644
--- a/include/Handler.hpp
+++ b/include/Handler.hpp
@@ -14,20 +14,15 @@ namespace Handler {
typedef std::function<std::vector<json>()> 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);
- func = std::move(o.func);
- get_description = std::move(get_description);
- payload = o.payload;
- };
+ CommandHandler(CommandHandler &&o) noexcept;
[[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};
};
diff --git a/src/Handler.cpp b/src/Handler.cpp
index f2492fc..9f8bc4f 100644
--- a/src/Handler.cpp
+++ b/src/Handler.cpp
@@ -19,6 +19,13 @@ 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{func}, get_description{desc}, payload{payload} {}
+
+Handler::CommandHandler::CommandHandler(Handler::CommandHandler &&o) noexcept {
+ command = o.command;
+ func = o.func;
+ get_description = o.get_description;
+ payload = o.payload;
+}
diff --git a/src/main.cpp b/src/main.cpp
index b1c71e7..8a8e4ba 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -27,24 +27,24 @@ int main() {
// command --> handler
std::vector<Handler::CommandHandler> 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(