ExtTrigExecutionContextTests.cpp
Go to the documentation of this file.
1 // -*- C++ -*-
11 /*
12  * $Log: ExtTrigExecutionContextTests.cpp,v $
13  * Revision 1.1 2008/04/15 05:03:53 arafune
14  * The first commitment.
15  *
16  *
17  */
18 
19 #ifndef ExtTrigExecutionContext_cpp
20 #define ExtTrigExecutionContext_cpp
21 
22 #include <cppunit/ui/text/TestRunner.h>
23 #include <cppunit/TextOutputter.h>
24 #include <cppunit/extensions/TestFactoryRegistry.h>
25 #include <cppunit/extensions/HelperMacros.h>
26 #include <cppunit/TestAssert.h>
27 
28 #include <rtm/idl/RTCSkel.h>
29 #include <rtm/RTObject.h>
31 #include <rtm/CORBA_SeqUtil.h>
32 
38 {
40  : public virtual POA_RTC::LightweightRTObject,
41  public virtual PortableServer::RefCountServantBase
42  {
43  protected:
44  typedef std::map<RTC::UniqueId, RTC::ExecutionContext_ptr> ExecContexts;
45  CORBA::Long m_nextUniqueId;
46  ExecContexts m_execContexts;
47  std::vector<std::string> m_log;
48  bool m_alive;
49  bool m_error;
50 
51  public:
53  : m_alive(true), m_error(false)
54  {
55  }
56 
57  // RTC::_impl_ComponentAction
58  virtual RTC::UniqueId attach_context(RTC::ExecutionContext_ptr exec_context)
59  {
60  m_log.push_back("attach_executioncontext");
61  m_execContexts.insert(
62  std::pair<RTC::UniqueId, RTC::ExecutionContext_ptr>(m_nextUniqueId++, exec_context));
63  return m_nextUniqueId;
64  }
66  {
67  m_log.push_back("detach_executioncontext");
68  m_execContexts.erase(ec_id);
69  return RTC::RTC_OK;
70  }
72  {
73  m_log.push_back("on_initialize");
74  return RTC::RTC_OK;
75  }
77  {
78  m_log.push_back("on_finalize");
79  return RTC::RTC_OK;
80  }
82  {
83  m_log.push_back("on_startup");
84  return RTC::RTC_OK;
85  }
87  {
88  m_log.push_back("on_shutdown");
89  return RTC::RTC_OK;
90  }
92  {
93  m_log.push_back("on_activated");
94  return returnCode(RTC::RTC_OK);
95  }
97  {
98  m_log.push_back("on_deactivated");
99  return RTC::RTC_OK;
100  }
102  {
103  m_log.push_back("on_aborting");
104  return RTC::RTC_OK;
105  }
107  {
108  m_log.push_back("on_error");
109  return RTC::RTC_OK;
110  }
112  {
113  m_log.push_back("on_reset");
114  return RTC::RTC_OK;
115  }
116 
117  // RTC::_impl_LightweightRTObject
119  {
120  m_log.push_back("initialize");
121  return RTC::RTC_OK;
122  }
124  {
125  m_log.push_back("finalize");
126  return RTC::RTC_OK;
127  }
129  {
130  m_log.push_back("exit");
131  return RTC::RTC_OK;
132  }
133  virtual CORBA::Boolean is_alive(RTC::ExecutionContext_ptr exec_context)
134  {
135  m_log.push_back("is_alive");
136  return CORBA::Boolean(m_alive);
137  }
139  {
140  m_log.push_back("get_contexts");
141  return 0;
142  }
144  {
145  m_log.push_back("get_context");
146  return 0;
147  }
148  virtual RTC::_objref_ExecutionContext* get_context(RTC::ExecutionContextHandle_t)
149  {
150  return 0;
151  }
152  virtual RTC::ExecutionContextHandle_t get_context_handle(RTC::_objref_ExecutionContext*)
153  {
154  return 0;
155  }
156 
157  public: // helper methods
158  int countLog(std::string line)
159  {
160  int count = 0;
161  for (int i = 0; i < (int) m_log.size(); ++i)
162  {
163  if (m_log[i] == line) ++count;
164  }
165  return count;
166  }
167 
168  void setAlive(bool alive)
169  {
170  m_alive = alive;
171  }
172 
173  void setError(bool error)
174  {
175  m_error = error;
176  }
177 
178  private:
180  {
181  return m_error ? RTC::RTC_ERROR : rc;
182  }
183  };
184 
186 // : public virtual POA_RTC::DataFlowComponent,
187  : public virtual POA_OpenRTM::DataFlowComponent,
188  public virtual LightweightRTObjectMock
189  {
190  public:
191  // SDOPackage::_impl_SDOSystemElement
192  virtual SDOPackage::OrganizationList* get_owned_organizations()
193  throw (SDOPackage::NotAvailable)
194  {
195  m_log.push_back("get_owned_organizations");
196  return 0; // dummy
197  }
198  virtual char* get_sdo_id()
199  throw (SDOPackage::NotAvailable, SDOPackage::InternalError)
200  {
201  m_log.push_back("get_sdo_id");
202  return 0; // dummy
203  }
204  virtual char* get_sdo_type()
205  throw (SDOPackage::NotAvailable, SDOPackage::InternalError)
206  {
207  m_log.push_back("get_sdo_type");
208  return 0; // dummy
209  }
210  virtual SDOPackage::DeviceProfile* get_device_profile()
211  throw (SDOPackage::NotAvailable, SDOPackage::InternalError)
212  {
213  m_log.push_back("get_device_profile");
214  return 0; // dummy
215  }
216  virtual SDOPackage::ServiceProfileList* get_service_profiles()
217  throw (SDOPackage::InvalidParameter, SDOPackage::NotAvailable, SDOPackage::InternalError)
218  {
219  m_log.push_back("get_service_profiles");
220  return 0; // dummy
221  }
222  virtual SDOPackage::ServiceProfile* get_service_profile(const char* id)
223  throw (SDOPackage::InvalidParameter, SDOPackage::NotAvailable, SDOPackage::InternalError)
224  {
225  m_log.push_back("get_service_profile");
226  return 0; // dummy
227  }
228  virtual SDOPackage::SDOService_ptr get_sdo_service(const char* id)
229  throw (SDOPackage::InvalidParameter, SDOPackage::NotAvailable, SDOPackage::InternalError)
230  {
231  m_log.push_back("get_sdo_service");
232  return SDOPackage::SDOService::_nil(); // dummy
233  }
234  virtual SDOPackage::Configuration_ptr get_configuration()
235  throw (SDOPackage::InterfaceNotImplemented, SDOPackage::NotAvailable, SDOPackage::InternalError)
236  {
237  m_log.push_back("get_configuration");
238  return SDOPackage::Configuration::_nil(); // dummy
239  }
240  virtual SDOPackage::Monitoring_ptr get_monitoring()
241  throw (SDOPackage::InterfaceNotImplemented, SDOPackage::NotAvailable, SDOPackage::InternalError)
242  {
243  m_log.push_back("get_monitoring");
244  return SDOPackage::Monitoring::_nil(); // dummy
245  }
246  virtual SDOPackage::OrganizationList* get_organizations()
247  throw (SDOPackage::NotAvailable, SDOPackage::InternalError)
248  {
249  m_log.push_back("get_organizations");
250  return 0; // dummy
251  }
253  throw (SDOPackage::NotAvailable, SDOPackage::InternalError)
254  {
255  m_log.push_back("get_status_list");
256  return 0; // dummy
257  }
258  virtual CORBA::Any* get_status(const char* name)
259  throw (SDOPackage::InvalidParameter, SDOPackage::NotAvailable, SDOPackage::InternalError)
260  {
261  m_log.push_back("get_status");
262  return 0; // dummy
263  }
264 
265  // RTC::_impl_RTObject
266  virtual RTC::ComponentProfile* get_component_profile()
267  {
268  m_log.push_back("get_component_profile");
269  // dummy
270  RTC::ComponentProfile_var prof(new RTC::ComponentProfile());
271  return prof._retn();
272  }
274  {
275  m_log.push_back("get_ports");
276  // dummy
277  RTC::PortServiceList_var ports(new RTC::PortServiceList());
278  ports->length(0);
279  return ports._retn();
280  }
281 /*
282  virtual RTC::ExecutionContextServiceList* get_execution_context_services()
283  {
284  m_log.push_back("get_execution_context_services");
285  // dummy
286  RTC::ExecutionContextServiceList_var ec = new RTC::ExecutionContextServiceList();
287  ec->length(0);
288  return ec._retn();
289  }
290 */
291  // RTC::_impl_DataFlowComponentAction
293  {
294  m_log.push_back("on_execute");
295  return RTC::RTC_OK; // dummy
296  }
298  {
299  m_log.push_back("on_state_update");
300  return RTC::RTC_OK; // dummy
301  }
303  {
304  m_log.push_back("on_rate_changed");
305  return RTC::RTC_OK; // dummy
306  }
307  };
308 
310  : public CppUnit::TestFixture
311  {
312  CPPUNIT_TEST_SUITE(ExtTrigExecutionContextTests);
313  CPPUNIT_TEST(test_tick);
314  CPPUNIT_TEST_SUITE_END();
315 
316  private:
317  CORBA::ORB_ptr m_pORB;
318  PortableServer::POA_ptr m_pPOA;
319 
320  public:
325  {
326  int argc(0);
327  char** argv(NULL);
328  m_pORB = CORBA::ORB_init(argc, argv);
329  m_pPOA = PortableServer::POA::_narrow(
330  m_pORB->resolve_initial_references("RootPOA"));
331  m_pPOA->the_POAManager()->activate();
332  }
333 
338  {
339  }
340 
344  virtual void setUp()
345  {
346  }
347 
351  virtual void tearDown()
352  {
353  }
354 
355  void test_tick()
356  {
357  // RTObjectを生成する POA_RTC::LightweightRTObject* rto = new DataFlowComponentMock(); // will be deleted automatically DataFlowComponentMock* mock = dynamic_cast<DataFlowComponentMock*>(rto); // ExecutionContextを生成する RTC::ExtTrigExecutionContext* ec = new RTC::ExtTrigExecutionContext(); // will be deleted automatically CPPUNIT_ASSERT_EQUAL(RTC::RTC_OK, ec->start()); CPPUNIT_ASSERT_EQUAL(RTC::RTC_OK, ec->add_component(rto->_this())); CPPUNIT_ASSERT_EQUAL(RTC::RTC_OK, ec->activate_component(rto->_this())); // tick()呼出を行い、その回数とon_execute()の呼出回数が一致していることを確認する ec->tick(); for (int tickCalledCount = 0; tickCalledCount < 10; tickCalledCount++) { usleep(1000); CPPUNIT_ASSERT_EQUAL(tickCalledCount, mock->countLog("on_execute")); usleep(1000); ec->tick(); } ec->stop(); m_pPOA->deactivate_object(*m_pPOA->servant_to_id(ec)); delete ec; m_pPOA->deactivate_object(*m_pPOA->servant_to_id(rto)); delete rto; } }; }; // namespace ExtTrigExecutionContext /* * Register test suite */ CPPUNIT_TEST_SUITE_REGISTRATION(ExtTrigExecutionContext::ExtTrigExecutionContextTests); #ifdef LOCAL_MAIN int main(int argc, char* argv[]) { FORMAT format = TEXT_OUT; int target = 0; std::string xsl; std::string ns; std::string fname; std::ofstream ofs; int i(1); while (i < argc) { std::string arg(argv[i]); std::string next_arg; if (i + 1 < argc) next_arg = argv[i + 1]; else next_arg = ""; if (arg == "--text") { format = TEXT_OUT; break; } if (arg == "--xml") { if (next_arg == "") { fname = argv[0]; fname += ".xml"; } else { fname = next_arg; } format = XML_OUT; ofs.open(fname.c_str()); } if ( arg == "--compiler" ) { format = COMPILER_OUT; break; } if ( arg == "--cerr" ) { target = 1; break; } if ( arg == "--xsl" ) { if (next_arg == "") xsl = "default.xsl"; else xsl = next_arg; } if ( arg == "--namespace" ) { if (next_arg == "") { std::cerr << "no namespace specified" << std::endl; exit(1); } else { xsl = next_arg; } } ++i; } CppUnit::TextUi::TestRunner runner; if ( ns.empty() ) runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest()); else runner.addTest(CppUnit::TestFactoryRegistry::getRegistry(ns).makeTest()); CppUnit::Outputter* outputter = 0; std::ostream* stream = target ? &std::cerr : &std::cout; switch ( format ) { case TEXT_OUT : outputter = new CppUnit::TextOutputter(&runner.result(),*stream); break; case XML_OUT : std::cout << "XML_OUT" << std::endl; outputter = new CppUnit::XmlOutputter(&runner.result(), ofs, "shift_jis"); static_cast<CppUnit::XmlOutputter*>(outputter)->setStyleSheet(xsl); break; case COMPILER_OUT : outputter = new CppUnit::CompilerOutputter(&runner.result(),*stream); break; } runner.setOutputter(outputter); runner.run(); return 0; // runner.run() ? 0 : 1; } #endif // MAIN #endif // ExtTrigExecutionContext_cpp
358  POA_RTC::LightweightRTObject* rto
359  = new DataFlowComponentMock(); // will be deleted automatically
361  = dynamic_cast<DataFlowComponentMock*>(rto);
362 
363  // ExecutionContextを生成する RTC::ExtTrigExecutionContext* ec = new RTC::ExtTrigExecutionContext(); // will be deleted automatically CPPUNIT_ASSERT_EQUAL(RTC::RTC_OK, ec->start()); CPPUNIT_ASSERT_EQUAL(RTC::RTC_OK, ec->add_component(rto->_this())); CPPUNIT_ASSERT_EQUAL(RTC::RTC_OK, ec->activate_component(rto->_this())); // tick()呼出を行い、その回数とon_execute()の呼出回数が一致していることを確認する ec->tick(); for (int tickCalledCount = 0; tickCalledCount < 10; tickCalledCount++) { usleep(1000); CPPUNIT_ASSERT_EQUAL(tickCalledCount, mock->countLog("on_execute")); usleep(1000); ec->tick(); } ec->stop(); m_pPOA->deactivate_object(*m_pPOA->servant_to_id(ec)); delete ec; m_pPOA->deactivate_object(*m_pPOA->servant_to_id(rto)); delete rto; } }; }; // namespace ExtTrigExecutionContext /* * Register test suite */ CPPUNIT_TEST_SUITE_REGISTRATION(ExtTrigExecutionContext::ExtTrigExecutionContextTests); #ifdef LOCAL_MAIN int main(int argc, char* argv[]) { FORMAT format = TEXT_OUT; int target = 0; std::string xsl; std::string ns; std::string fname; std::ofstream ofs; int i(1); while (i < argc) { std::string arg(argv[i]); std::string next_arg; if (i + 1 < argc) next_arg = argv[i + 1]; else next_arg = ""; if (arg == "--text") { format = TEXT_OUT; break; } if (arg == "--xml") { if (next_arg == "") { fname = argv[0]; fname += ".xml"; } else { fname = next_arg; } format = XML_OUT; ofs.open(fname.c_str()); } if ( arg == "--compiler" ) { format = COMPILER_OUT; break; } if ( arg == "--cerr" ) { target = 1; break; } if ( arg == "--xsl" ) { if (next_arg == "") xsl = "default.xsl"; else xsl = next_arg; } if ( arg == "--namespace" ) { if (next_arg == "") { std::cerr << "no namespace specified" << std::endl; exit(1); } else { xsl = next_arg; } } ++i; } CppUnit::TextUi::TestRunner runner; if ( ns.empty() ) runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest()); else runner.addTest(CppUnit::TestFactoryRegistry::getRegistry(ns).makeTest()); CppUnit::Outputter* outputter = 0; std::ostream* stream = target ? &std::cerr : &std::cout; switch ( format ) { case TEXT_OUT : outputter = new CppUnit::TextOutputter(&runner.result(),*stream); break; case XML_OUT : std::cout << "XML_OUT" << std::endl; outputter = new CppUnit::XmlOutputter(&runner.result(), ofs, "shift_jis"); static_cast<CppUnit::XmlOutputter*>(outputter)->setStyleSheet(xsl); break; case COMPILER_OUT : outputter = new CppUnit::CompilerOutputter(&runner.result(),*stream); break; } runner.setOutputter(outputter); runner.run(); return 0; // runner.run() ? 0 : 1; } #endif // MAIN #endif // ExtTrigExecutionContext_cpp
365  = new RTC::ExtTrigExecutionContext(); // will be deleted automatically
366 
367  CPPUNIT_ASSERT_EQUAL(RTC::RTC_OK, ec->start());
368  CPPUNIT_ASSERT_EQUAL(RTC::RTC_OK, ec->add_component(rto->_this()));
369  CPPUNIT_ASSERT_EQUAL(RTC::RTC_OK, ec->activate_component(rto->_this()));
370 
371  // tick()呼出を行い、その回数とon_execute()の呼出回数が一致していることを確認する ec->tick(); for (int tickCalledCount = 0; tickCalledCount < 10; tickCalledCount++) { usleep(1000); CPPUNIT_ASSERT_EQUAL(tickCalledCount, mock->countLog("on_execute")); usleep(1000); ec->tick(); } ec->stop(); m_pPOA->deactivate_object(*m_pPOA->servant_to_id(ec)); delete ec; m_pPOA->deactivate_object(*m_pPOA->servant_to_id(rto)); delete rto; } }; }; // namespace ExtTrigExecutionContext /* * Register test suite */ CPPUNIT_TEST_SUITE_REGISTRATION(ExtTrigExecutionContext::ExtTrigExecutionContextTests); #ifdef LOCAL_MAIN int main(int argc, char* argv[]) { FORMAT format = TEXT_OUT; int target = 0; std::string xsl; std::string ns; std::string fname; std::ofstream ofs; int i(1); while (i < argc) { std::string arg(argv[i]); std::string next_arg; if (i + 1 < argc) next_arg = argv[i + 1]; else next_arg = ""; if (arg == "--text") { format = TEXT_OUT; break; } if (arg == "--xml") { if (next_arg == "") { fname = argv[0]; fname += ".xml"; } else { fname = next_arg; } format = XML_OUT; ofs.open(fname.c_str()); } if ( arg == "--compiler" ) { format = COMPILER_OUT; break; } if ( arg == "--cerr" ) { target = 1; break; } if ( arg == "--xsl" ) { if (next_arg == "") xsl = "default.xsl"; else xsl = next_arg; } if ( arg == "--namespace" ) { if (next_arg == "") { std::cerr << "no namespace specified" << std::endl; exit(1); } else { xsl = next_arg; } } ++i; } CppUnit::TextUi::TestRunner runner; if ( ns.empty() ) runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest()); else runner.addTest(CppUnit::TestFactoryRegistry::getRegistry(ns).makeTest()); CppUnit::Outputter* outputter = 0; std::ostream* stream = target ? &std::cerr : &std::cout; switch ( format ) { case TEXT_OUT : outputter = new CppUnit::TextOutputter(&runner.result(),*stream); break; case XML_OUT : std::cout << "XML_OUT" << std::endl; outputter = new CppUnit::XmlOutputter(&runner.result(), ofs, "shift_jis"); static_cast<CppUnit::XmlOutputter*>(outputter)->setStyleSheet(xsl); break; case COMPILER_OUT : outputter = new CppUnit::CompilerOutputter(&runner.result(),*stream); break; } runner.setOutputter(outputter); runner.run(); return 0; // runner.run() ? 0 : 1; } #endif // MAIN #endif // ExtTrigExecutionContext_cpp
372  ec->tick();
373  for (int tickCalledCount = 0; tickCalledCount < 10; tickCalledCount++)
374  {
375  usleep(1000);
376  CPPUNIT_ASSERT_EQUAL(tickCalledCount, mock->countLog("on_execute"));
377  usleep(1000);
378  ec->tick();
379  }
380 
381  ec->stop();
382  m_pPOA->deactivate_object(*m_pPOA->servant_to_id(ec));
383  delete ec;
384  m_pPOA->deactivate_object(*m_pPOA->servant_to_id(rto));
385  delete rto;
386  }
387 
388  };
389 }; // namespace ExtTrigExecutionContext
390 
391 /*
392  * Register test suite
393  */
395 
396 #ifdef LOCAL_MAIN
397 int main(int argc, char* argv[])
398 {
399 
400  FORMAT format = TEXT_OUT;
401  int target = 0;
402  std::string xsl;
403  std::string ns;
404  std::string fname;
405  std::ofstream ofs;
406 
407  int i(1);
408  while (i < argc)
409  {
410  std::string arg(argv[i]);
411  std::string next_arg;
412  if (i + 1 < argc) next_arg = argv[i + 1];
413  else next_arg = "";
414 
415  if (arg == "--text") { format = TEXT_OUT; break; }
416  if (arg == "--xml")
417  {
418  if (next_arg == "")
419  {
420  fname = argv[0];
421  fname += ".xml";
422  }
423  else
424  {
425  fname = next_arg;
426  }
427  format = XML_OUT;
428  ofs.open(fname.c_str());
429  }
430  if ( arg == "--compiler" ) { format = COMPILER_OUT; break; }
431  if ( arg == "--cerr" ) { target = 1; break; }
432  if ( arg == "--xsl" )
433  {
434  if (next_arg == "") xsl = "default.xsl";
435  else xsl = next_arg;
436  }
437  if ( arg == "--namespace" )
438  {
439  if (next_arg == "")
440  {
441  std::cerr << "no namespace specified" << std::endl;
442  exit(1);
443  }
444  else
445  {
446  xsl = next_arg;
447  }
448  }
449  ++i;
450  }
451  CppUnit::TextUi::TestRunner runner;
452  if ( ns.empty() )
453  runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest());
454  else
455  runner.addTest(CppUnit::TestFactoryRegistry::getRegistry(ns).makeTest());
456  CppUnit::Outputter* outputter = 0;
457  std::ostream* stream = target ? &std::cerr : &std::cout;
458  switch ( format )
459  {
460  case TEXT_OUT :
461  outputter = new CppUnit::TextOutputter(&runner.result(),*stream);
462  break;
463  case XML_OUT :
464  std::cout << "XML_OUT" << std::endl;
465  outputter = new CppUnit::XmlOutputter(&runner.result(),
466  ofs, "shift_jis");
467  static_cast<CppUnit::XmlOutputter*>(outputter)->setStyleSheet(xsl);
468  break;
469  case COMPILER_OUT :
470  outputter = new CppUnit::CompilerOutputter(&runner.result(),*stream);
471  break;
472  }
473  runner.setOutputter(outputter);
474  runner.run();
475  return 0; // runner.run() ? 0 : 1;
476 }
477 #endif // MAIN
478 #endif // ExtTrigExecutionContext_cpp
virtual RTC::ReturnCode_t on_rate_changed(RTC::UniqueId ec_id)
#define RTC_ERROR(fmt)
Error log output macro.
Definition: SystemLogger.h:422
int main(int argc, char **argv)
EXECUTION_HANDLE_TYPE_NATIVE ExecutionContextHandle_t
Definition: IRTC.h:63
CPPUNIT_TEST_SUITE_REGISTRATION(ExtTrigExecutionContext::ExtTrigExecutionContextTests)
virtual RTC::ExecutionContextHandle_t get_context_handle(RTC::_objref_ExecutionContext *)
ReturnCode_t
Definition: doil.h:53
std::vector< std::pair< std::string, std::string > > NVList
Definition: IRTC.h:67
std::map< RTC::UniqueId, RTC::ExecutionContext_ptr > ExecContexts
virtual SDOPackage::ServiceProfile * get_service_profile(const char *id)
virtual SDOPackage::ServiceProfileList * get_service_profiles()
virtual ReturnCode_t add_component(LightweightRTObject_ptr comp)
Add an RT-component.
virtual RTC::ReturnCode_t on_state_update(RTC::UniqueId ec_id)
virtual RTC::ReturnCode_t on_activated(RTC::UniqueId ec_id)
virtual SDOPackage::Configuration_ptr get_configuration()
virtual RTC::UniqueId attach_context(RTC::ExecutionContext_ptr exec_context)
SDO Package.
virtual RTC::ReturnCode_t on_aborting(RTC::UniqueId ec_id)
virtual RTC::ReturnCode_t on_execute(RTC::UniqueId ec_id)
virtual RTC::_objref_ExecutionContext * get_context(RTC::ExecutionContextHandle_t)
std::vector< ExecutionContext * > ExecutionContextList
Definition: IRTC.h:69
ExecutionContextHandle_t UniqueId
virtual SDOPackage::DeviceProfile * get_device_profile()
virtual ReturnCode_t start(void)
Start the ExecutionContext.
ExtTrigExecutionContext class.
virtual ReturnCode_t activate_component(LightweightRTObject_ptr comp)
Activate an RT-component.
CORBA sequence utility template functions.
virtual RTC::ReturnCode_t on_shutdown(RTC::UniqueId ec_id)
virtual ReturnCode_t stop(void)
Stop the ExecutionContext.
virtual RTC::ReturnCode_t on_startup(RTC::UniqueId ec_id)
virtual RTC::ReturnCode_t on_reset(RTC::UniqueId ec_id)
virtual RTC::ReturnCode_t detach_context(RTC::UniqueId ec_id)
std::vector< IPortService * > PortServiceList
Definition: IPortService.h:39
virtual RTC::ReturnCode_t on_deactivated(RTC::UniqueId ec_id)
virtual SDOPackage::OrganizationList * get_owned_organizations()
virtual void tick()
Move forward one step of ExecutionContext.
virtual RTC::ExecutionContextList * get_participating_contexts()
virtual RTC::ReturnCode_t on_error(RTC::UniqueId ec_id)
virtual CORBA::Boolean is_alive(RTC::ExecutionContext_ptr exec_context)
int usleep(useconds_t usec)
Stop a processing at specified micro second time.
Definition: ace/coil/Time.h:51
ExecutionContext class that enables one step execution.
virtual SDOPackage::OrganizationList * get_organizations()
virtual SDOPackage::SDOService_ptr get_sdo_service(const char *id)


openrtm_aist
Author(s): Noriaki Ando
autogenerated on Mon Jun 10 2019 14:07:52