PeriodicExecutionContext クラス. [詳細]
#include <PeriodicExecutionContext.h>
  
 構成 | |
| struct | Comp | 
| コンポーネント管理用構造体  [詳細] | |
| class | DFP | 
| DFP クラス.  [詳細] | |
| class | DFPBase | 
| DFPBase クラス.  [詳細] | |
| struct | find_comp | 
| コンポーネント検索用ファンクタ  [詳細] | |
| class | find_participant | 
| struct | invoke_on_rate_changed | 
| on_rate_changed 起動用ファンクタ  [詳細] | |
| struct | invoke_on_shutdown | 
| on_shutdown 起動用ファンクタ  [詳細] | |
| struct | invoke_on_startup | 
| on_startup 起動用ファンクタ  [詳細] | |
| struct | invoke_worker | 
| ワーカー実行用ファンクタ  [詳細] | |
| struct | Worker | 
| worker 用状態変数クラス  [詳細] | |
Public メソッド | |
| PeriodicExecutionContext () | |
| デフォルトコンストラクタ   | |
| PeriodicExecutionContext (OpenRTM::DataFlowComponent_ptr owner, double rate=1000.0) | |
| コンストラクタ   | |
| virtual | ~PeriodicExecutionContext (void) | 
| virtual ExecutionContextService_ptr | getObjRef (void) | 
| CORBA オブジェクト参照の取得.   | |
| 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 ReturnCode_t | start (void) throw (CORBA::SystemException) | 
| ExecutionContext の実行を開始.   | |
| virtual ReturnCode_t | stop (void) throw (CORBA::SystemException) | 
| ExecutionContext の実行を停止.   | |
| virtual CORBA::Double | get_rate (void) throw (CORBA::SystemException) | 
| ExecutionContext の実行周期(Hz)を取得する.   | |
| virtual ReturnCode_t | set_rate (CORBA::Double rate) throw (CORBA::SystemException) | 
| ExecutionContext の実行周期(Hz)を設定する.   | |
| virtual ReturnCode_t | activate_component (LightweightRTObject_ptr comp) throw (CORBA::SystemException) | 
| RTコンポーネントをアクティブ化する.   | |
| virtual ReturnCode_t | deactivate_component (LightweightRTObject_ptr comp) throw (CORBA::SystemException) | 
| RTコンポーネントを非アクティブ化する.   | |
| virtual ReturnCode_t | reset_component (LightweightRTObject_ptr comp) throw (CORBA::SystemException) | 
| RTコンポーネントをリセットする.   | |
| virtual LifeCycleState | get_component_state (LightweightRTObject_ptr comp) throw (CORBA::SystemException) | 
| RTコンポーネントの状態を取得する.   | |
| virtual ExecutionKind | get_kind (void) throw (CORBA::SystemException) | 
| ExecutionKind を取得する.   | |
| virtual ReturnCode_t | add_component (LightweightRTObject_ptr comp) throw (CORBA::SystemException) | 
| RTコンポーネントを追加する.   | |
| virtual RTC::ReturnCode_t | bindComponent (RTObject_impl *rtc) | 
| コンポーネントをバインドする。   | |
| virtual ReturnCode_t | remove_component (LightweightRTObject_ptr comp) throw (CORBA::SystemException) | 
| RTコンポーネントを参加者リストから削除する.   | |
| virtual ExecutionContextProfile * | get_profile (void) throw (CORBA::SystemException) | 
| ExecutionContextProfile を取得する.   | |
Protected 型 | |
| typedef LifeCycleState | ExecContextState | 
| typedef RTC_Utils::StateHolder < ExecContextState >  | ECStates | 
| typedef std::vector< Comp > ::iterator  | CompItr | 
Protected 変数 | |
| std::vector< Comp > | m_comps | 
| コンポーネントの参加者リスト   | |
| Logger | rtclog | 
| ロガーストリーム   | |
| bool | m_running | 
| ExecutionContext の実行状態 true: running, false: stopped.   | |
| bool | m_svc | 
| ExecutionContext のスレッド実行フラグ.   | |
| Worker | m_worker | 
| svn用の状態変数   | |
| ExecutionContextProfile | m_profile | 
| ExecutionContextProfile.   | |
| coil::Mutex | m_profileMutex | 
| coil::TimeValue | m_period | 
| ExecutionContext の実行周期.   | |
| ExecutionContextService_var | m_ref | 
| ExecutionContextService オブジェクトへの参照.   | |
| bool | m_nowait | 
| ExecutionContext 即時実行(wait無し実行)フラグ.   | |
Periodic Sampled Data Processing(周期実行用)ExecutionContextクラス。
typedef std::vector<Comp>::iterator RTC::PeriodicExecutionContext::CompItr [protected] | 
        
typedef RTC_Utils::StateHolder<ExecContextState> RTC::PeriodicExecutionContext::ECStates [protected] | 
        
typedef LifeCycleState RTC::PeriodicExecutionContext::ExecContextState [protected] | 
        
| RTC::PeriodicExecutionContext::PeriodicExecutionContext | ( | ) | 
デフォルトコンストラクタ
デフォルトコンストラクタ プロファイルに以下の項目を設定する。
| RTC::PeriodicExecutionContext::PeriodicExecutionContext | ( | OpenRTM::DataFlowComponent_ptr | owner, | |
| double |  rate = 1000.0 | |||
| ) | 
コンストラクタ
コンストラクタ 設定された値をプロファイルに設定する。
| owner | 当該 Executioncontext の owner | |
| rate | 動作周期(Hz)(デフォルト値:1000) | 
| virtual RTC::PeriodicExecutionContext::~PeriodicExecutionContext | ( | void | ) |  [virtual] | 
        
デストラクタ
| virtual ReturnCode_t RTC::PeriodicExecutionContext::activate_component | ( | LightweightRTObject_ptr | comp | ) |   throw (CORBA::SystemException) [virtual] | 
        
RTコンポーネントをアクティブ化する.
Inactive 状態にあるRTコンポーネントをActive に遷移させ、アクティ ブ化する。この操作が呼ばれた結果、on_activate が呼び出される。指 定したRTコンポーネントが参加者リストに含まれない場合は、 BAD_PARAMETER が返される。指定したRTコンポーネントの状態が Inactive 以外の場合は、PRECONDITION_NOT_MET が返される。
| comp | アクティブ化対象RTコンポーネント | 
| virtual ReturnCode_t RTC::PeriodicExecutionContext::add_component | ( | LightweightRTObject_ptr | comp | ) |   throw (CORBA::SystemException) [virtual] | 
        
RTコンポーネントを追加する.
指定したRTコンポーネントを参加者リストに追加する。追加されたRTコ ンポーネントは attach_context が呼ばれ、Inactive 状態に遷移する。 指定されたRTコンポーネントがnullの場合は、BAD_PARAMETER が返され る。指定されたRTコンポーネントが DataFlowComponent 以外の場合は、 BAD_PARAMETER が返される。
| comp | 追加対象RTコンポーネント | 
| virtual RTC::ReturnCode_t RTC::PeriodicExecutionContext::bindComponent | ( | RTObject_impl * | rtc | ) |  [virtual] | 
        
コンポーネントをバインドする。
コンポーネントをバインドする。
| rtc | RTコンポーネント | 
RTC::ExecutionContextBaseを実装しています。
| virtual int RTC::PeriodicExecutionContext::close | ( | unsigned long | flags | ) |  [virtual] | 
        
ExecutionContext 用のスレッド実行関数.
ExecutionContext 用のスレッド終了時に呼ばれる。コンポーネントオ ブジェクトの非アクティブ化、マネージャへの通知を行う。これは coil::Task サービスクラスメソッドのオーバーライド。
| flags | 終了処理フラグ | 
| virtual ReturnCode_t RTC::PeriodicExecutionContext::deactivate_component | ( | LightweightRTObject_ptr | comp | ) |   throw (CORBA::SystemException) [virtual] | 
        
RTコンポーネントを非アクティブ化する.
Inactive 状態にあるRTコンポーネントを非アクティブ化し、Inactive に遷移させる。この操作が呼ばれた結果、on_deactivate が呼び出され る。指定したRTコンポーネントが参加者リストに含まれない場合は、 BAD_PARAMETER が返される。指定したRTコンポーネントの状態が Active 以外の場合は、PRECONDITION_NOT_MET が返される。
| comp | 非アクティブ化対象RTコンポーネント | 
| virtual LifeCycleState RTC::PeriodicExecutionContext::get_component_state | ( | LightweightRTObject_ptr | comp | ) |   throw (CORBA::SystemException) [virtual] | 
        
RTコンポーネントの状態を取得する.
指定したRTコンポーネントの状態(LifeCycleState)を取得する。指定し たRTコンポーネントが参加者リストに含まれない場合は、 UNKNOWN_STATE が返される。
| comp | 状態取得対象RTコンポーネント | 
| virtual ExecutionKind RTC::PeriodicExecutionContext::get_kind | ( | void | ) |   throw (CORBA::SystemException) [virtual] | 
        
ExecutionKind を取得する.
本 ExecutionContext の ExecutionKind を取得する
| virtual ExecutionContextProfile* RTC::PeriodicExecutionContext::get_profile | ( | void | ) |   throw (CORBA::SystemException) [virtual] | 
        
ExecutionContextProfile を取得する.
本 ExecutionContext のプロファイルを取得する。
| virtual CORBA::Double RTC::PeriodicExecutionContext::get_rate | ( | void | ) |   throw (CORBA::SystemException) [virtual] | 
        
ExecutionContext の実行周期(Hz)を取得する.
Active 状態にてRTコンポーネントが実行される周期(単位:Hz)を取得す る。
| virtual ExecutionContextService_ptr RTC::PeriodicExecutionContext::getObjRef | ( | void | ) |  [inline, virtual] | 
        
CORBA オブジェクト参照の取得.
本オブジェクトの ExecutioncontextService としての CORBA オブジェ クト参照を取得する。
RTC::ExecutionContextBaseを実装しています。
参照先 m_ref.
| virtual CORBA::Boolean RTC::PeriodicExecutionContext::is_running | ( | void | ) |   throw (CORBA::SystemException) [virtual] | 
        
ExecutionContext 実行状態確認関数.
この操作は ExecutionContext が Runnning 状態の場合に true を返す。 Executioncontext が Running の間、当該 Executioncontext に参加し ている全てのアクティブRTコンポーネントが、ExecutionContext の実 行種類に応じて実行される。
| virtual int RTC::PeriodicExecutionContext::open | ( | void * | args | ) |  [virtual] | 
        
ExecutionContext用アクティビティスレッドを生成する.
Executioncontext 用の内部アクティビティスレッドを生成し起動する。 これは coil::Task サービスクラスメソッドのオーバーライド。
| args | 通常は0 | 
| virtual ReturnCode_t RTC::PeriodicExecutionContext::remove_component | ( | LightweightRTObject_ptr | comp | ) |   throw (CORBA::SystemException) [virtual] | 
        
RTコンポーネントを参加者リストから削除する.
指定したRTコンポーネントを参加者リストから削除する。削除された RTコンポーネントは detach_context が呼ばれる。指定されたRTコンポー ネントが参加者リストに登録されていない場合は、BAD_PARAMETER が返 される。
| comp | 削除対象RTコンポーネント | 
| virtual ReturnCode_t RTC::PeriodicExecutionContext::reset_component | ( | LightweightRTObject_ptr | comp | ) |   throw (CORBA::SystemException) [virtual] | 
        
RTコンポーネントをリセットする.
Error 状態のRTコンポーネントの復帰を試みる。この操作が呼ばれた結 果、on_reset が呼び出される。指定したRTコンポーネントが参加者リ ストに含まれない場合は、BAD_PARAMETER が返される。指定したRTコン ポーネントの状態が Error 以外の場合は、PRECONDITION_NOT_MET が返 される。
| comp | リセット対象RTコンポーネント | 
| virtual ReturnCode_t RTC::PeriodicExecutionContext::set_rate | ( | CORBA::Double | rate | ) |   throw (CORBA::SystemException) [virtual] | 
        
ExecutionContext の実行周期(Hz)を設定する.
Active 状態にてRTコンポーネントが実行される周期(単位:Hz)を設定す る。実行周期の変更は、DataFlowComponentAction の on_rate_changed によって各RTコンポーネントに伝達される。
| rate | 処理周期(単位:Hz) | 
| virtual ReturnCode_t RTC::PeriodicExecutionContext::start | ( | void | ) |   throw (CORBA::SystemException) [virtual] | 
        
ExecutionContext の実行を開始.
ExecutionContext の実行状態を Runnning とするためのリクエストを 発行する。ExecutionContext の状態が遷移すると ComponentAction::on_startup が呼び出される。参加しているRTコンポー ネントが、初期化されるまで ExecutionContext を開始することはでき ない。ExecutionContext は複数回開始/停止を繰り返すことができる。
| virtual ReturnCode_t RTC::PeriodicExecutionContext::stop | ( | void | ) |   throw (CORBA::SystemException) [virtual] | 
        
ExecutionContext の実行を停止.
ExecutionContext の状態を Stopped とするためのリクエストを発行す る。遷移が発生した場合は、ComponentActionon_shutdown が呼び出 される。参加しているRTコンポーネントが終了する前に ExecutionContext を停止する必要がある。ExecutionContext は複数回 開始/停止を繰り返すことができる。
| virtual int RTC::PeriodicExecutionContext::svc | ( | void | ) |  [virtual] | 
        
ExecutionContext 用のスレッド実行関数.
ExecutionContext 用のスレッド実行関数。登録されたコンポーネント の処理を呼び出す。
RTC::ExtTrigExecutionContext, と RTC::OpenHRPExecutionContextで再定義されています。
std::vector<Comp> RTC::PeriodicExecutionContext::m_comps [protected] | 
        
コンポーネントの参加者リスト
bool RTC::PeriodicExecutionContext::m_nowait [protected] | 
        
ExecutionContext 即時実行(wait無し実行)フラグ.
coil::TimeValue RTC::PeriodicExecutionContext::m_period [protected] | 
        
ExecutionContext の実行周期.
ExecutionContextProfile RTC::PeriodicExecutionContext::m_profile [protected] | 
        
ExecutionContextProfile.
coil::Mutex RTC::PeriodicExecutionContext::m_profileMutex [protected] | 
        
ExecutionContextService_var RTC::PeriodicExecutionContext::m_ref [protected] | 
        
ExecutionContextService オブジェクトへの参照.
参照元 getObjRef().
bool RTC::PeriodicExecutionContext::m_running [protected] | 
        
ExecutionContext の実行状態 true: running, false: stopped.
bool RTC::PeriodicExecutionContext::m_svc [protected] | 
        
ExecutionContext のスレッド実行フラグ.
Worker RTC::PeriodicExecutionContext::m_worker [protected] | 
        
svn用の状態変数
Logger RTC::PeriodicExecutionContext::rtclog [protected] | 
        
ロガーストリーム
 1.6.3