X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=core%2Fserver.h;fp=core%2Fserver.h;h=0000000000000000000000000000000000000000;hp=c17b4d0f34ae9ef830a29b7ce39f6ac24c34924a;hb=077d44f36d2f5c730283ef6be839aea7dd073d56;hpb=f0a6776fc5102ff6a7fe1469917fe231e4cd3a8a diff --git a/core/server.h b/core/server.h deleted file mode 100644 index c17b4d0f..00000000 --- a/core/server.h +++ /dev/null @@ -1,188 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2005/06 by The Quassel Team * - * devel@quassel-irc.org * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ - -#ifndef _SERVER_H_ -#define _SERVER_H_ - -#include -#include -#include - -#include "global.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 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... - */ - -class Server : public QThread { - Q_OBJECT - - public: - Server(UserId uid, QString network); - ~Server(); - - UserId userId() const { return user; } - // serverState state(); - bool isConnected() const { return socket.state() == QAbstractSocket::ConnectedState; } - QString getNetwork() { return network; } - QStringList providesUserHandlers(); - - enum CtcpType {CtcpQuery, CtcpReply}; - - public slots: - // void setServerOptions(); - void sendState(); - 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); - - //void exitThread(); - - signals: - void serverState(QString net, VarMap data); - void recvRawServerMsg(QString); - void displayStatusMsg(QString); - //void displayMsg(Message msg); - void displayMsg(Message::Type, QString target, QString text, QString sender = "", quint8 flags = Message::None); - void connected(QString network); - void disconnected(QString network); - - 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 ownNickSet(QString network, QString newNick); - void queryRequested(QString network, QString nick); - - - private slots: - void run(); - void socketHasData(); - void socketError(QAbstractSocket::SocketError); - void socketConnected(); - void socketDisconnected(); - void socketStateChanged(QAbstractSocket::SocketState); - - /* Message Handlers */ - - /* 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 handleUserQuery(QString, QString); - void handleUserQuit(QString, QString); - void handleUserQuote(QString, QString); - void handleUserSay(QString, QString); - void handleUserTopic(QString, QString); - void handleUserVoice(QString, QString); - void handleUserMe(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 handleServerTopic(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 handleServer432(QString, QStringList); // ERR_ERRONEUSNICKNAME - void handleServer433(QString, QStringList); // ERR_NICKNAMEINUSE - - void handleCtcpAction(CtcpType, QString, QString, QString); - void handleCtcpPing(CtcpType, QString, QString, QString); - void handleCtcpVersion(CtcpType, QString, QString, QString); - - void defaultServerHandler(QString cmd, QString prefix, QStringList params); - void defaultUserHandler(QString buf, QString cmd, QString msg); - void defaultCtcpHandler(CtcpType ctcptype, QString prefix, QString cmd, QString target, QString param); - - private: - UserId user; - QString network; - QTcpSocket socket; - //QHash buffers; - - QString ownNick; - QString currentServer; - VarMap networkSettings; - VarMap identity; - QHash nicks; // stores all known nicks for the server - QHash topics; // stores topics for each buffer - VarMap serverSupports; // stores results from RPL_ISUPPORT - - void handleServerMsg(QString rawMsg); - void handleUserInput(QString buffer, QString usrMsg); - - // CTCP Stuff - QString XDELIM; - QHash ctcpMDequoteHash; - QHash ctcpXDelimDequoteHash; - QString ctcpDequote(QString); - QString ctcpXdelimDequote(QString); - QStringList parseCtcp(CtcpType, QString, QString, QString); - - QString ctcpPack(QString ctcpTag, QString message); - void ctcpQuery(QString bufname, QString ctcpTag, QString message); - void ctcpReply(QString bufname, QString ctcpTag, QString message); - - QString updateNickFromMask(QString mask); - - class ParseError : public Exception { - public: - ParseError(QString cmd, QString prefix, QStringList params); - }; - - class UnknownCmdError : public Exception { - public: - UnknownCmdError(QString cmd, QString prefix, QStringList params); - }; -}; - -#endif