X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=network%2Fserver.h;h=5eecb31bff89b9f728c6a542af784be05d2e181f;hp=ce79fc8839293d2feb89f1095d60a952373a19bb;hb=84516825d33a1b448a894eaf2e804cabb032f5f1;hpb=8b192b08f3df4ce0e7cc4a08564645c76efa688d diff --git a/network/server.h b/network/server.h index ce79fc88..5eecb31b 100644 --- a/network/server.h +++ b/network/server.h @@ -24,6 +24,9 @@ #include #include +#include "quassel.h" +#include "message.h" + #define DEFAULT_PORT 6667 /** @@ -38,6 +41,7 @@ class Server : public QThread { public: Server(); ~Server(); + static void init(); void run(); @@ -53,7 +57,8 @@ class Server : public QThread { signals: //void outputLine(const QString & /*, Buffer *target = 0 */); - void recvLine(const QString&); + void recvRawServerMsg(QString); + void recvLine(QString); // temp, should send a message to the GUI private slots: void socketHasData(); @@ -66,8 +71,24 @@ class Server : public QThread { QTcpSocket *socket; QTextStream stream; + void handleServerMsg(Message *); + QString handleUserMsg(Message *); + static inline void dispatchServerMsg(Message *msg) { msg->getServer()->handleServerMsg(msg); } + static inline void dispatchUserMsg(Message *msg) { msg->getServer()->handleUserMsg(msg); } + + class ParseError : public Exception { + public: + ParseError(Message *msg); + }; + + class UnknownCmdError : public Exception { + public: + UnknownCmdError(Message *msg); + }; }; +class Buffer {}; + /* class TcpConnection : public QThread { Q_OBJECT