X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Fircevent.h;h=90dc3846a8fc939d713f7135b9e47a1ec54c9f81;hb=8f92b3f08df9f4eb8fd243ccec6aa9d4b563ec23;hp=e5a2313df21b7e1f785c22cd2bf0772db1c1aa63;hpb=92fc8c5b119111a35ab8423c3cbde5b2a022badf;p=quassel.git diff --git a/src/common/ircevent.h b/src/common/ircevent.h index e5a2313d..90dc3846 100644 --- a/src/common/ircevent.h +++ b/src/common/ircevent.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2018 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 * @@ -22,67 +22,78 @@ #include "common-export.h" +#include + +#include "irctag.h" #include "networkevent.h" #include "util.h" class COMMON_EXPORT IrcEvent : public NetworkEvent { public: - explicit IrcEvent(EventManager::EventType type, Network *network, const QString &prefix, const QStringList ¶ms = QStringList()) - : NetworkEvent(type, network), - _prefix(prefix), - _params(params) + explicit IrcEvent( + EventManager::EventType type, Network* network, QHash tags, QString prefix, QStringList params = {}) + : NetworkEvent(type, network) + , _tags(std::move(tags)) + , _prefix(std::move(prefix)) + , _params(std::move(params)) {} inline QString prefix() const { return _prefix; } - inline void setPrefix(const QString &prefix) { _prefix = prefix; } + inline void setPrefix(const QString& prefix) { _prefix = prefix; } + + inline QHash tags() const { return _tags; } + inline void setTags(const QHash& tags) { _tags = tags; } inline QString nick() const { return nickFromMask(prefix()); } inline QStringList params() const { return _params; } - inline void setParams(const QStringList ¶ms) { _params = params; } + inline void setParams(const QStringList& params) { _params = params; } - static Event *create(EventManager::EventType type, QVariantMap &map, Network *network); + static Event* create(EventManager::EventType type, QVariantMap& map, Network* network); protected: - explicit IrcEvent(EventManager::EventType type, QVariantMap &map, Network *network); - void toVariantMap(QVariantMap &map) const; + explicit IrcEvent(EventManager::EventType type, QVariantMap& map, Network* network); + void toVariantMap(QVariantMap& map) const override; - virtual inline QString className() const { return "IrcEvent"; } - virtual inline void debugInfo(QDebug &dbg) const + inline QString className() const override { return "IrcEvent"; } + inline void debugInfo(QDebug& dbg) const override { NetworkEvent::debugInfo(dbg); - dbg << ", prefix = " << qPrintable(prefix()) - << ", params = " << params(); + dbg << ", prefix = " << qPrintable(prefix()) << ", params = " << params(); } - private: + QHash _tags; QString _prefix; QStringList _params; }; - class COMMON_EXPORT IrcEventNumeric : public IrcEvent { public: - explicit IrcEventNumeric(uint number, Network *network, const QString &prefix, const QString &target, const QStringList ¶ms = QStringList()) - : IrcEvent(EventManager::IrcEventNumeric, network, prefix, params), - _number(number), - _target(target) + explicit IrcEventNumeric(uint number, + Network* network, + QHash tags, + QString prefix, + QString target, + QStringList params = {}) + : IrcEvent(EventManager::IrcEventNumeric, network, std::move(tags), std::move(prefix), std::move(params)) + , _number(number) + , _target(std::move(target)) {} inline uint number() const { return _number; } inline QString target() const { return _target; } - inline void setTarget(const QString &target) { _target = target; } + inline void setTarget(const QString& target) { _target = target; } protected: - explicit IrcEventNumeric(EventManager::EventType type, QVariantMap &map, Network *network); - void toVariantMap(QVariantMap &map) const; + explicit IrcEventNumeric(EventManager::EventType type, QVariantMap& map, Network* network); + void toVariantMap(QVariantMap& map) const override; - virtual inline QString className() const { return "IrcEventNumeric"; } - virtual inline void debugInfo(QDebug &dbg) const + inline QString className() const override { return "IrcEventNumeric"; } + inline void debugInfo(QDebug& dbg) const override { dbg << ", num = " << number(); NetworkEvent::debugInfo(dbg); @@ -91,7 +102,6 @@ protected: << ", params = " << params(); } - private: uint _number; QString _target; @@ -99,32 +109,34 @@ private: friend class IrcEvent; }; - class COMMON_EXPORT IrcEventRawMessage : public IrcEvent { public: - explicit inline IrcEventRawMessage(EventManager::EventType type, Network *network, - const QByteArray &rawMessage, const QString &prefix, const QString &target, - const QDateTime ×tamp = QDateTime()) - : IrcEvent(type, network, prefix, QStringList() << target), - _rawMessage(rawMessage) + explicit IrcEventRawMessage(EventManager::EventType type, + Network* network, + QHash tags, + QByteArray rawMessage, + QString prefix, + QString target, + const QDateTime& timestamp = QDateTime()) + : IrcEvent(type, network, std::move(tags), std::move(prefix), QStringList() << target) + , _rawMessage(std::move(rawMessage)) { setTimestamp(timestamp); } - inline QString target() const { return params().at(0); } - inline void setTarget(const QString &target) { setParams(QStringList() << target); } + inline void setTarget(const QString& target) { setParams(QStringList() << target); } inline QByteArray rawMessage() const { return _rawMessage; } - inline void setRawMessage(const QByteArray &rawMessage) { _rawMessage = rawMessage; } + inline void setRawMessage(const QByteArray& rawMessage) { _rawMessage = rawMessage; } protected: - explicit IrcEventRawMessage(EventManager::EventType type, QVariantMap &map, Network *network); - void toVariantMap(QVariantMap &map) const; + explicit IrcEventRawMessage(EventManager::EventType type, QVariantMap& map, Network* network); + void toVariantMap(QVariantMap& map) const override; - virtual inline QString className() const { return "IrcEventRawMessage"; } - virtual inline void debugInfo(QDebug &dbg) const + inline QString className() const override { return "IrcEventRawMessage"; } + inline void debugInfo(QDebug& dbg) const override { NetworkEvent::debugInfo(dbg); dbg << ", target = " << qPrintable(target()) @@ -132,7 +144,6 @@ protected: << ", msg = " << rawMessage(); } - private: QByteArray _rawMessage;