PeriodicExecutionContext クラス. [詳細]
#include <PeriodicExecutionContext.h>
構成 | |
struct | WorkerThreadCtrl |
worker 用状態変数クラス [詳細] | |
Public メソッド | |
PeriodicExecutionContext () | |
デフォルトコンストラクタ | |
virtual | ~PeriodicExecutionContext (void) |
virtual int | open (void *args) |
ExecutionContext用アクティビティスレッドを生成する. | |
virtual int | svc (void) |
ExecutionContext 用のスレッド実行関数. | |
virtual int | close (unsigned long flags) |
ExecutionContext 用のスレッド実行関数. | |
virtual CORBA::Boolean | is_running (void) throw (CORBA::SystemException) |
ExecutionContext 実行状態確認関数. | |
virtual RTC::ReturnCode_t | start (void) throw (CORBA::SystemException) |
ExecutionContext の実行を開始. | |
virtual RTC::ReturnCode_t | stop (void) throw (CORBA::SystemException) |
ExecutionContext の実行を停止. | |
virtual CORBA::Double | get_rate (void) throw (CORBA::SystemException) |
ExecutionContext の実行周期(Hz)を取得する. | |
virtual RTC::ReturnCode_t | set_rate (CORBA::Double rate) throw (CORBA::SystemException) |
ExecutionContext の実行周期(Hz)を設定する. | |
virtual RTC::ReturnCode_t | activate_component (RTC::LightweightRTObject_ptr comp) throw (CORBA::SystemException) |
RTコンポーネントをアクティブ化する. | |
virtual RTC::ReturnCode_t | deactivate_component (RTC::LightweightRTObject_ptr comp) throw (CORBA::SystemException) |
RTコンポーネントを非アクティブ化する. | |
virtual RTC::ReturnCode_t | reset_component (RTC::LightweightRTObject_ptr comp) throw (CORBA::SystemException) |
RTコンポーネントをリセットする. | |
virtual RTC::LifeCycleState | get_component_state (RTC::LightweightRTObject_ptr comp) throw (CORBA::SystemException) |
RTコンポーネントの状態を取得する. | |
virtual RTC::ExecutionKind | get_kind (void) throw (CORBA::SystemException) |
ExecutionKind を取得する. | |
virtual RTC::ReturnCode_t | add_component (RTC::LightweightRTObject_ptr comp) throw (CORBA::SystemException) |
RTコンポーネントを追加する. | |
virtual RTC::ReturnCode_t | remove_component (RTC::LightweightRTObject_ptr comp) throw (CORBA::SystemException) |
RTコンポーネントを参加者リストから削除する. | |
virtual RTC::ExecutionContextProfile * | get_profile (void) throw (CORBA::SystemException) |
ExecutionContextProfile を取得する. | |
Protected メソッド | |
virtual RTC::ReturnCode_t | onStarted () |
onStarted() template function | |
virtual RTC::ReturnCode_t | onStopping () |
onStopping() template function | |
virtual RTC::ReturnCode_t | onWaitingActivated (RTC_impl::RTObjectStateMachine *comp, long int count) |
onWaitingActivated() template function | |
virtual RTC::ReturnCode_t | onActivated (RTC_impl::RTObjectStateMachine *comp, long int count) |
onActivated() template function | |
virtual RTC::ReturnCode_t | onWaitingDeactivated (RTC_impl::RTObjectStateMachine *comp, long int count) |
onWaitingDeactivated() template function | |
virtual RTC::ReturnCode_t | onDeactivated (RTC_impl::RTObjectStateMachine *comp, long int count) |
onDeactivated() template function | |
virtual RTC::ReturnCode_t | onWaitingReset (RTC_impl::RTObjectStateMachine *comp, long int count) |
onWaitingReset() template function | |
virtual RTC::ReturnCode_t | onReset (RTC_impl::RTObjectStateMachine *comp, long int count) |
onReset() template function | |
bool | threadRunning () |
Protected 変数 | |
RTC::Logger | rtclog |
ロガーストリーム | |
bool | m_svc |
ExecutionContext のスレッド実行フラグ. | |
coil::Mutex | m_svcmutex |
WorkerThreadCtrl | m_workerthread |
svn用の状態変数 | |
bool | m_nowait |
ExecutionContext 即時実行(wait無し実行)フラグ. |
Periodic Sampled Data Processing(周期実行用)ExecutionContextクラス。
RTC_exp::PeriodicExecutionContext::PeriodicExecutionContext | ( | ) |
デフォルトコンストラクタ
デフォルトコンストラクタ プロファイルに以下の項目を設定する。
virtual RTC_exp::PeriodicExecutionContext::~PeriodicExecutionContext | ( | void | ) | [virtual] |
デストラクタ
virtual RTC::ReturnCode_t RTC_exp::PeriodicExecutionContext::activate_component | ( | RTC::LightweightRTObject_ptr | comp | ) | throw (CORBA::SystemException) [virtual] |
RTコンポーネントをアクティブ化する.
Inactive 状態にあるRTコンポーネントをActive に遷移させ、アクティ ブ化する。この操作が呼ばれた結果、on_activate が呼び出される。指 定したRTコンポーネントが参加者リストに含まれない場合は、 BAD_PARAMETER が返される。指定したRTコンポーネントの状態が Inactive 以外の場合は、PRECONDITION_NOT_MET が返される。
comp | アクティブ化対象RTコンポーネント |
virtual RTC::ReturnCode_t RTC_exp::PeriodicExecutionContext::add_component | ( | RTC::LightweightRTObject_ptr | comp | ) | throw (CORBA::SystemException) [virtual] |
RTコンポーネントを追加する.
指定したRTコンポーネントを参加者リストに追加する。追加されたRTコ ンポーネントは attach_context が呼ばれ、Inactive 状態に遷移する。 指定されたRTコンポーネントがnullの場合は、BAD_PARAMETER が返され る。指定されたRTコンポーネントが DataFlowComponent 以外の場合は、 BAD_PARAMETER が返される。
comp | 追加対象RTコンポーネント |
virtual int RTC_exp::PeriodicExecutionContext::close | ( | unsigned long | flags | ) | [virtual] |
ExecutionContext 用のスレッド実行関数.
ExecutionContext 用のスレッド終了時に呼ばれる。コンポーネントオ ブジェクトの非アクティブ化、マネージャへの通知を行う。これは coil::Task サービスクラスメソッドのオーバーライド。
flags | 終了処理フラグ |
coil::Taskを再定義しています。
virtual RTC::ReturnCode_t RTC_exp::PeriodicExecutionContext::deactivate_component | ( | RTC::LightweightRTObject_ptr | comp | ) | throw (CORBA::SystemException) [virtual] |
RTコンポーネントを非アクティブ化する.
Inactive 状態にあるRTコンポーネントを非アクティブ化し、Inactive に遷移させる。この操作が呼ばれた結果、on_deactivate が呼び出され る。指定したRTコンポーネントが参加者リストに含まれない場合は、 BAD_PARAMETER が返される。指定したRTコンポーネントの状態が Active 以外の場合は、PRECONDITION_NOT_MET が返される。
comp | 非アクティブ化対象RTコンポーネント |
virtual RTC::LifeCycleState RTC_exp::PeriodicExecutionContext::get_component_state | ( | RTC::LightweightRTObject_ptr | comp | ) | throw (CORBA::SystemException) [virtual] |
RTコンポーネントの状態を取得する.
指定したRTコンポーネントの状態(LifeCycleState)を取得する。指定し たRTコンポーネントが参加者リストに含まれない場合は、 UNKNOWN_STATE が返される。
comp | 状態取得対象RTコンポーネント |
virtual RTC::ExecutionKind RTC_exp::PeriodicExecutionContext::get_kind | ( | void | ) | throw (CORBA::SystemException) [virtual] |
ExecutionKind を取得する.
本 ExecutionContext の ExecutionKind を取得する
virtual RTC::ExecutionContextProfile* RTC_exp::PeriodicExecutionContext::get_profile | ( | void | ) | throw (CORBA::SystemException) [virtual] |
ExecutionContextProfile を取得する.
本 ExecutionContext のプロファイルを取得する。
virtual CORBA::Double RTC_exp::PeriodicExecutionContext::get_rate | ( | void | ) | throw (CORBA::SystemException) [virtual] |
ExecutionContext の実行周期(Hz)を取得する.
Active 状態にてRTコンポーネントが実行される周期(単位:Hz)を取得す る。
virtual CORBA::Boolean RTC_exp::PeriodicExecutionContext::is_running | ( | void | ) | throw (CORBA::SystemException) [virtual] |
ExecutionContext 実行状態確認関数.
この操作は ExecutionContext が Runnning 状態の場合に true を返す。 Executioncontext が Running の間、当該 Executioncontext に参加し ている全てのアクティブRTコンポーネントが、ExecutionContext の実 行種類に応じて実行される。
virtual RTC::ReturnCode_t RTC_exp::PeriodicExecutionContext::onActivated | ( | RTC_impl::RTObjectStateMachine * | comp, | |
long int | count | |||
) | [protected, virtual] |
onActivated() template function
RTC::ExecutionContextBaseを再定義しています。
virtual RTC::ReturnCode_t RTC_exp::PeriodicExecutionContext::onDeactivated | ( | RTC_impl::RTObjectStateMachine * | comp, | |
long int | count | |||
) | [protected, virtual] |
onDeactivated() template function
RTC::ExecutionContextBaseを再定義しています。
virtual RTC::ReturnCode_t RTC_exp::PeriodicExecutionContext::onReset | ( | RTC_impl::RTObjectStateMachine * | comp, | |
long int | count | |||
) | [protected, virtual] |
onReset() template function
RTC::ExecutionContextBaseを再定義しています。
virtual RTC::ReturnCode_t RTC_exp::PeriodicExecutionContext::onStarted | ( | ) | [protected, virtual] |
onStarted() template function
RTC::ExecutionContextBaseを再定義しています。
virtual RTC::ReturnCode_t RTC_exp::PeriodicExecutionContext::onStopping | ( | ) | [protected, virtual] |
onStopping() template function
RTC::ExecutionContextBaseを再定義しています。
virtual RTC::ReturnCode_t RTC_exp::PeriodicExecutionContext::onWaitingActivated | ( | RTC_impl::RTObjectStateMachine * | comp, | |
long int | count | |||
) | [protected, virtual] |
onWaitingActivated() template function
RTC::ExecutionContextBaseを再定義しています。
virtual RTC::ReturnCode_t RTC_exp::PeriodicExecutionContext::onWaitingDeactivated | ( | RTC_impl::RTObjectStateMachine * | comp, | |
long int | count | |||
) | [protected, virtual] |
onWaitingDeactivated() template function
RTC::ExecutionContextBaseを再定義しています。
virtual RTC::ReturnCode_t RTC_exp::PeriodicExecutionContext::onWaitingReset | ( | RTC_impl::RTObjectStateMachine * | comp, | |
long int | count | |||
) | [protected, virtual] |
onWaitingReset() template function
RTC::ExecutionContextBaseを再定義しています。
virtual int RTC_exp::PeriodicExecutionContext::open | ( | void * | args | ) | [virtual] |
ExecutionContext用アクティビティスレッドを生成する.
Executioncontext 用の内部アクティビティスレッドを生成し起動する。 これは coil::Task サービスクラスメソッドのオーバーライド。
args | 通常は0 |
coil::Taskを再定義しています。
virtual RTC::ReturnCode_t RTC_exp::PeriodicExecutionContext::remove_component | ( | RTC::LightweightRTObject_ptr | comp | ) | throw (CORBA::SystemException) [virtual] |
RTコンポーネントを参加者リストから削除する.
指定したRTコンポーネントを参加者リストから削除する。削除された RTコンポーネントは detach_context が呼ばれる。指定されたRTコンポー ネントが参加者リストに登録されていない場合は、BAD_PARAMETER が返 される。
comp | 削除対象RTコンポーネント |
virtual RTC::ReturnCode_t RTC_exp::PeriodicExecutionContext::reset_component | ( | RTC::LightweightRTObject_ptr | comp | ) | throw (CORBA::SystemException) [virtual] |
RTコンポーネントをリセットする.
Error 状態のRTコンポーネントの復帰を試みる。この操作が呼ばれた結 果、on_reset が呼び出される。指定したRTコンポーネントが参加者リ ストに含まれない場合は、BAD_PARAMETER が返される。指定したRTコン ポーネントの状態が Error 以外の場合は、PRECONDITION_NOT_MET が返 される。
comp | リセット対象RTコンポーネント |
virtual RTC::ReturnCode_t RTC_exp::PeriodicExecutionContext::set_rate | ( | CORBA::Double | rate | ) | throw (CORBA::SystemException) [virtual] |
ExecutionContext の実行周期(Hz)を設定する.
Active 状態にてRTコンポーネントが実行される周期(単位:Hz)を設定す る。実行周期の変更は、DataFlowComponentAction の on_rate_changed によって各RTコンポーネントに伝達される。
rate | 処理周期(単位:Hz) |
virtual RTC::ReturnCode_t RTC_exp::PeriodicExecutionContext::start | ( | void | ) | throw (CORBA::SystemException) [virtual] |
ExecutionContext の実行を開始.
ExecutionContext の実行状態を Runnning とするためのリクエストを 発行する。ExecutionContext の状態が遷移すると ComponentAction::on_startup が呼び出される。参加しているRTコンポー ネントが、初期化されるまで ExecutionContext を開始することはでき ない。ExecutionContext は複数回開始/停止を繰り返すことができる。
RTC::ExecutionContextBaseを再定義しています。
virtual RTC::ReturnCode_t RTC_exp::PeriodicExecutionContext::stop | ( | void | ) | throw (CORBA::SystemException) [virtual] |
ExecutionContext の実行を停止.
ExecutionContext の状態を Stopped とするためのリクエストを発行す る。遷移が発生した場合は、ComponentActionon_shutdown が呼び出 される。参加しているRTコンポーネントが終了する前に ExecutionContext を停止する必要がある。ExecutionContext は複数回 開始/停止を繰り返すことができる。
RTC::ExecutionContextBaseを再定義しています。
virtual int RTC_exp::PeriodicExecutionContext::svc | ( | void | ) | [virtual] |
ExecutionContext 用のスレッド実行関数.
ExecutionContext 用のスレッド実行関数。登録されたコンポーネント の処理を呼び出す。
coil::Taskを再定義しています。
bool RTC_exp::PeriodicExecutionContext::threadRunning | ( | ) | [inline, protected] |
参照先 m_svc, と m_svcmutex.
bool RTC_exp::PeriodicExecutionContext::m_nowait [protected] |
ExecutionContext 即時実行(wait無し実行)フラグ.
bool RTC_exp::PeriodicExecutionContext::m_svc [protected] |
ExecutionContext のスレッド実行フラグ.
参照元 threadRunning().
参照元 threadRunning().
svn用の状態変数
RTC::Logger RTC_exp::PeriodicExecutionContext::rtclog [protected] |
ロガーストリーム
RTC::ExecutionContextBaseを再定義しています。