X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=network%2Fmessages.h;fp=network%2Fmessages.h;h=c1a48ee436b34cae72c1f5f2615edb07bd102141;hp=0ac7cfffbcade67d397b245fde0c16b5966ddf23;hb=09494f0681def3c6cf585eda25b8bb236560ddac;hpb=8b192b08f3df4ce0e7cc4a08564645c76efa688d diff --git a/network/messages.h b/network/messages.h index 0ac7cfff..c1a48ee4 100644 --- a/network/messages.h +++ b/network/messages.h @@ -25,9 +25,12 @@ #include #include +class Server; +class Buffer; class Message; -typedef void (Message::* cmdhandler)(QStringList); +typedef void (*sendHandlerType)(Message *); // handler for commands sent by the user +typedef void (*recvHandlerType)(Message *); // handler for incoming messages /** * This contains information that depends (solely) on the message type, such as the handler function and help texts. @@ -38,7 +41,8 @@ struct CmdType { QString cmdDescr; QString args; QString argsDescr; - cmdhandler handler; + recvHandlerType recvHandler; + sendHandlerType sendHandler; }; @@ -56,16 +60,17 @@ class Message { virtual ~Message() {}; - static void init(); + static void init(recvHandlerType defaultRevcHandler, sendHandlerType defaultSendHandler); //static registerCmd(); //static unregisterCmd(); - cmdhandler getCmdHandler(); - - void test1(QStringList); - void test2(QStringList); + recvHandlerType getRecvHandler(); + sendHandlerType getSendHandler(); protected: + static recvHandlerType defaultRecvHandler; + static sendHandlerType defaultSendHandler; + static QHash cmdTypes; }; @@ -79,7 +84,8 @@ struct BuiltinCmd { QString cmdDescr; QString args; QString argsDescr; - cmdhandler handler; + recvHandlerType recvHandler; + sendHandlerType sendHandler; }; #endif