OpenRTM-aist 2.0.2
読み取り中…
検索中…
一致する文字列を見つけられません
ExecutionContextProfile.h
[詳解]
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 クラス
Definition SystemLogger.h:101
ExecutionContextProfile クラス
Definition ExecutionContextProfile.h:51
void setObjRef(RTC::ExecutionContextService_ptr ec_ptr)
CORBA オブジェクト参照のセット
virtual ~ExecutionContextProfile()
デストラクタ
RTC::ReturnCode_t addComponent(RTC::LightweightRTObject_ptr comp)
RTコンポーネントを追加する
const RTC::RTCList & getComponentList() const
RTコンポーネントの参加者リストを取得する
RTC::ReturnCode_t removeComponent(RTC::LightweightRTObject_ptr comp)
RTコンポーネントを参加者リストから削除する
void setProperties(coil::Properties &props)
Propertiesをセットする
RTC::ExecutionContextProfile * getProfile()
Profileを取得する
RTC::ReturnCode_t setKind(RTC::ExecutionKind kind)
ExecutionKind を設定する
RTC::ReturnCode_t setOwner(RTC::LightweightRTObject_ptr comp)
Ownerコンポーネントをセットする。
void lock() const
ExecutionContextProfileをロックする
const char * getKindString() const
Definition ExecutionContextProfile.h:217
const RTC::ExecutionContextProfile & getProfile() const
Profileを取得する
std::chrono::nanoseconds getPeriod() const
RTC::ReturnCode_t setRate(double rate)
ExecutionContext の実行周期(Hz)を設定する
RTC::ExecutionKind getKind() const
ExecutionKind を取得する
double getRate() const
ExecutionContext の実行周期(Hz)を取得する
static const char * getKindString(RTC::ExecutionKind kind)
ExecutionKind を文字列化する
coil::Properties getProperties() const
Propertiesを取得する
void unlock() const
ExecutionContextProfileをアンロックする
RTC::ReturnCode_t setPeriod(std::chrono::nanoseconds period)
RTC::ExecutionContextService_ptr getObjRef() const
CORBA オブジェクト参照の取得
RTC::RTObject_ptr getOwner() const
Ownerコンポーネントの参照を取得する
ExecutionContextProfile(RTC::ExecutionKind kind=RTC::PERIODIC)
デフォルトコンストラクタ
Definition ExecutionContextProfile.h:29
RTコンポーネント