PeriodicECSharedComposite.cpp
Go to the documentation of this file.
1 // -*- C++ -*-
19 #include <rtm/RTC.h>
21 #include <rtm/Manager.h>
22 #include <string>
23 #include <iostream>
24 #include <iterator>
25 
26 
27 static const char* periodicecsharedcomposite_spec[] =
28  {
29  "implementation_id", "PeriodicECSharedComposite",
30  "type_name", "PeriodicECSharedComposite",
31  "description", "PeriodicECSharedComposite",
32  "version", "1.0",
33  "vendor", "jp.go.aist",
34  "category", "composite.PeriodicECShared",
35  "activity_type", "DataFlowComponent",
36  "max_instance", "0",
37  "language", "C++",
38  "lang_type", "compile",
39  "exported_ports", "",
40  "conf.default.members", "",
41  "conf.default.exported_ports", "",
42  ""
43  };
44 
45 namespace SDOPackage
46 {
55  : Organization_impl(rtobj->getObjRef()),
56  rtclog("PeriodicECOrganization"),
57  m_rtobj(rtobj),
58  m_ec(::RTC::ExecutionContext::_nil())
59  {
60  }
61 
70  {
71  ;
72  }
73 
81  CORBA::Boolean PeriodicECOrganization::add_members(const SDOList& sdo_list)
82  throw (CORBA::SystemException,
83  InvalidParameter, NotAvailable, InternalError)
84  {
85  RTC_DEBUG(("add_members()"));
86 
88 
89  for (::CORBA::ULong i(0), len(sdo_list.length()); i < len; ++i)
90  {
91  const SDO_var sdo(sdo_list[i]);
92  ::OpenRTM::DataFlowComponent_var dfc;
93 #ifndef ORB_IS_RTORB
94  if (!sdoToDFC(sdo.in(), dfc.out())) { continue; }
95 #else // ORB_IS_RTORB
96  ::OpenRTM::DataFlowComponent_ptr dfc_ptr(dfc.object());
97  if (!sdoToDFC(sdo.in(), dfc_ptr)) { continue; }
98 #endif // ORB_IS_RTORB
99 
100  Member member(dfc.in());
101  stopOwnedEC(member);
102  addOrganizationToTarget(member);
103  addParticipantToEC(member);
104  addPort(member, m_expPorts);
105  m_rtcMembers.push_back(member);
106  }
107 
108  CORBA::Boolean result;
110 
111  return result;
112  }
113 
121  CORBA::Boolean PeriodicECOrganization::set_members(const SDOList& sdo_list)
122  throw (CORBA::SystemException,
123  InvalidParameter, NotAvailable, InternalError)
124  {
125 
126  RTC_DEBUG(("set_members()"));
129 
130  for (::CORBA::ULong i(0), len(sdo_list.length()); i < len; ++i)
131  {
132 #ifndef ORB_IS_RTORB
133  const SDO_var sdo = sdo_list[i];
134  ::OpenRTM::DataFlowComponent_var dfc;
135  if (!sdoToDFC(sdo.in(), dfc.out())) { continue; }
136 #else // ORB_IS_RTORB
137  const SDO_var sdo = sdo_list[i].object();
138 
139  ::OpenRTM::DataFlowComponent_var dfc;
140  ::OpenRTM::DataFlowComponent_ptr dfc_ptr(dfc);
141 
142  if (!sdoToDFC(sdo.in(), dfc_ptr)) { continue; }
143 #endif // ORB_IS_RTORB
144 
145  Member member(dfc.in());
146 
147 
148  stopOwnedEC(member);
149  addOrganizationToTarget(member);
150  addParticipantToEC(member);
151  addPort(member, m_expPorts);
152  m_rtcMembers.push_back(member);
153  }
154 
155  CORBA::Boolean result;
157 
158  return result;
159  }
160 
168  CORBA::Boolean PeriodicECOrganization::remove_member(const char* id)
169  throw (CORBA::SystemException,
170  InvalidParameter, NotAvailable, InternalError)
171  {
172  RTC_DEBUG(("remove_member(id = %s)", id));
173  for (MemIt it(m_rtcMembers.begin()); it != m_rtcMembers.end();)
174  {
175  Member& member(*it);
176  if (strncmp(id, member.profile_->instance_name, strlen(id)))
177  {
178  ++it;
179  continue;
180  }
181 
182  removePort(member, m_expPorts);
183  m_rtobj->getProperties()["conf.default.exported_ports"] =
185 
186  removeParticipantFromEC(member);
188  startOwnedEC(member);
189  it = m_rtcMembers.erase(it);
190  }
191 
192  CORBA::Boolean result;
194  return result;
195  }
196 
205  {
206  RTC_TRACE(("removeAllMembers()"));
208  MemIt it(m_rtcMembers.begin());
209  MemIt it_end(m_rtcMembers.end());
210  while (it != it_end)
211  {
212  Member& member(*it);
213  removePort(member, m_expPorts);
214  removeParticipantFromEC(member);
216  startOwnedEC(member);
218  ++it;
219  }
220  m_rtcMembers.clear();
221  m_expPorts.clear();
222  }
223 
231  bool
233  ::OpenRTM::DataFlowComponent_ptr& dfc)
234  {
235  if (::CORBA::is_nil(sdo)) return false;
236 
237  // narrowing: SDO -> RTC (DataFlowComponent)
238  dfc = ::OpenRTM::DataFlowComponent::_narrow(sdo);
239  if (::CORBA::is_nil(dfc)) return false;
240  return true;
241  }
242 
251  {
252  // stop target RTC's ExecutionContext
253  ::RTC::ExecutionContextList_var ecs(member.eclist_);
254  for (::CORBA::ULong i(0), len(ecs->length()); i < len; ++i)
255  {
256  ecs[i]->stop();
257  }
258  return;
259  }
260 
269  {
270  // start target RTC's ExecutionContext
271  ::RTC::ExecutionContextList_var ecs(member.eclist_);
272  for (::CORBA::ULong i(0), len(ecs->length()); i < len; ++i)
273  {
274  ecs[i]->start();
275  }
276  return;
277  }
278 
287  {
288  // get given RTC's configuration object
289  // Configuration_var conf(member.config_.in());
290  Configuration_var conf(member.config_);
291  if (::CORBA::is_nil(conf)) return;
292 
293  // set organization to target RTC's conf
294  conf->add_organization(m_objref);
295  }
296 
305  {
306  // get given RTC's configuration object
307  if (::CORBA::is_nil(member.config_)) { return; }
308 
309  // set organization to target RTC's conf
310  member.config_->remove_organization(m_pId.c_str());
311  }
312 
321  {
322  if (::CORBA::is_nil(m_ec))
323  {
324  ::RTC::ExecutionContextList_var ecs(m_rtobj->get_owned_contexts());
325  if (ecs->length() > 0)
326  {
327  m_ec = ecs[0];
328  }
329  else
330  {
331  return;
332  }
333  }
334  // set ec to target RTC
335  m_ec->add_component(member.rtobj_.in());
336 
337  OrganizationList_var orglist = member.rtobj_->get_organizations();
338  for (CORBA::ULong i(0); i < orglist->length(); ++i)
339  {
340  SDOList_var sdos = orglist[i]->get_members();
341  for (CORBA::ULong j(0); j < sdos->length(); ++j)
342  {
343 #ifndef ORB_IS_RTORB
344  ::OpenRTM::DataFlowComponent_var dfc;
345  if (!sdoToDFC(sdos[j].in(), dfc.out())) { continue; }
346 #else // ORB_IS_RTORB
347  ::OpenRTM::DataFlowComponent_var dfc;
348  ::OpenRTM::DataFlowComponent_ptr dfc_ptr(dfc);
349  if (!sdoToDFC(sdos[j].in(), dfc_ptr)) { continue; }
350 #endif // ORB_IS_RTORB
351  m_ec->add_component(dfc.in());
352  }
353  }
354 
355 
356  }
357 
366  {
367  if (::CORBA::is_nil(m_ec))
368  {
369  ::RTC::ExecutionContextList_var ecs(m_rtobj->get_owned_contexts());
370  if (ecs->length() == 0)
371  {
372  RTC_FATAL(("no owned EC"));
373  return;
374  }
375  m_ec = ecs[0];
376  }
377  m_ec->remove_component(member.rtobj_.in());
378 
379  OrganizationList_var orglist = member.rtobj_->get_organizations();
380  for (CORBA::ULong i(0); i < orglist->length(); ++i)
381  {
382  SDOList_var sdos = orglist[i]->get_members();
383  for (CORBA::ULong j(0); j < sdos->length(); ++j)
384  {
385 #ifndef ORB_IS_RTORB
386  ::OpenRTM::DataFlowComponent_var dfc;
387  if (!sdoToDFC(sdos[j].in(), dfc.out())) { continue; }
388 #else // ORB_IS_RTORB
389  ::OpenRTM::DataFlowComponent_var dfc;
390  ::OpenRTM::DataFlowComponent_ptr dfc_ptr(dfc);
391  if (!sdoToDFC(sdos[j].in(), dfc_ptr)) { continue; }
392 #endif // ORB_IS_RTORB
393  m_ec->remove_component(dfc.in());
394  }
395  }
396  }
397 
405  void
407  PortList& portlist)
408  {
409  RTC_TRACE(("addPort(%s)", ::coil::flatten(portlist).c_str()));
410  if (portlist.size() == 0) { return; }
411 
412  std::string comp_name(member.profile_->instance_name);
413 #ifndef ORB_IS_RTORB
414  ::RTC::PortProfileList& plist(member.profile_->port_profiles);
415 #else // ORB_IS_RTORB
416  ::RTC::PortProfileList plist(member.profile_->port_profiles);
417 #endif // ORB_IS_RTORB
418 
419  // port delegation
420  for (::CORBA::ULong i(0), len(plist.length()); i < len; ++i)
421  {
422  std::string port_name(plist[i].name);
423 
424  RTC_DEBUG(("port_name: %s is in %s?",
425  port_name.c_str(),
426  ::coil::flatten(portlist).c_str()));
427 
428  std::vector<std::string>::iterator pos =
429  std::find(portlist.begin(), portlist.end(), port_name);
430  if (pos == portlist.end())
431  {
432  RTC_DEBUG(("Not found: %s is in %s?",
433  port_name.c_str(),
434  ::coil::flatten(portlist).c_str()));
435  continue;
436  }
437 
438  RTC_DEBUG(("Found: %s is in %s",
439  port_name.c_str(),
440  ::coil::flatten(portlist).c_str()));
441 
442  m_rtobj->addPort(plist[i].port_ref);
443 
444  RTC_DEBUG(("Port %s was delegated.", port_name.c_str()));
445 
446  }
447  }
448 
457  PortList& portlist)
458  {
459  RTC_TRACE(("removePort(%s)", coil::flatten(portlist).c_str()));
460  if (portlist.size() == 0) { return; }
461 
462  std::string comp_name(member.profile_->instance_name);
463 #ifndef ORB_IS_RTORB
464  ::RTC::PortProfileList& plist(member.profile_->port_profiles);
465 #else // ORB_IS_RTORB
466  ::RTC::PortProfileList plist(member.profile_->port_profiles);
467 #endif // ORB_IS_RTORB
468 
469  // port delegation
470  for (::CORBA::ULong i(0), len(plist.length()); i < len; ++i)
471  {
472  // port name -> comp_name.port_name
473  std::string port_name(plist[i].name);
474 
475  RTC_DEBUG(("port_name: %s is in %s?",
476  port_name.c_str(),
477  ::coil::flatten(portlist).c_str()));
478 
479  std::vector<std::string>::iterator pos =
480  std::find(portlist.begin(), portlist.end(), port_name);
481  if (pos == portlist.end())
482  {
483  RTC_DEBUG(("Not found: %s is in %s?",
484  port_name.c_str(),
485  ::coil::flatten(portlist).c_str()));
486  continue;
487  }
488 
489  RTC_DEBUG(("Found: %s is in %s",
490  port_name.c_str(),
491  ::coil::flatten(portlist).c_str()));
492 
493  m_rtobj->removePort(plist[i].port_ref);
494  portlist.erase(pos);
495 
496  RTC_DEBUG(("Port %s was deleted.", port_name.c_str()));
497  }
498  }
499 
508  {
509  std::string plist(m_rtobj->getProperties()["conf.default.exported_ports"]);
510  m_expPorts = ::coil::split(plist, ",");
511  }
512 
521  {
522  std::vector<std::string>& oldPorts(m_expPorts);
523  std::sort(oldPorts.begin(),oldPorts.end());
524  std::vector<std::string>
525  newPorts(coil::split(m_rtobj->getProperties()["conf.default.exported_ports"], ","));
526  std::sort(newPorts.begin(),newPorts.end());
527 
528  std::vector<std::string> removedPorts; // oldPorts - interPorts
529  std::vector<std::string> createdPorts; // newPorts - interPorts
530 
531  set_difference(oldPorts.begin(), oldPorts.end(),
532  newPorts.begin(), newPorts.end(),
533  std::back_inserter(removedPorts));
534  set_difference(newPorts.begin(), newPorts.end(),
535  oldPorts.begin(), oldPorts.end(),
536  std::back_inserter(createdPorts));
537 
538  RTC_VERBOSE(("old ports: %s", ::coil::flatten(oldPorts).c_str()));
539  RTC_VERBOSE(("new ports: %s", ::coil::flatten(newPorts).c_str()));
540  RTC_VERBOSE(("remove ports: %s", ::coil::flatten(removedPorts).c_str()));
541  RTC_VERBOSE(("add ports: %s", ::coil::flatten(createdPorts).c_str()));
542 
543  for (int i(0), len(m_rtcMembers.size()); i < len; ++i)
544  {
545  removePort(m_rtcMembers[i], removedPorts);
546  addPort(m_rtcMembers[i], createdPorts);
547  }
548 
549  m_expPorts = newPorts;
550  }
551 
552 };
553 
554 
555 
556 bool stringToStrVec(std::vector<std::string>& v, const char* is)
557 {
558  std::string s(is);
559  v = coil::split(s ,",");
560  return true;
561 }
562 
563 namespace RTC
564 {
567  {
568  public:
570  virtual ~setCallback(){};
571  virtual void operator()(const coil::Properties& config_set)
572  {
573  m_org->updateDelegatedPorts();
574  }
575  private:
577  };
578 
579 
582  {
583  public:
585  virtual ~addCallback(){};
586  virtual void operator()(const coil::Properties& config_set)
587  {
588  m_org->updateDelegatedPorts();
589  }
590  private:
592  };
593 
601  PeriodicECSharedComposite::PeriodicECSharedComposite(Manager* manager)
602  : RTObject_impl(manager)
603  {
604  m_ref = this->_this();
605  m_objref = RTC::RTObject::_duplicate(m_ref);
608  ::SDOPackage::Organization::_duplicate(m_org->getObjRef()));
609  bindParameter("members", m_members, "", stringToStrVec);
610 
613 
614  }
615 
616 
625  {
626  RTC_TRACE(("~PeriodicECSharedComposite()"));
627  }
628 
629 
638  {
639  RTC_TRACE(("onInitialize()"));
640 
641  std::string active_set;
642  active_set = m_properties.getProperty("configuration.active_config",
643  "default");
644  if (m_configsets.haveConfig(active_set.c_str()))
645  {
646  m_configsets.update(active_set.c_str());
647  }
648  else
649  {
650  m_configsets.update("default");
651  }
652 
654 
655  std::vector<RTObject_impl*> comps = mgr.getComponents();
656 
657  ::SDOPackage::SDOList sdos;
658  for (int i(0), len(m_members.size()); i < len; ++i)
659  {
660  RTObject_impl* rtc = mgr.getComponent(m_members[i].c_str());
661  if (rtc == NULL) {
662  continue;
663  }
664 
665  ::SDOPackage::SDO_var sdo;
666 #ifndef ORB_IS_RTORB
667  sdo = ::SDOPackage::SDO::_duplicate(rtc->getObjRef());
668  if (::CORBA::is_nil(sdo)) continue;
669 
670  ::CORBA_SeqUtil::push_back(sdos, sdo);
671 #else // ORB_IS_RTORB
672  sdo = ::SDOPackage::SDO::_duplicate((rtc->getObjRef()).in());
673  if (::CORBA::is_nil(sdo)) continue;
674 
675  ::CORBA_SeqUtil::push_back(sdos, ::SDOPackage::SDO_ptr(sdo));
676 #endif // ORB_IS_RTORB
677  }
678 
679  try
680  {
681  m_org->set_members(sdos);
682  }
683  catch (...)
684  {
685  }
687  }
688 
697  {
698  RTC_TRACE(("onActivated(%d)", exec_handle));
699  ::RTC::ExecutionContextList_var ecs(get_owned_contexts());
700  ::SDOPackage::SDOList_var sdos(m_org->get_members());
701 
702  for (::CORBA::ULong i(0), len(sdos->length()); i < len; ++i)
703  {
704  ::RTC::RTObject_var rtc(::RTC::RTObject::_narrow(sdos[i]));
705  ecs[0]->activate_component(rtc.in());
706  }
707  RTC_DEBUG(("%d member RTC%s activated.", sdos->length(),
708  sdos->length() == 1 ? " was" : "s were"));
710  }
711 
720  {
721  RTC_TRACE(("onDeactivated(%d)", exec_handle));
722  ::RTC::ExecutionContextList_var ecs(get_owned_contexts());
723  ::SDOPackage::SDOList_var sdos(m_org->get_members());
724 
725  for (::CORBA::ULong i(0), len(sdos->length()); i < len; ++i)
726  {
727  ::RTC::RTObject_var rtc(::RTC::RTObject::_narrow(sdos[i]));
728  ecs[0]->deactivate_component(rtc.in());
729  }
731  }
732 
741  {
742  RTC_TRACE(("onReset(%d)", exec_handle));
743  ::RTC::ExecutionContextList_var ecs(get_owned_contexts());
744  ::SDOPackage::SDOList_var sdos(m_org->get_members());
745 
746  for (::CORBA::ULong i(0), len(sdos->length()); i < len; ++i)
747  {
748  ::RTC::RTObject_var rtc(::RTC::RTObject::_narrow(sdos[i]));
749  ecs[0]->reset_component(rtc.in());
750  }
752  }
753 
762  {
763  RTC_TRACE(("onFinalize()"));
765  RTC_PARANOID(("onFinalize() done"));
766  return RTC::RTC_OK;
767  }
768 
769 }; // namespace RTC
770 
771 extern "C"
772 {
774  {
776  manager->registerFactory(profile,
777  RTC::Create<RTC::PeriodicECSharedComposite>,
778  RTC::Delete<RTC::PeriodicECSharedComposite>);
779  }
780 };
virtual ReturnCode_t onActivated(RTC::UniqueId exec_handle)
Callback function to activate.
virtual ReturnCode_t onReset(RTC::UniqueId exec_handle)
Callback function to reset.
void removeAllMembers(void)
Remove a member of Organization.
virtual SDOList * get_members()
[CORBA interface] Get the member list of the Organization
RT-Component.
::RTC::ExecutionContext_var m_ec
ExecutionContext Object reference.
SDOPackage::PeriodicECOrganization * m_org
Reference of Organization.
virtual void operator()(const coil::Properties &config_set)
Virtual Callback function.
RTObject_impl * getComponent(const char *instance_name)
Get RT-Component&#39;s pointer.
Definition: Manager.cpp:803
ReturnCode_t
Definition: doil.h:53
comp_name
Definition: omniwxs.py:74
::RTC::RTObject_impl * m_rtobj
RT Object.
std::vector< std::string > m_members
Components.
void stopOwnedEC(Member &member)
Stop Owned ExecutionContexts.
virtual ~PeriodicECSharedComposite(void)
Destructor.
RT-Component class.
Definition: RTObject.h:89
ConfigurationSetListener class.
vstring split(const std::string &input, const std::string &delimiter, bool ignore_empty)
Split string by delimiter.
Definition: stringutil.cpp:341
Manager class.
Definition: Manager.h:80
bool removePort(PortBase &port)
[local interface] Unregister Port
Definition: RTObject.cpp:1746
setCallback(::SDOPackage::PeriodicECOrganization *org)
bool sdoToDFC(const SDO_ptr sdo,::OpenRTM::DataFlowComponent_ptr &dfc)
Conversion from SDO to DFC.
coil::Properties & getProperties()
[local interface] Get RTC property
Definition: RTObject.cpp:1525
static Manager & instance()
Get instance of the manager.
Definition: Manager.cpp:140
std::vector< Member > m_rtcMembers
Member list.
SDO Package.
virtual ReturnCode_t onFinalize(void)
[ComponentAction CORBA interface] Finalize RTC
RTComponent manager class.
#define RTC_FATAL(fmt)
Error log output macro.
Definition: SystemLogger.h:400
#define RTC_PARANOID(fmt)
Paranoid level log output macro.
Definition: SystemLogger.h:555
SDOPackage::OrganizationList m_sdoOwnedOrganizations
SDO owned organization list.
Definition: RTObject.h:4523
Periodic Execution Context Shared Composite Component class.
void update(void)
Update the values of configuration parameters (Active configuration set)
Definition: ConfigAdmin.cpp:64
::SDOPackage::PeriodicECOrganization * m_org
ExecutionContextHandle_t UniqueId
virtual void operator()(const coil::Properties &config_set)
Virtual Callback function.
#define RTC_DEBUG(fmt)
Debug level log output macro.
Definition: SystemLogger.h:488
virtual CORBA::Boolean set_members(const SDOList &sdos)
[CORBA interface] Set SDO
std::string flatten(vstring sv)
Create CSV file from the given string list.
Definition: stringutil.cpp:549
bool bindParameter(const char *param_name, VarType &var, const char *def_val, bool(*trans)(VarType &, const char *)=coil::stringTo)
Setup for configuration parameters.
Definition: RTObject.h:2251
#define RTC_TRACE(fmt)
void setOnSetConfigurationSet(OnSetConfigurationSetCallback *cb)
def j(str, encoding="cp932")
Definition: RunAtFirst.py:198
CORBA::Long find(const CorbaSequence &seq, Functor f)
Return the index of CORBA sequence element that functor matches.
std::string m_pId
The identifier of the Organization.
OpenRTM::DataFlowComponent_var m_ref
Reference of object.
Organization implementation class.
virtual CORBA::Boolean remove_member(const char *id)
[CORBA interface] Remove member SDO from Organization
addCallback(::SDOPackage::PeriodicECOrganization *org)
ConfigAdmin m_configsets
Configuration Administrator Object.
Definition: RTObject.h:4696
void updateExportedPortsList(void)
PortsList is updated.
virtual ::CORBA::Boolean remove_member(const char *id)
[CORBA interface] Remove a member of Organization
void addPort(Member &member, PortList &portlist)
Delegate given RTC&#39;s ports to the Composite.
void startOwnedEC(Member &member)
Start Owned ExecutionContexts.
void removeParticipantFromEC(Member &member)
Remove participant DFC from CompositeRTC&#39;s ExecutionContext.
virtual ExecutionContextList * get_owned_contexts()
[CORBA interface] Get ExecutionContextList.
Definition: RTObject.cpp:499
bool stringToStrVec(std::vector< std::string > &v, const char *is)
Class represents a set of properties.
Definition: Properties.h:101
virtual ::CORBA::Boolean set_members(const SDOList &sdos)
[CORBA interface] Set Organization member
virtual ReturnCode_t onDeactivated(RTC::UniqueId exec_handle)
Callback function to deactivate.
::SDOPackage::PeriodicECOrganization * m_org
bool addPort(PortBase &port)
[local interface] Register Port
Definition: RTObject.cpp:1558
void removeOrganizationFromTarget(Member &member)
Remove Organization object from a target DFC.
void push_back(CorbaSequence &seq, SequenceElement elem)
Push the new element back to the CORBA sequence.
RTComponent header.
static const char * periodicecsharedcomposite_spec[]
virtual ~PeriodicECOrganization(void)
Destructor.
void setOnAddConfigurationSet(OnAddConfigurationAddCallback *cb)
coil::Properties m_properties
Alive Status Flag.
Definition: RTObject.h:4687
void removePort(Member &member, PortList &portlist)
Remove delegated participatns&#39;s ports from the composite.
RTObject_var m_objref
Object reference.
Definition: RTObject.h:4597
void PeriodicECSharedCompositeInit(RTC::Manager *manager)
std::vector< Member >::iterator MemIt
bool haveConfig(const char *config_id)
Check the existence of configuration set.
Definition: ConfigAdmin.h:822
std::vector< PortProfile * > PortProfileList
Definition: IPortService.h:63
bool registerFactory(coil::Properties &profile, RtcNewFunc new_func, RtcDeleteFunc delete_func)
Register RT-Component Factory.
Definition: Manager.cpp:433
#define RTC_VERBOSE(fmt)
Verbose level log output macro.
Definition: SystemLogger.h:533
void addParticipantToEC(Member &member)
Set CompositeRTC&#39;s ExecutionContext to the given DFC.
virtual ReturnCode_t onInitialize(void)
Initialization.
virtual ::CORBA::Boolean add_members(const SDOList &sdo_list)
[CORBA interface] Add Organization member
void addOrganizationToTarget(Member &member)
Set Organization object to target DFC.
void updateDelegatedPorts(void)
Update/Remove a member of Organization.
RTObject_ptr getObjRef() const
[local interface] Get the object reference
Definition: RTObject.cpp:1483
const std::string & getProperty(const std::string &key) const
Search for the property with the specified key in this property.
Definition: Properties.cpp:156
std::vector< RTObject_impl * > getComponents()
Get all RT-Components registered in the Manager.
Definition: Manager.cpp:816
virtual CORBA::Boolean add_members(const SDOList &sdo_list)
[CORBA interface] Add the member SDOs
PeriodicECOrganization(::RTC::RTObject_impl *rtobj)
Constructor.


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