X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fevent.h;h=e0fb8e399eddc9e75799b043affa24595eabde92;hp=85081c596429def74de0f00a60cc47a76a5385ff;hb=6f38b6fdeb73e726c24b26a97b98c9cfe0fc8a0e;hpb=5c6de1b6613a99791be660bb19df18e3da507cd7 diff --git a/src/common/event.h b/src/common/event.h index 85081c59..e0fb8e39 100644 --- a/src/common/event.h +++ b/src/common/event.h @@ -26,11 +26,13 @@ #include "eventmanager.h" +class Network; + class Event { public: explicit Event(EventManager::EventType type = EventManager::Invalid); - virtual ~Event() {}; + virtual ~Event() {} inline EventManager::EventType type() const { return _type; } @@ -39,6 +41,7 @@ public: 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); } @@ -48,15 +51,28 @@ public: //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); } + explicit Event(EventManager::EventType type, QVariantMap &map); + + // 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; + + inline void setValid(bool valid) { _valid = valid; } + private: EventManager::EventType _type; EventManager::EventFlags _flags; QDateTime _timestamp; //QVariant _data; + bool _valid; friend QDebug operator<<(QDebug dbg, Event *e); };