#include <ExecutionContextWorker.h>
Public メソッド | |
ExecutionContextWorker () | |
デフォルトコンストラクタ | |
virtual | ~ExecutionContextWorker (void) |
void | setECRef (RTC::ExecutionContextService_ptr ref) |
RTC::ExecutionContextService_ptr | getECRef () |
CORBA::Boolean | isRunning (void) |
ExecutionContext 実行状態確認関数. | |
RTC::ReturnCode_t | start (void) |
ExecutionContext の実行を開始. | |
RTC::ReturnCode_t | stop (void) |
ExecutionContext の実行を停止. | |
RTC::ReturnCode_t | activateComponent (RTC::LightweightRTObject_ptr comp, RTObjectStateMachine *&rtobj) |
RTコンポーネントをアクティブ化する. | |
RTC::ReturnCode_t | waitActivateComplete (RTObjectStateMachine *&rtobj, coil::TimeValue timeout=1.0, long int cycle=1000) |
RTC::ReturnCode_t | deactivateComponent (RTC::LightweightRTObject_ptr comp, RTObjectStateMachine *&rtobj) |
RTコンポーネントを非アクティブ化する. | |
RTC::ReturnCode_t | waitDeactivateComplete (RTObjectStateMachine *&rtobj, coil::TimeValue timeout=1.0, long int cycle=1000) |
RTC::ReturnCode_t | resetComponent (RTC::LightweightRTObject_ptr com, RTObjectStateMachine *&rtobj) |
RTコンポーネントをリセットする. | |
RTC::ReturnCode_t | waitResetComplete (RTObjectStateMachine *&rtobj, coil::TimeValue timeout=1.0, long int cycle=1000) |
RTC::LifeCycleState | getComponentState (RTC::LightweightRTObject_ptr comp) |
RTコンポーネントの状態を取得する. | |
const char * | getStateString (RTC::LifeCycleState state) |
RTC::ReturnCode_t | addComponent (RTC::LightweightRTObject_ptr comp) |
RTコンポーネントを追加する. | |
RTC::ReturnCode_t | bindComponent (RTC::RTObject_impl *rtc) |
コンポーネントをバインドする。 | |
RTC::ReturnCode_t | removeComponent (RTC::LightweightRTObject_ptr comp) |
RTコンポーネントを参加者リストから削除する. | |
RTObjectStateMachine * | findComponent (RTC::LightweightRTObject_ptr comp) |
bool | isAllCurrentState (RTC::LifeCycleState state) |
bool | isAllNextState (RTC::LifeCycleState state) |
bool | isOneOfCurrentState (RTC::LifeCycleState state) |
bool | isOneOfNextState (RTC::LifeCycleState state) |
void | invokeWorker () |
void | invokeWorkerPreDo () |
void | invokeWorkerDo () |
void | invokeWorkerPostDo () |
Protected 型 | |
typedef std::vector < RTC_impl::RTObjectStateMachine * > ::iterator | CompItr |
Protected メソッド | |
void | updateComponentList () |
Protected 変数 | |
RTC::Logger | rtclog |
コンポーネント検索用ファンクタ | |
RTC::ExecutionContextService_var | m_ref |
bool | m_running |
ExecutionContext の実行状態 true: running, false: stopped. | |
std::vector < RTC_impl::RTObjectStateMachine * > | m_comps |
コンポーネントの参加者リスト | |
coil::Mutex | m_mutex |
std::vector < RTC_impl::RTObjectStateMachine * > | m_addedComps |
coil::Mutex | m_addedMutex |
std::vector < RTC_impl::RTObjectStateMachine * > | m_removedComps |
coil::Mutex | m_removedMutex |
typedef std::vector<RTC_impl::RTObjectStateMachine*>::iterator RTC_impl::ExecutionContextWorker::CompItr [protected] |
RTC_impl::ExecutionContextWorker::ExecutionContextWorker | ( | ) |
デフォルトコンストラクタ
デフォルトコンストラクタ プロファイルに以下の項目を設定する。
virtual RTC_impl::ExecutionContextWorker::~ExecutionContextWorker | ( | void | ) | [virtual] |
デストラクタ
RTC::ReturnCode_t RTC_impl::ExecutionContextWorker::activateComponent | ( | RTC::LightweightRTObject_ptr | comp, | |
RTObjectStateMachine *& | rtobj | |||
) |
RTコンポーネントをアクティブ化する.
Inactive 状態にあるRTコンポーネントをActive に遷移させ、アクティ ブ化する。この操作が呼ばれた結果、on_activate が呼び出される。指 定したRTコンポーネントが参加者リストに含まれない場合は、 BAD_PARAMETER が返される。指定したRTコンポーネントの状態が Inactive 以外の場合は、PRECONDITION_NOT_MET が返される。
comp | アクティブ化対象RTコンポーネント |
RTC::ReturnCode_t RTC_impl::ExecutionContextWorker::addComponent | ( | RTC::LightweightRTObject_ptr | comp | ) |
RTコンポーネントを追加する.
指定したRTコンポーネントを参加者リストに追加する。追加されたRTコ ンポーネントは attach_context が呼ばれ、Inactive 状態に遷移する。 指定されたRTコンポーネントがnullの場合は、BAD_PARAMETER が返され る。指定されたRTコンポーネントが DataFlowComponent 以外の場合は、 BAD_PARAMETER が返される。
comp | 追加対象RTコンポーネント |
RTC::ReturnCode_t RTC_impl::ExecutionContextWorker::bindComponent | ( | RTC::RTObject_impl * | rtc | ) |
コンポーネントをバインドする。
コンポーネントをバインドする。
rtc | RTコンポーネント |
RTC::ReturnCode_t RTC_impl::ExecutionContextWorker::deactivateComponent | ( | RTC::LightweightRTObject_ptr | comp, | |
RTObjectStateMachine *& | rtobj | |||
) |
RTコンポーネントを非アクティブ化する.
Inactive 状態にあるRTコンポーネントを非アクティブ化し、Inactive に遷移させる。この操作が呼ばれた結果、on_deactivate が呼び出され る。指定したRTコンポーネントが参加者リストに含まれない場合は、 BAD_PARAMETER が返される。指定したRTコンポーネントの状態が Active 以外の場合は、PRECONDITION_NOT_MET が返される。
comp | 非アクティブ化対象RTコンポーネント |
RTObjectStateMachine* RTC_impl::ExecutionContextWorker::findComponent | ( | RTC::LightweightRTObject_ptr | comp | ) |
RTC::LifeCycleState RTC_impl::ExecutionContextWorker::getComponentState | ( | RTC::LightweightRTObject_ptr | comp | ) |
RTコンポーネントの状態を取得する.
指定したRTコンポーネントの状態(LifeCycleState)を取得する。指定し たRTコンポーネントが参加者リストに含まれない場合は、 UNKNOWN_STATE が返される。
comp | 状態取得対象RTコンポーネント |
RTC::ExecutionContextService_ptr RTC_impl::ExecutionContextWorker::getECRef | ( | ) |
const char* RTC_impl::ExecutionContextWorker::getStateString | ( | RTC::LifeCycleState | state | ) | [inline] |
void RTC_impl::ExecutionContextWorker::invokeWorker | ( | ) |
void RTC_impl::ExecutionContextWorker::invokeWorkerDo | ( | ) |
void RTC_impl::ExecutionContextWorker::invokeWorkerPostDo | ( | ) |
void RTC_impl::ExecutionContextWorker::invokeWorkerPreDo | ( | ) |
bool RTC_impl::ExecutionContextWorker::isAllCurrentState | ( | RTC::LifeCycleState | state | ) |
bool RTC_impl::ExecutionContextWorker::isAllNextState | ( | RTC::LifeCycleState | state | ) |
bool RTC_impl::ExecutionContextWorker::isOneOfCurrentState | ( | RTC::LifeCycleState | state | ) |
bool RTC_impl::ExecutionContextWorker::isOneOfNextState | ( | RTC::LifeCycleState | state | ) |
CORBA::Boolean RTC_impl::ExecutionContextWorker::isRunning | ( | void | ) |
ExecutionContext 実行状態確認関数.
この操作は ExecutionContext が Runnning 状態の場合に true を返す。 Executioncontext が Running の間、当該 Executioncontext に参加し ている全てのアクティブRTコンポーネントが、ExecutionContext の実 行種類に応じて実行される。
RTC::ReturnCode_t RTC_impl::ExecutionContextWorker::removeComponent | ( | RTC::LightweightRTObject_ptr | comp | ) |
RTコンポーネントを参加者リストから削除する.
指定したRTコンポーネントを参加者リストから削除する。削除された RTコンポーネントは detach_context が呼ばれる。指定されたRTコンポー ネントが参加者リストに登録されていない場合は、BAD_PARAMETER が返 される。
comp | 削除対象RTコンポーネント |
RTC::ReturnCode_t RTC_impl::ExecutionContextWorker::resetComponent | ( | RTC::LightweightRTObject_ptr | com, | |
RTObjectStateMachine *& | rtobj | |||
) |
RTコンポーネントをリセットする.
Error 状態のRTコンポーネントの復帰を試みる。この操作が呼ばれた結 果、on_reset が呼び出される。指定したRTコンポーネントが参加者リ ストに含まれない場合は、BAD_PARAMETER が返される。指定したRTコン ポーネントの状態が Error 以外の場合は、PRECONDITION_NOT_MET が返 される。
comp | リセット対象RTコンポーネント |
void RTC_impl::ExecutionContextWorker::setECRef | ( | RTC::ExecutionContextService_ptr | ref | ) |
RTC::ReturnCode_t RTC_impl::ExecutionContextWorker::start | ( | void | ) |
ExecutionContext の実行を開始.
ExecutionContext の実行状態を Runnning とするためのリクエストを 発行する。ExecutionContext の状態が遷移すると ComponentAction::on_startup が呼び出される。参加しているRTコンポー ネントが、初期化されるまで ExecutionContext を開始することはでき ない。ExecutionContext は複数回開始/停止を繰り返すことができる。
RTC::ReturnCode_t RTC_impl::ExecutionContextWorker::stop | ( | void | ) |
ExecutionContext の実行を停止.
ExecutionContext の状態を Stopped とするためのリクエストを発行す る。遷移が発生した場合は、ComponentActionon_shutdown が呼び出 される。参加しているRTコンポーネントが終了する前に ExecutionContext を停止する必要がある。ExecutionContext は複数回 開始/停止を繰り返すことができる。
void RTC_impl::ExecutionContextWorker::updateComponentList | ( | ) | [protected] |
RTC::ReturnCode_t RTC_impl::ExecutionContextWorker::waitActivateComplete | ( | RTObjectStateMachine *& | rtobj, | |
coil::TimeValue | timeout = 1.0 , |
|||
long int | cycle = 1000 | |||
) |
RTC::ReturnCode_t RTC_impl::ExecutionContextWorker::waitDeactivateComplete | ( | RTObjectStateMachine *& | rtobj, | |
coil::TimeValue | timeout = 1.0 , |
|||
long int | cycle = 1000 | |||
) |
RTC::ReturnCode_t RTC_impl::ExecutionContextWorker::waitResetComplete | ( | RTObjectStateMachine *& | rtobj, | |
coil::TimeValue | timeout = 1.0 , |
|||
long int | cycle = 1000 | |||
) |
std::vector<RTC_impl::RTObjectStateMachine*> RTC_impl::ExecutionContextWorker::m_addedComps [protected] |
coil::Mutex RTC_impl::ExecutionContextWorker::m_addedMutex [mutable, protected] |
std::vector<RTC_impl::RTObjectStateMachine*> RTC_impl::ExecutionContextWorker::m_comps [protected] |
コンポーネントの参加者リスト
coil::Mutex RTC_impl::ExecutionContextWorker::m_mutex [mutable, protected] |
RTC::ExecutionContextService_var RTC_impl::ExecutionContextWorker::m_ref [protected] |
std::vector<RTC_impl::RTObjectStateMachine*> RTC_impl::ExecutionContextWorker::m_removedComps [protected] |
coil::Mutex RTC_impl::ExecutionContextWorker::m_removedMutex [mutable, protected] |
bool RTC_impl::ExecutionContextWorker::m_running [protected] |
ExecutionContext の実行状態 true: running, false: stopped.
RTC::Logger RTC_impl::ExecutionContextWorker::rtclog [protected] |
コンポーネント検索用ファンクタ
ロガーストリーム