X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fctcphandler.h;h=e2f43a582331373a50adf2d319ce8a79abd99aa4;hp=aa42bf9c0c05be317ccbee3a46303e52ed97017b;hb=a4ca568cdf68cf4a0343eb161518dc8e50cea87d;hpb=f62cdd391a5e30ef2d2ffbcaa0718904b1652d4e diff --git a/src/core/ctcphandler.h b/src/core/ctcphandler.h index aa42bf9c..e2f43a58 100644 --- a/src/core/ctcphandler.h +++ b/src/core/ctcphandler.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-08 by the Quassel Project * + * Copyright (C) 2005-10 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -24,19 +24,23 @@ #include #include -#include "basichandler.h" +#include "corebasichandler.h" -class CtcpHandler : public BasicHandler { +class CoreListIgnoreListManager; + +class CtcpHandler : public CoreBasicHandler { Q_OBJECT public: - CtcpHandler(NetworkConnection *parent = 0); + CtcpHandler(CoreNetwork *parent = 0); enum CtcpType {CtcpQuery, CtcpReply}; void parse(Message::Type, const QString &prefix, const QString &target, const QByteArray &message); - QByteArray dequote(const QByteArray &); + QByteArray lowLevelQuote(const QByteArray &); + QByteArray lowLevelDequote(const QByteArray &); + QByteArray xdelimQuote(const QByteArray &); QByteArray xdelimDequote(const QByteArray &); QByteArray pack(const QByteArray &ctcpTag, const QByteArray &message); @@ -44,16 +48,20 @@ public: void reply(const QString &bufname, const QString &ctcpTag, const QString &message); public slots: - void handleAction(CtcpType, const QString &prefix, const QString &target, const QString ¶m); - void handlePing(CtcpType, const QString &prefix, const QString &target, const QString ¶m); - void handleVersion(CtcpType, const QString &prefix, const QString &target, const QString ¶m); + void handleAction(CtcpType, const QString &prefix, const QString &target, const QString ¶m, QString &reply); + void handlePing(CtcpType, const QString &prefix, const QString &target, const QString ¶m, QString &reply); + void handleTime(CtcpType, const QString &prefix, const QString &target, const QString ¶m, QString &reply); + void handleVersion(CtcpType, const QString &prefix, const QString &target, const QString ¶m, QString &reply); - void defaultHandler(const QString &cmd, CtcpType ctcptype, const QString &prefix, const QString &target, const QString ¶m); + void defaultHandler(const QString &cmd, CtcpType ctcptype, const QString &prefix, const QString &target, const QString ¶m, QString &reply); private: + void packedReply(const QString &bufname, const QList &replies); + QByteArray XDELIM; QHash ctcpMDequoteHash; QHash ctcpXDelimDequoteHash; + CoreIgnoreListManager *_ignoreListManager; };