X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=network%2Fmessages.h;h=c1a48ee436b34cae72c1f5f2615edb07bd102141;hp=566e0d41493acb54b0540e7686f0a8bad80a0efa;hb=09494f0681def3c6cf585eda25b8bb236560ddac;hpb=46ec32173bb8e4fac0b6a161f9cce875875159a5 diff --git a/network/messages.h b/network/messages.h index 566e0d41..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; }; @@ -52,20 +56,21 @@ class Message { QString cmd; QStringList params; - Message(QString cmd, QStringList args = 0); + Message(QString cmd, QStringList args = QStringList()); 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