OpenRTM-aist 2.0.2
Loading...
Searching...
No Matches
EventBase.h
Go to the documentation of this file.
1// -*- C++ -*-
18#ifndef RTC_EVENTBASE_H
19#define RTC_EVENTBASE_H
20
21
22
23namespace RTC
24{
26 {
27 public:
28 EventBinderBase0() = default;
29 virtual ~EventBinderBase0() = default;
30 virtual void run() = 0;
31 };
32 template <class P0>class EventBinderBase1
33 {
34 public:
35 EventBinderBase1() = default;
36 virtual ~EventBinderBase1() = default;
37 virtual void run(P0& data) = 0;
38 };
39
41 {
42 public:
43 EventBase() = default;
44 virtual ~EventBase() = default;
45 virtual void operator()()=0;
46 };
47
48 class Event0 : public EventBase
49 {
50 public:
52 m_eb(eb)
53 {
54 }
55 ~Event0() override = default;
56 void operator()() override
57 {
58 m_eb->run();
59 }
60 private:
61 EventBinderBase0 *m_eb;
62 };
63
64 template <class P0>
65 class Event1 : public EventBase
66 {
67 public:
69 m_eb(eb), m_data(data)
70 {
71 }
72 ~Event1() override = default;
73 void operator()() override
74 {
75 m_eb->run(m_data);
76 }
77 private:
79 P0 m_data;
80 };
81
82
83} // namespace RTC
84
85#endif // RTC_EVENTBASE_H
Definition EventBase.h:49
~Event0() override=default
void operator()() override
Definition EventBase.h:56
Event0(EventBinderBase0 *eb)
Definition EventBase.h:51
Definition EventBase.h:66
~Event1() override=default
void operator()() override
Definition EventBase.h:73
Event1(EventBinderBase1< P0 > *eb, P0 &data)
Definition EventBase.h:68
Definition EventBase.h:41
EventBase()=default
virtual void operator()()=0
virtual ~EventBase()=default
Definition EventBase.h:26
virtual ~EventBinderBase0()=default
EventBinderBase0()=default
virtual void run()=0
Definition EventBase.h:33
virtual ~EventBinderBase1()=default
EventBinderBase1()=default
virtual void run(P0 &data)=0
RT-Component.