OpenRTM-aist 2.0.2
Loading...
Searching...
No Matches
ExecutionContextProfile.h
Go to the documentation of this file.
1// -*- C++ -*-
19#ifndef RTC_EXECUTIONCONTEXTPROFILE_H
20#define RTC_EXECUTIONCONTEXTPROFILE_H
21
22#include <mutex>
23#include <coil/Properties.h>
24
25#include <rtm/idl/RTCStub.h>
26#include <rtm/SystemLogger.h>
27
28namespace RTC_impl
29{
51 {
52 public:
72 explicit ExecutionContextProfile(RTC::ExecutionKind kind = RTC::PERIODIC);
73
88
112 void setObjRef(RTC::ExecutionContextService_ptr ec_ptr);
113
133 RTC::ExecutionContextService_ptr getObjRef() const;
134
168 RTC::ReturnCode_t setRate(double rate);
169 RTC::ReturnCode_t setPeriod(std::chrono::nanoseconds period);
170
191 double getRate() const;
192 std::chrono::nanoseconds getPeriod() const;
193
216 static const char* getKindString(RTC::ExecutionKind kind) ;
217 const char* getKindString() const
218 {
219 return getKindString(m_profile.kind);
220 }
221
240 RTC::ReturnCode_t setKind(RTC::ExecutionKind kind);
241
261 RTC::ExecutionKind getKind() const;
262
280 RTC::ReturnCode_t setOwner(RTC::LightweightRTObject_ptr comp);
281
298 RTC::RTObject_ptr getOwner() const;
299
331 RTC::ReturnCode_t addComponent(RTC::LightweightRTObject_ptr comp);
332
363 RTC::ReturnCode_t removeComponent(RTC::LightweightRTObject_ptr comp);
364
392#ifndef ORB_IS_RTORB
393 const RTC::RTCList& getComponentList() const;
394#else
395 const RTC_RTCList& getComponentList() const;
396#endif
397
418 void setProperties(coil::Properties& props);
419
439 coil::Properties getProperties() const;
440
463 RTC::ExecutionContextProfile* getProfile();
464
482 const RTC::ExecutionContextProfile& getProfile() const;
483
499 void lock() const;
500
516 void unlock() const;
517
518 private:
526 mutable RTC::Logger rtclog;
534 RTC::ExecutionContextProfile m_profile;
535
543 mutable std::mutex m_profileMutex;
544
552 std::chrono::nanoseconds m_period;
553
561 RTC::ExecutionContextService_var m_ref;
562
563 class find_participant
564 {
565 RTC::RTObject_var m_comp;
566 public:
567 explicit find_participant(RTC::RTObject_ptr comp)
568 : m_comp(RTC::RTObject::_duplicate(comp)) {}
569#ifdef ORB_IS_ORBEXPRESS
570 bool operator()(RTC::RTObject_var comp)
571 {
572 return m_comp->_is_equivalent(comp.in());
573 }
574#else
575 bool operator()(RTC::RTObject_ptr comp)
576 {
577 return m_comp->_is_equivalent(comp);
578 }
579#endif
580 };
581 }; // class ExecutionContextProfile
582} // namespace RTC_impl
583
584#endif // RTC_EXECUTIONCONTEXTPROFILE_H
RT component logger class.
Logger class.
Definition SystemLogger.h:101
ExecutionContextProfile class.
Definition ExecutionContextProfile.h:51
void setObjRef(RTC::ExecutionContextService_ptr ec_ptr)
Setting a CORBA object reference.
virtual ~ExecutionContextProfile()
Destructor.
RTC::ReturnCode_t addComponent(RTC::LightweightRTObject_ptr comp)
Add an RT-component.
const RTC::RTCList & getComponentList() const
Getting participant RTC list.
RTC::ReturnCode_t removeComponent(RTC::LightweightRTObject_ptr comp)
Remove the RT-Component from participant list.
void setProperties(coil::Properties &props)
Setting Properties.
RTC::ExecutionContextProfile * getProfile()
Getting Profile.
RTC::ReturnCode_t setKind(RTC::ExecutionKind kind)
Set the ExecutionKind.
RTC::ReturnCode_t setOwner(RTC::LightweightRTObject_ptr comp)
Setting owner component of the execution context.
void lock() const
Getting a lock of RTC::ExecutionContextProfile.
const char * getKindString() const
Definition ExecutionContextProfile.h:217
const RTC::ExecutionContextProfile & getProfile() const
Getting Profile.
std::chrono::nanoseconds getPeriod() const
RTC::ReturnCode_t setRate(double rate)
Set execution rate(Hz) of ExecutionContext.
RTC::ExecutionKind getKind() const
Get the ExecutionKind.
double getRate() const
Get execution rate(Hz) of ExecutionContext.
static const char * getKindString(RTC::ExecutionKind kind)
Converting ExecutionKind enum to string.
coil::Properties getProperties() const
Setting Properties.
void unlock() const
Release a lock of the RTC::ExecutionContextProfile.
RTC::ReturnCode_t setPeriod(std::chrono::nanoseconds period)
RTC::ExecutionContextService_ptr getObjRef() const
Get the reference to the CORBA object.
RTC::RTObject_ptr getOwner() const
Getting a reference of the owner component.
ExecutionContextProfile(RTC::ExecutionKind kind=RTC::PERIODIC)
Default Constructor.
Definition ExecutionContextProfile.h:29
RT-Component.