diff options
Diffstat (limited to 'src/irc/client.hpp')
| -rw-r--r-- | src/irc/client.hpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/irc/client.hpp b/src/irc/client.hpp index e6846d2..6f0791f 100644 --- a/src/irc/client.hpp +++ b/src/irc/client.hpp @@ -4,6 +4,8 @@ #include <string> +#include "message.hpp" + namespace RedpilledBot { namespace IRC { class Client { @@ -13,6 +15,17 @@ namespace RedpilledBot { void run(); + template <MessageType T> + void on(typename MessageHandler<T>::fn function) { + switch (T) { + case Privmsg: + this->onPrivmsg = function; + break; + default: + break; + } + } + private: void authorize(); @@ -23,6 +36,9 @@ namespace RedpilledBot { std::string port; ix::WebSocket websocket; + + // Message handlers + typename MessageHandler<MessageType::Privmsg>::fn onPrivmsg; }; } } |
