/***************************************************************************
- * Copyright (C) 2005-2010 by the Quassel Project *
+ * Copyright (C) 2005-2012 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#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; }
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 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);
};