1 | #ifndef FACT_Event
|
---|
2 | #define FACT_Event
|
---|
3 |
|
---|
4 | #include "EventImp.h"
|
---|
5 |
|
---|
6 | class Event : public EventImp
|
---|
7 | {
|
---|
8 | private:
|
---|
9 | std::string fName; /// A name associated with the event
|
---|
10 | std::string fFormat; /// A string describing the format of the data
|
---|
11 | std::string fDescription; /// A human readable description of the event
|
---|
12 |
|
---|
13 | std::vector<char> fData; /// Data associated with this event
|
---|
14 |
|
---|
15 | Time fTime; /// Time stamp
|
---|
16 | int fQoS; /// Quality of service
|
---|
17 | bool fEmpty; /// Empty is true if received event was a NULL pointer
|
---|
18 |
|
---|
19 | public:
|
---|
20 | Event() : fQoS(0), fEmpty(true) { }
|
---|
21 | /// Constructs an event as a combination of an EventImp and a DimCommand
|
---|
22 | Event(const std::string &name, const std::string &fmt="");
|
---|
23 | /// Copy constructor
|
---|
24 | Event(const EventImp &imp);
|
---|
25 | Event(const EventImp &imp, const char *ptr, size_t siz);
|
---|
26 |
|
---|
27 | void SetDescription(const std::string &str) { fDescription=str; }
|
---|
28 | std::string GetDescription() const { return fDescription; }
|
---|
29 |
|
---|
30 | /// Return the stored name of the event
|
---|
31 | std::string GetName() const { return fName; }
|
---|
32 | /// Return the stored format of the data
|
---|
33 | std::string GetFormat() const { return fFormat; }
|
---|
34 |
|
---|
35 | /// Return a pointer to the data region
|
---|
36 | const void *GetData() const { return &*fData.begin(); }
|
---|
37 | /// Return the size of the data
|
---|
38 | size_t GetSize() const { return fData.size(); }
|
---|
39 |
|
---|
40 | /// Return reference to a time stamp
|
---|
41 | Time GetTime() const { return fTime; }
|
---|
42 | /// Return Quality of Service
|
---|
43 | int GetQoS() const { return fQoS; }
|
---|
44 | /// Return if event is not just zero size but empty
|
---|
45 | bool IsEmpty() const { return fEmpty; }
|
---|
46 |
|
---|
47 | void SetTime() { fTime = Time(); }
|
---|
48 | void SetData(const std::vector<char> &data) { fData = data; }
|
---|
49 | void SetData(const void *ptr, size_t siz) {
|
---|
50 | const char *c = reinterpret_cast<const char*>(ptr);
|
---|
51 | fData = std::vector<char>(c, c+siz); }
|
---|
52 |
|
---|
53 | void SetInt(int i) { SetData(&i, sizeof(i)); }
|
---|
54 | void SetFloat(float f) { SetData(&f, sizeof(f)); }
|
---|
55 | void SetDouble(float d) { SetData(&d, sizeof(d)); }
|
---|
56 | void SetShort(short s) { SetData(&s, sizeof(s)); }
|
---|
57 | void SetText(const char *txt) { SetData(txt, strlen(txt)+1); }
|
---|
58 | void SetString(const std::string &str) { SetData(str.c_str(), str.length()+1); }
|
---|
59 | };
|
---|
60 |
|
---|
61 | #endif
|
---|