00001
00002 #ifndef INCLUDED_DataEvent_h_
00003 #define INCLUDED_DataEvent_h_
00004
00005 #include "Events/EventBase.h"
00006
00007
00008 template<class T>
00009 class DataEvent : public EventBase {
00010 public:
00011
00012
00013 DataEvent() : EventBase() {}
00014 DataEvent(const T& d, EventGeneratorID_t gid, unsigned int sid, EventTypeID_t tid, unsigned int dur=0) : EventBase(gid,sid,tid,dur), data(d) {}
00015 DataEvent(const T& d, EventGeneratorID_t gid, unsigned int sid, EventTypeID_t tid, unsigned int dur, const std::string& n, float mag) : EventBase(gid,sid,tid,dur,n,mag), data(d) {}
00016
00017
00018 DataEvent(const DataEvent& evt) : EventBase(evt), data(evt.data) {}
00019
00020
00021 const DataEvent& operator=(const DataEvent& evt) { EventBase::operator=(evt); data=evt.data; return *this; }
00022
00023 virtual EventBase* clone() const { return new DataEvent<T>(*this); }
00024
00025
00026 void setData(const T& d) { data=d; }
00027 const T& getData() const { return data; }
00028 T& getData() { return data; }
00029
00030 protected:
00031 T data;
00032 };
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045 #endif