X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fctcpparser.h;h=81f18860fd0a4b4c4eda72d1e15e44e3df6eca36;hp=a33751fb40a819aee88a01e20fd739293eb4a2c4;hb=cc6e7c08709c4e761e2fd9c2e322751015497003;hpb=5b686746c880e5cda6d5de3e08180ea4332ff222 diff --git a/src/core/ctcpparser.h b/src/core/ctcpparser.h index a33751fb..81f18860 100644 --- a/src/core/ctcpparser.h +++ b/src/core/ctcpparser.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2012 by the Quassel Project * + * Copyright (C) 2005-2019 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -21,9 +21,12 @@ #ifndef CTCPPARSER_H #define CTCPPARSER_H +#include + #include #include "corenetwork.h" +#include "ctcpevent.h" #include "eventmanager.h" #include "ircevent.h" @@ -35,55 +38,66 @@ class CtcpParser : public QObject Q_OBJECT public: - CtcpParser(CoreSession *coreSession, QObject *parent = 0); + CtcpParser(CoreSession* coreSession, QObject* parent = nullptr); - inline CoreSession *coreSession() const { return _coreSession; } + inline CoreSession* coreSession() const { return _coreSession; } - void query(CoreNetwork *network, const QString &bufname, const QString &ctcpTag, const QString &message); - void reply(CoreNetwork *network, const QString &bufname, const QString &ctcpTag, const QString &message); + void query(CoreNetwork* network, const QString& bufname, const QString& ctcpTag, const QString& message); + void reply(CoreNetwork* network, const QString& bufname, const QString& ctcpTag, const QString& message); - Q_INVOKABLE void processIrcEventRawNotice(IrcEventRawMessage *event); - Q_INVOKABLE void processIrcEventRawPrivmsg(IrcEventRawMessage *event); + Q_INVOKABLE void processIrcEventRawNotice(IrcEventRawMessage* event); + Q_INVOKABLE void processIrcEventRawPrivmsg(IrcEventRawMessage* event); - Q_INVOKABLE void sendCtcpEvent(CtcpEvent *event); + Q_INVOKABLE void sendCtcpEvent(CtcpEvent* event); signals: - void newEvent(Event *event); + void newEvent(Event* event); protected: - inline CoreNetwork *coreNetwork(NetworkEvent *e) const { return qobject_cast(e->network()); } + inline CoreNetwork* coreNetwork(NetworkEvent* e) const { return qobject_cast(e->network()); } // FIXME duplicates functionality in EventStringifier, maybe want to put that in something common //! Creates and sends a MessageEvent - void displayMsg(NetworkEvent *event, - Message::Type msgType, - const QString &msg, - const QString &sender = QString(), - const QString &target = QString(), - Message::Flags msgFlags = Message::None); - - void parse(IrcEventRawMessage *event, Message::Type msgType); - - QByteArray lowLevelQuote(const QByteArray &); - QByteArray lowLevelDequote(const QByteArray &); - QByteArray xdelimQuote(const QByteArray &); - QByteArray xdelimDequote(const QByteArray &); - - QByteArray pack(const QByteArray &ctcpTag, const QByteArray &message); - void packedReply(CoreNetwork *network, const QString &bufname, const QList &replies); + void displayMsg(NetworkEvent* event, + Message::Type msgType, + const QString& msg, + const QString& sender = QString(), + const QString& target = QString(), + Message::Flags msgFlags = Message::None); + + void parse(IrcEventRawMessage* event, Message::Type msgType); + void parseSimple( + IrcEventRawMessage* e, Message::Type messagetype, QByteArray dequotedMessage, CtcpEvent::CtcpType ctcptype, Message::Flags flags); + void parseStandard( + IrcEventRawMessage* e, Message::Type messagetype, QByteArray dequotedMessage, CtcpEvent::CtcpType ctcptype, Message::Flags flags); + + QByteArray lowLevelQuote(const QByteArray&); + QByteArray lowLevelDequote(const QByteArray&); + QByteArray xdelimQuote(const QByteArray&); + QByteArray xdelimDequote(const QByteArray&); + + QByteArray pack(const QByteArray& ctcpTag, const QByteArray& message); + void packedReply(CoreNetwork* network, const QString& bufname, const QList& replies); + +private slots: + void setStandardCtcp(bool enabled); private: - inline QString targetDecode(IrcEventRawMessage *e, const QByteArray &msg) { return coreNetwork(e)->userDecode(e->target(), msg); } + inline QString targetDecode(IrcEventRawMessage* e, const QByteArray& msg) { return coreNetwork(e)->userDecode(e->target(), msg); } - CoreSession *_coreSession; + CoreSession* _coreSession; - struct CtcpReply { - CoreNetwork *network; + struct CtcpReply + { + CoreNetwork* network{nullptr}; QString bufferName; QList replies; - CtcpReply() : network(0) {} - CtcpReply(CoreNetwork *net, const QString &buf) : network(net), bufferName(buf) {} + CtcpReply() = default; + CtcpReply(CoreNetwork* net, QString buf) + : network(net) + , bufferName(std::move(buf)) + {} }; QHash _replies; @@ -92,5 +106,4 @@ private: QHash _ctcpXDelimDequoteHash; }; - #endif