X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fircserverhandler.h;h=f035eb9aff45e18970eaa1acd8aea41b472b82a4;hb=39eb2fda3eaef2de78a8134556015ff86e9b85d4;hp=b06a6b650ced938ccbf0987dea81b9e45b5641ac;hpb=7687144347370b830d3b8957bd223acb629fee83;p=quassel.git diff --git a/src/core/ircserverhandler.h b/src/core/ircserverhandler.h index b06a6b65..f035eb9a 100644 --- a/src/core/ircserverhandler.h +++ b/src/core/ircserverhandler.h @@ -22,6 +22,7 @@ #define IRCSERVERHANDLER_H #include "basichandler.h" +#include "netsplit.h" class IrcServerHandler : public BasicHandler { Q_OBJECT @@ -68,6 +69,7 @@ public slots: void handle322(const QString &prefix, const QList ¶ms); // RPL_LIST void handle323(const QString &prefix, const QList ¶ms); // RPL_LISTEND void handle324(const QString &prefix, const QList ¶ms); // RPL_CHANNELMODEIS + void handle328(const QString &prefix, const QList ¶ms); // RPL_??? (channel homepage) void handle329(const QString &prefix, const QList ¶ms); // RPL_??? (channel creation time) void handle331(const QString &prefix, const QList ¶ms); // RPL_NOTOPIC void handle332(const QString &prefix, const QList ¶ms); // RPL_TOPIC @@ -80,6 +82,28 @@ public slots: void defaultHandler(QString cmd, const QString &prefix, const QList ¶ms); +private slots: + //! Joins after a netsplit + /** This slot handles a bulk-join after a netsplit is over + * \param channel The channel the users joined + * \param users The list of users that joind the channel + * \param quitMessage The message we received when the netsplit occured + */ + void handleNetsplitJoin(const QString &channel, const QStringList &users, const QString &quitMessage); + + //! Quits after a netsplit + /** This slot handles a bulk-quit after a netsplit occured + * \param channel The channel the users quitted + * \param users The list of users that got split + * \param quitMessage The message we received when the netsplit occured + */ + void handleNetsplitQuit(const QString &channel, const QStringList &users, const QString &quitMessage); + + //! Netsplit finished + /** This slot deletes the netsplit object that sent the finished() signal + */ + void handleNetsplitFinished(); + private: void tryNextNick(const QString &errnick, bool erroneus = false); bool checkParamCount(const QString &methodName, const QList ¶ms, int minParams); @@ -89,6 +113,11 @@ private: bool _whois; QString _target; + + // structure to organize netsplits + // key: quit message + // value: the corresponding netsplit object + QHash _netsplits; };