source: pacpusframework/branches/2.0-beta1/include/Pacpus/kernel/PacpusEvent.h@ 89

Last change on this file since 89 was 89, checked in by morasjul, 11 years ago

PACPUS 2.0 Beta deployed in new branch

Major changes:
-Add communication interface between components
-Add examples for communications interface (TestComponents)
-Move to Qt5 support

  • Property svn:executable set to *
File size: 1.4 KB
Line 
1#ifndef PACPUS_EVENT_H
2#define PACPUS_EVENT_H
3
4#include <QEvent>
5#include "Pacpus/kernel/road_time.h"
6
7namespace pacpus {
8
9class GenericData {
10public:
11 GenericData(char* data, size_t size) {
12 _data = (char*)malloc(size);
13 memcpy(_data,data,size);
14 _size = size;}
15
16 ~GenericData() {free(_data);}
17
18 char * data() { return _data;}
19 size_t size() {return _size;}
20
21private:
22char* _data;
23size_t _size;
24};
25
26enum PacpusEventType {
27 TYPED_EVENT = 1000,
28 GENERIC_EVENT = 2000,
29 GENERIC_EVENT2 = 2002,
30 GENERIC_EVENT3 = 2003,
31 CONFIG_EVENT = 3000
32};
33
34class PacpusEvent : public QEvent
35{
36public:
37 PacpusEvent(QEvent::Type type):QEvent(type) {}
38};
39
40template<class T>
41class PacpusTypedEvent : public PacpusEvent
42{
43public:
44 PacpusTypedEvent(QEvent::Type type, T data, road_time_t t = road_time(), road_timerange_t tr = 0 ):PacpusEvent(type)
45 {_data = data; t_ = t; tr_ = tr;}
46 ~PacpusTypedEvent() {}
47 T _data;
48 road_time_t t_;
49 road_timerange_t tr_;
50};
51
52class PacpusGenericEvent : public PacpusEvent
53{
54public:
55 PacpusGenericEvent(QEvent::Type type, char* data, size_t size):PacpusEvent(type) {
56 _data = (char*)malloc(size);
57 memcpy(_data,data,size);
58 _size = size;
59
60 }
61 virtual ~PacpusGenericEvent() {free(_data);}
62 char* _data;
63 size_t _size;
64};
65
66
67} // namespace pacpus
68
69#endif // PACPUS_EVENT_H
Note: See TracBrowser for help on using the repository browser.