X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fircevent.h;h=5d13b2f57fc72065a0c32d69a44b3af57ad936a5;hp=18e4402091e658ea9af8cb00608f21ca5d91c64e;hb=c194ed5fb3d15e14b9364f9796d3521910dc72fe;hpb=e49f87a6227dc6f82c17126a886cfc83ccf5e3ed diff --git a/src/common/ircevent.h b/src/common/ircevent.h index 18e44020..5d13b2f5 100644 --- a/src/common/ircevent.h +++ b/src/common/ircevent.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2010 by the Quassel Project * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -15,103 +15,128 @@ * 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. * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#ifndef IRCEVENT_H -#define IRCEVENT_H +#pragma once + +#include + +#include "common-export.h" #include "networkevent.h" #include "util.h" -class IrcEvent : public NetworkEvent { +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, QString prefix, QStringList params = QStringList()) + : NetworkEvent(type, network), + _prefix(std::move(prefix)), + _params(std::move(params)) + {} - inline QString prefix() const { return _prefix; } - inline void setPrefix(const QString &prefix) { _prefix = prefix; } + inline QString prefix() const { return _prefix; } + inline void setPrefix(const QString &prefix) { _prefix = prefix; } - inline QString nick() const { return nickFromMask(prefix()); } + inline QString nick() const { return nickFromMask(prefix()); } - inline QStringList params() const { return _params; } - inline void setParams(const QStringList ¶ms) { _params = params; } + inline QStringList params() const { return _params; } + inline void setParams(const QStringList ¶ms) { _params = params; } + + static Event *create(EventManager::EventType type, QVariantMap &map, Network *network); protected: - virtual inline QString className() const { return "IrcEvent"; } - virtual inline void debugInfo(QDebug &dbg) const { - NetworkEvent::debugInfo(dbg); - dbg << ", prefix = " << qPrintable(prefix()) - << ", params = " << params(); - } + explicit IrcEvent(EventManager::EventType type, QVariantMap &map, Network *network); + void toVariantMap(QVariantMap &map) const override; -private: - QString _prefix; - QStringList _params; + inline QString className() const override { return "IrcEvent"; } + inline void debugInfo(QDebug &dbg) const override + { + NetworkEvent::debugInfo(dbg); + dbg << ", prefix = " << qPrintable(prefix()) + << ", params = " << params(); + } + +private: + QString _prefix; + QStringList _params; }; -class IrcEventNumeric : public IrcEvent { + +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, const QString &prefix, QString target, const QStringList ¶ms = QStringList()) + : IrcEvent(EventManager::IrcEventNumeric, network, prefix, params), + _number(number), + _target(std::move(target)) + {} - inline uint number() const { return _number; } + inline uint number() const { return _number; } - inline QString target() const { return _target; } - inline void setTarget(const QString &target) { _target = target; } + inline QString target() const { return _target; } + inline void setTarget(const QString &target) { _target = target; } protected: - virtual inline QString className() const { return "IrcEventNumeric"; } - virtual inline void debugInfo(QDebug &dbg) const { - dbg << ", num = " << number(); - NetworkEvent::debugInfo(dbg); - dbg << ", target = " << qPrintable(target()) - << ", prefix = " << qPrintable(prefix()) - << ", params = " << params(); - } + explicit IrcEventNumeric(EventManager::EventType type, QVariantMap &map, Network *network); + void toVariantMap(QVariantMap &map) const override; + + inline QString className() const override { return "IrcEventNumeric"; } + inline void debugInfo(QDebug &dbg) const override + { + dbg << ", num = " << number(); + NetworkEvent::debugInfo(dbg); + dbg << ", target = " << qPrintable(target()) + << ", prefix = " << qPrintable(prefix()) + << ", params = " << params(); + } + private: - uint _number; - QString _target; + uint _number; + QString _target; + friend class IrcEvent; }; -class IrcEventRawMessage : public 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) - { - setTimestamp(timestamp); - } + explicit inline IrcEventRawMessage(EventManager::EventType type, Network *network, + QByteArray rawMessage, const QString &prefix, const QString &target, + const QDateTime ×tamp = QDateTime()) + : IrcEvent(type, network, 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 QString target() const { return params().at(0); } + inline void setTarget(const QString &target) { setParams(QStringList() << target); } - inline QByteArray rawMessage() const { return _rawMessage; } - inline void setRawMessage(const QByteArray &rawMessage) { _rawMessage = rawMessage; } + inline QByteArray rawMessage() const { return _rawMessage; } + inline void setRawMessage(const QByteArray &rawMessage) { _rawMessage = rawMessage; } protected: - virtual inline QString className() const { return "IrcEventRawMessage"; } - virtual inline void debugInfo(QDebug &dbg) const { - NetworkEvent::debugInfo(dbg); - dbg << ", target = " << qPrintable(target()) - << ", prefix = " << qPrintable(prefix()) - << ", msg = " << rawMessage(); - } + explicit IrcEventRawMessage(EventManager::EventType type, QVariantMap &map, Network *network); + void toVariantMap(QVariantMap &map) const override; + + inline QString className() const override { return "IrcEventRawMessage"; } + inline void debugInfo(QDebug &dbg) const override + { + NetworkEvent::debugInfo(dbg); + dbg << ", target = " << qPrintable(target()) + << ", prefix = " << qPrintable(prefix()) + << ", msg = " << rawMessage(); + } private: - QByteArray _rawMessage; -}; + QByteArray _rawMessage; -#endif + friend class IrcEvent; +};