X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fevent.h;h=4d2c83f28920a523051ceebceffc5f9a7da786c3;hp=85081c596429def74de0f00a60cc47a76a5385ff;hb=c0d6dc0dec628f2e143e37ecc95cec45e636f8a5;hpb=fdfd62334f728bd05470c5191194d55027fec86e diff --git a/src/common/event.h b/src/common/event.h index 85081c59..4d2c83f2 100644 --- a/src/common/event.h +++ b/src/common/event.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2012 by the Quassel Project * + * Copyright (C) 2005-2020 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -15,54 +15,66 @@ * 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 EVENT_H -#define EVENT_H +#pragma once + +#include "common-export.h" #include #include #include "eventmanager.h" -class Event { +class Network; +class COMMON_EXPORT Event +{ public: - explicit Event(EventManager::EventType type = EventManager::Invalid); - virtual ~Event() {}; + explicit Event(EventManager::EventType type = EventManager::Invalid); + virtual ~Event() = default; + + inline EventManager::EventType type() const { return _type; } - inline EventManager::EventType type() const { return _type; } + inline void setFlag(EventManager::EventFlag flag) { _flags |= flag; } + inline void setFlags(EventManager::EventFlags flags) { _flags = flags; } + inline bool testFlag(EventManager::EventFlag flag) { return _flags.testFlag(flag); } + inline EventManager::EventFlags flags() const { return _flags; } - inline void setFlag(EventManager::EventFlag flag) { _flags |= flag; } - inline void setFlags(EventManager::EventFlags flags) { _flags = flags; } - inline bool testFlag(EventManager::EventFlag flag) { return _flags.testFlag(flag); } - inline EventManager::EventFlags flags() const { return _flags; } + inline bool isValid() const { return _valid; } + inline void stop() { setFlag(EventManager::Stopped); } + inline bool isStopped() { return _flags.testFlag(EventManager::Stopped); } - inline void stop() { setFlag(EventManager::Stopped); } - inline bool isStopped() { return _flags.testFlag(EventManager::Stopped); } + inline void setTimestamp(const QDateTime& time) { _timestamp = time; } + inline QDateTime timestamp() const { return _timestamp; } - inline void setTimestamp(const QDateTime &time) { _timestamp = time; } - inline QDateTime timestamp() const { return _timestamp; } + // inline void setData(const QVariant &data) { _data = data; } + // inline QVariant data() const { return _data; } - //inline void setData(const QVariant &data) { _data = data; } - //inline QVariant data() const { return _data; } + // call EventManager::createEvent(map) instead! + static Event* fromVariantMap(QVariantMap& map, Network* network); + QVariantMap toVariantMap() const; protected: - virtual inline QString className() const { return "Event"; } - virtual inline void debugInfo(QDebug &dbg) const { Q_UNUSED(dbg); } + virtual inline QString className() const { return "Event"; } + virtual inline void debugInfo(QDebug& dbg) const { Q_UNUSED(dbg); } -private: - EventManager::EventType _type; - EventManager::EventFlags _flags; - QDateTime _timestamp; - //QVariant _data; + explicit Event(EventManager::EventType type, QVariantMap& map); - friend QDebug operator<<(QDebug dbg, Event *e); -}; + // must only use primitive types: string, int, double, list, hash + // we want to convert this to JSON in the future! + virtual void toVariantMap(QVariantMap& map) const; -QDebug operator<<(QDebug dbg, Event *e); + inline void setValid(bool valid) { _valid = valid; } -/*******/ +private: + EventManager::EventType _type; + EventManager::EventFlags _flags; + QDateTime _timestamp; + bool _valid{true}; + + friend COMMON_EXPORT QDebug operator<<(QDebug dbg, Event* e); +}; -#endif +COMMON_EXPORT QDebug operator<<(QDebug dbg, Event* e);