X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=network%2Fserver.h;fp=network%2Fserver.h;h=b0077c19072d3c4499bfcf1de64cd9079784d99d;hp=5eecb31bff89b9f728c6a542af784be05d2e181f;hb=e368a1672c4f917bfa6adb52dae3b5ebfcd0db18;hpb=8a46d2fb3b2f409b80642cd6fe30645017c980bc diff --git a/network/server.h b/network/server.h index 5eecb31b..b0077c19 100644 --- a/network/server.h +++ b/network/server.h @@ -22,13 +22,14 @@ #define _SERVER_H_ #include +#include #include #include "quassel.h" -#include "message.h" #define DEFAULT_PORT 6667 + /** * This is a server object, managing a single connection to an IRC server, handling the associated channels and so on. * We have this run in its own thread mainly to not block other server objects or the core if something goes wrong, @@ -52,7 +53,8 @@ class Server : public QThread { void connectToIrc(const QString &host, quint16 port = DEFAULT_PORT); void disconnectFromIrc(); - void putRawLine(const QString &input /*, Buffer *source = 0 */); + void putRawLine(QString input); + void putCmd(QString cmd, QStringList params, QString prefix = 0); signals: //void outputLine(const QString & /*, Buffer *target = 0 */); @@ -67,53 +69,34 @@ class Server : public QThread { void socketDisconnected(); void socketStateChanged(QAbstractSocket::SocketState); + /* Message Handlers */ + /* handleXxxxFromServer(QString prefix, QStringList params); */ + void handleNoticeFromServer(QString, QStringList); + void handlePingFromServer(QString, QStringList); + + void defaultHandlerForServer(QString cmd, QString prefix, QStringList params); + private: - QTcpSocket *socket; + 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); } + void handleServerMsg(QString rawMsg); + void handleUserMsg(QString usrMsg); + //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); + ParseError(QString cmd, QString prefix, QStringList params); }; class UnknownCmdError : public Exception { public: - UnknownCmdError(Message *msg); + UnknownCmdError(QString cmd, QString prefix, QStringList params); }; }; class Buffer {}; -/* -class TcpConnection : public QThread { - Q_OBJECT - - - public: - void run(); - QAbstractSocket::SocketState state() const; - - public slots: - void connectToHost(const QString &host, quint16 port = DEFAULT_PORT); - void disconnectFromHost(); - void sendLine(const QString &); - - signals: - void recvLine(QString); - void error(QAbstractSocket::SocketError); - void connected(); - void disconnected(); - void stateChanged(QAbstractSocket::SocketState); - - private: - QTcpSocket socket; - QTextStream stream; -}; -*/ #endif