OpenRTM-aist 2.0.2
Loading...
Searching...
No Matches
MultilayerCompositeEC.h
Go to the documentation of this file.
1// -*- C++ -*-
18#ifndef RTC_MULTILAYERCOMPOSITEEC_H
19#define RTC_MULTILAYERCOMPOSITEEC_H
20
21
23#include <coil/PeriodicTask.h>
24
25
26
27namespace RTC_exp
28{
51 {
52 public:
73
88
102 void init(coil::Properties& props) override;
103
104
124 int svc() override;
125
139 RTC::ReturnCode_t bindComponent(RTC::RTObject_impl* rtc) override;
140
141
142 virtual RTC_impl::RTObjectStateMachine* findComponent(RTC::LightweightRTObject_ptr comp);
143 virtual void addTask(std::vector<RTC::LightweightRTObject_ptr> rtcs);
144
145
146
147 protected:
149 {
150 public:
151 ChildTask(coil::PeriodicTaskBase* task, MultilayerCompositeEC* ec);
152 virtual ~ChildTask();
153 void addComponent(RTC::LightweightRTObject_ptr rtc);
155 virtual int svc();
156 void signal();
157 void join();
158 coil::TimeMeasure::Statistics getPeriodStat();
159 coil::TimeMeasure::Statistics getExecStat();
160 void finalize();
161 private:
162 std::vector<RTC::LightweightRTObject_ptr> m_rtcs;
163 coil::PeriodicTaskBase* m_task;
165 std::vector<RTC_impl::RTObjectStateMachine*> m_comps;
166 WorkerThreadCtrl m_worker;
167 WorkerThreadCtrl m_signal_worker;
168
169 };
170
171 virtual void addRTCToTask(ChildTask* task, RTC::LightweightRTObject_ptr rtobj);
172
173 std::vector<ChildTask*> m_tasklist;
175
176
177 }; // class MultilayerCompositeEC
178} // namespace RTC_exp
179
180
181extern "C"
182{
191}
192
193#endif // RTC_MULTILAYERCOMPOSITEEC_H
void MultilayerCompositeECInit(RTC::Manager *manager)
Initialization function to register to ECFactory .
PeriodicExecutionContext class.
Manager class.
Definition Manager.h:91
RT-Component class.
Definition RTObject.h:93
Definition MultilayerCompositeEC.h:149
ChildTask(coil::PeriodicTaskBase *task, MultilayerCompositeEC *ec)
coil::TimeMeasure::Statistics getPeriodStat()
coil::TimeMeasure::Statistics getExecStat()
void addComponent(RTC::LightweightRTObject_ptr rtc)
MultilayerCompositeEC class.
Definition MultilayerCompositeEC.h:51
virtual void addTask(std::vector< RTC::LightweightRTObject_ptr > rtcs)
MultilayerCompositeEC()
Default Constructor.
~MultilayerCompositeEC() override
Destructor.
virtual void addRTCToTask(ChildTask *task, RTC::LightweightRTObject_ptr rtobj)
virtual RTC_impl::RTObjectStateMachine * findComponent(RTC::LightweightRTObject_ptr comp)
RTC::ReturnCode_t bindComponent(RTC::RTObject_impl *rtc) override
Bind the component.
RTC_impl::RTObjectStateMachine * m_ownersm
Definition MultilayerCompositeEC.h:174
std::vector< ChildTask * > m_tasklist
Definition MultilayerCompositeEC.h:173
int svc() override
Thread execution function for ExecutionContext.
void init(coil::Properties &props) override
Initialize the ExecutionContext.
PeriodicExecutionContext class.
Definition PeriodicExecutionContext.h:60
Definition RTObjectStateMachine.h:43
Definition MultilayerCompositeEC.h:28
Condition variable class for worker .
Definition PeriodicExecutionContext.h:672