X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=network%2Fserver.h;h=f0f3a855e3a5fd173eaed85bc1d6a1f3f1032fb0;hp=5e619588df85df2fcaa73d3576364c04fa06958e;hb=f02f9f00b4cdb9819fcafbb33c4ee8b044f1f0f1;hpb=04e21ce26ebabdde9586ca9d2a3168431e448df5 diff --git a/network/server.h b/network/server.h index 5e619588..f0f3a855 100644 --- a/network/server.h +++ b/network/server.h @@ -18,6 +18,8 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ +#error "obsolete code" + #ifndef _SERVER_H_ #define _SERVER_H_ @@ -25,15 +27,16 @@ #include #include -#include "quassel.h" +#include "global.h" +#include "buffer.h" +#include "message.h" #define DEFAULT_PORT 6667 -/*! \file */ -/*! \class Server +/*! * 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, + * We have this running in its own thread mainly to not block other server objects or the core if something goes wrong, * e.g. if some scripts starts running wild... */ @@ -41,30 +44,42 @@ class Server : public QThread { Q_OBJECT public: - Server(); + Server(QString network); ~Server(); - static void init(); - - void run(); // serverState state(); bool isConnected() { return socket.state() == QAbstractSocket::ConnectedState; } + QString getNetwork() { return network; } public slots: // void setServerOptions(); - void connectToIrc(const QString &host, quint16 port = DEFAULT_PORT); - void disconnectFromIrc(); + void connectToIrc(QString net); + void disconnectFromIrc(QString net); + void userInput(QString net, QString buffer, QString msg); void putRawLine(QString input); void putCmd(QString cmd, QStringList params, QString prefix = 0); - signals: - //void outputLine(const QString & /*, Buffer *target = 0 */); + //void exitThread(); + signals: void recvRawServerMsg(QString); - void recvLine(QString); // temp, should send a message to the GUI + void displayStatusMsg(QString); + void displayMsg(Message msg); + void disconnected(); + + void nickAdded(QString network, QString nick, VarMap props); + void nickRenamed(QString network, QString oldnick, QString newnick); + void nickRemoved(QString network, QString nick); + void nickUpdated(QString network, QString nick, VarMap props); + void modeSet(QString network, QString target, QString mode); + void topicSet(QString network, QString buffer, QString topic); + void setNicks(QString network, QString buffer, QStringList nicks); + void ownNickSet(QString network, QString newNick); + private slots: + void run(); void socketHasData(); void socketError(QAbstractSocket::SocketError); void socketConnected(); @@ -72,20 +87,62 @@ class Server : public QThread { 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); + /* void handleUser(QString, QString); */ + void handleUserAway(QString, QString); + void handleUserDeop(QString, QString); + void handleUserDevoice(QString, QString); + void handleUserInvite(QString, QString); + void handleUserJoin(QString, QString); + void handleUserKick(QString, QString); + void handleUserList(QString, QString); + void handleUserMode(QString, QString); + void handleUserMsg(QString, QString); + void handleUserNick(QString, QString); + void handleUserOp(QString, QString); + void handleUserPart(QString, QString); + void handleUserQuit(QString, QString); + void handleUserQuote(QString, QString); + void handleUserSay(QString, QString); + void handleUserVoice(QString, QString); + + /* void handleServer(QString, QStringList); */ + void handleServerJoin(QString, QStringList); + void handleServerKick(QString, QStringList); + void handleServerMode(QString, QStringList); + void handleServerNick(QString, QStringList); + void handleServerNotice(QString, QStringList); + void handleServerPart(QString, QStringList); + void handleServerPing(QString, QStringList); + void handleServerPrivmsg(QString, QStringList); + void handleServerQuit(QString, QStringList); + + void handleServer001(QString, QStringList); // RPL_WELCOME + void handleServer005(QString, QStringList); // RPL_ISUPPORT + void handleServer331(QString, QStringList); // RPL_NOTOPIC + void handleServer332(QString, QStringList); // RPL_TOPIC + void handleServer333(QString, QStringList); // Topic set by... + void handleServer353(QString, QStringList); // RPL_NAMREPLY + + void defaultServerHandler(QString cmd, QString prefix, QStringList params); + void defaultUserHandler(QString buf, QString cmd, QString msg); private: + QString network; QTcpSocket socket; - QTextStream stream; + //QHash buffers; + + QString currentNick; + QString currentServer; + VarMap networkSettings; + VarMap identity; + VarMap nicks; // stores all known nicks for the server + VarMap serverSupports; // stores results from RPL_ISUPPORT 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); } + void handleUserInput(QString buffer, QString usrMsg); + + QString updateNickFromMask(QString mask); class ParseError : public Exception { public: @@ -98,7 +155,4 @@ class Server : public QThread { }; }; -class Buffer {}; - - #endif