19 #ifndef RTC_EXECUTIONCONTEXTWORKER_H
20 #define RTC_EXECUTIONCONTEXTWORKER_H
22 #include <condition_variable>
24 #include <rtm/idl/RTCSkel.h>
28 #define NUM_OF_LIFECYCLESTATE 4
36 class RTObjectStateMachine;
155 void setECRef(RTC::ExecutionContextService_ptr ref);
314 std::chrono::nanoseconds timeout
315 = std::chrono::seconds(1),
316 long int cycle = 1000);
352 std::chrono::nanoseconds timeout
353 = std::chrono::seconds(1),
354 long int cycle = 1000);
390 std::chrono::nanoseconds timeout
391 = std::chrono::seconds(1),
392 long int cycle = 1000);
423 static const char*
const st[] = {
429 return state >= RTC::CREATED_STATE && state <= RTC::ERROR_STATE ?
569 RTC::ExecutionContextService_var
m_ref;
589 std::vector<RTC_impl::RTObjectStateMachine*>
m_comps;
595 using CompItr = std::vector<RTC_impl::RTObjectStateMachine*>::iterator;
RT component logger class
Logger クラス
Definition: SystemLogger.h:101
RTコンポーネントクラス
Definition: RTObject.h:93
ExecutionContextWorker クラス
Definition: ExecutionContextWorker.h:112
bool isAllNextState(RTC::LifeCycleState state)
RTC::ReturnCode_t activateComponent(RTC::LightweightRTObject_ptr comp, RTObjectStateMachine *&rtobj)
RTコンポーネントをアクティブ化する
CORBA::Boolean isRunning()
ExecutionContext 実行状態確認関数
RTC::ReturnCode_t bindComponent(RTC::RTObject_impl *rtc)
コンポーネントをバインドする。
RTC::ReturnCode_t start()
ExecutionContext の実行を開始
RTC::ReturnCode_t stopThread()
RTC::ReturnCode_t waitResetComplete(RTObjectStateMachine *&rtobj, std::chrono::nanoseconds timeout=std::chrono::seconds(1), long int cycle=1000)
RTC::ReturnCode_t removeComponent(RTC::LightweightRTObject_ptr comp)
RTコンポーネントを参加者リストから削除する
bool isAllCurrentState(RTC::LifeCycleState state)
std::mutex m_addedMutex
Definition: ExecutionContextWorker.h:592
bool m_running
ExecutionContext の実行状態 true: running, false: stopped
Definition: ExecutionContextWorker.h:580
std::mutex m_mutex
Definition: ExecutionContextWorker.h:590
void invokeWorkerPostDo()
RTC::ReturnCode_t startThread()
bool isOneOfNextState(RTC::LifeCycleState state)
std::mutex m_removedMutex
Definition: ExecutionContextWorker.h:594
RTC::LifeCycleState getComponentState(RTC::LightweightRTObject_ptr comp)
RTコンポーネントの状態を取得する
void setECRef(RTC::ExecutionContextService_ptr ref)
RTObjectStateMachine * findComponent(RTC::LightweightRTObject_ptr comp)
RTC::ReturnCode_t resetComponent(RTC::LightweightRTObject_ptr comp, RTObjectStateMachine *&rtobj)
RTコンポーネントをリセットする
RTC::ExecutionContextService_var m_ref
Definition: ExecutionContextWorker.h:569
RTC::ExecutionContextService_ptr getECRef()
RTC::ReturnCode_t stop()
ExecutionContext の実行を停止
RTC::ReturnCode_t deactivateComponent(RTC::LightweightRTObject_ptr comp, RTObjectStateMachine *&rtobj)
RTコンポーネントを非アクティブ化する
virtual ~ExecutionContextWorker()
デストラクタ
RTC::ReturnCode_t rateChanged()
ExecutionContext の実行周期が変更された
bool isOneOfCurrentState(RTC::LifeCycleState state)
RTC::ReturnCode_t addComponent(RTC::LightweightRTObject_ptr comp)
RTコンポーネントを追加する
void updateComponentList()
コンポーネントリストの更新
ExecutionContextWorker()
デフォルトコンストラクタ
std::vector< RTC_impl::RTObjectStateMachine * >::iterator CompItr
Definition: ExecutionContextWorker.h:595
std::vector< RTC_impl::RTObjectStateMachine * > m_comps
コンポーネントの参加者リスト
Definition: ExecutionContextWorker.h:589
static const char * getStateString(RTC::LifeCycleState state)
Definition: ExecutionContextWorker.h:421
RTC::Logger rtclog
ロガーストリーム
Definition: ExecutionContextWorker.h:567
std::vector< RTC_impl::RTObjectStateMachine * > m_addedComps
Definition: ExecutionContextWorker.h:591
RTC::ReturnCode_t waitDeactivateComplete(RTObjectStateMachine *&rtobj, std::chrono::nanoseconds timeout=std::chrono::seconds(1), long int cycle=1000)
RTC::ReturnCode_t waitActivateComplete(RTObjectStateMachine *&rtobj, std::chrono::nanoseconds timeout=std::chrono::seconds(1), long int cycle=1000)
std::vector< RTC_impl::RTObjectStateMachine * > m_removedComps
Definition: ExecutionContextWorker.h:593
Definition: RTObjectStateMachine.h:43
Definition: ExecutionContextProfile.h:29
RTC::LightweightRTObject_var LightweightRTObject_var
Definition: ExecutionContextWorker.h:38
RTC::LightweightRTObject_ptr LightweightRTObject_ptr
Definition: ExecutionContextWorker.h:37