#include <ExecutionContext.h>
RTC::ExecutionContextBaseに対する継承グラフ
Public メソッド | |
ExecutionContextBase () | |
コンストラクタ | |
ExecutionContextBase (RTObject_ptr owner) | |
virtual | ~ExecutionContextBase () |
デストラクタ | |
virtual CORBA::Boolean | is_running () |
ExecutionContext が実行中かどうかのテスト. | |
virtual ReturnCode_t | start () |
ExecutionContext をスタートさせる. | |
virtual ReturnCode_t | stop () |
ExecutionContext をストップさせる. | |
virtual CORBA::Double | get_rate () |
実行周期(Hz)を取得する | |
virtual ReturnCode_t | set_rate (CORBA::Double rate) |
実行周期(Hz)を与える | |
virtual ReturnCode_t | activate_component (LightweightRTObject_ptr comp) |
コンポーネントをアクティブ化する | |
virtual ReturnCode_t | deactivate_component (LightweightRTObject_ptr comp) |
コンポーネントを非アクティブ化する | |
virtual ReturnCode_t | reset_component (LightweightRTObject_ptr comp) |
コンポーネントをリセットする | |
virtual LifeCycleState | get_component_state (LightweightRTObject_ptr comp) |
コンポーネントの状態を取得する | |
virtual ExecutionKind | get_kind () |
ExecutionKind を取得する. | |
virtual ReturnCode_t | add (LightweightRTObject_ptr comp) |
コンポーネントを追加する | |
virtual ReturnCode_t | remove (LightweightRTObject_ptr comp) |
コンポーネントをコンポーネントリストから削除する | |
virtual ExecutionContextProfile * | get_profile () |
ExecutionContextProfile を取得する. | |
Protected 変数 | |
ExecutionContextProfile | m_profile |
CORBA::Boolean | m_running |
構成 | |
struct | find_objref |
ExecutionContext は RTC のビジネスロジックをそれを実行するスレッド制御 から分離することを可能にする。 コンテキストは論理的なスレッド制御に相当し 実行時に RTC に対して提供される。コンテキストは種々のオペレーションを持ち それ自身およびコンテキストに所属する RTC が持つ状態を問い合わせたり変更 したりすることができる。 こうした関係の分離は以下の二つの理由に拠り重要です。
オーナーシップとコンテキストへの所属
各 ExecutionContext は一つの RTC に所属しており、その RTC および、 その RTC が包含する RTC の実行を直接的または非直接的に行う。 一つ以上の ExecutionContext を持つ RTC は autonomous RTC と呼ばれる。 autonomous RTC およびそこに含まれるそのサブセットの RTC (これはアプリケー ション開発者により定義される。) は ExecutionKind に従って、ミドルウエア により実行される。ExecutionKind はそれぞれの RTC のオペレーションは、いつ どういった順番で実行するかを規定する。これらの RTC はそのコンテキストに 「所属」すると表現される。利用可能な ExecutionKind は以下で述べる。 一般的には、RTCと ExecutionContext の関係は多対多であるかもしれない。 たとえば、複数の RTC が同一の ExecutionContext により実行されたり、 一つの RTC が複数の ExecutionContext から実行されたりするかもしれない。 複数のRTCが同一のコンテキストから実行される場合には、ExecutionContext を スタートあるいはストップさせたりすることにより、それら全てのコンポーネント のライフサイクル状態を遷移させる可能性がある。
Logical and Physical Threads
ExecutionContext が論理的スレッド制御を表現しているものの、 それをどうやって具体的なスレッドにマッピングするかといった選択は、 アプリケーションデプロイメント環境に委ねられている。 実装に際しては関連付けられるExecutionContextと具体的なスレッドを一対一 でマッピングしたり、一つのスレッドが複数の ExecutionContext に関連付け られたりする可能性がある。 RTC が複数の ExecutionContext により実行される場合のコンカレンシー管理 は実装依存である。
|
コンストラクタ
|
|
|
|
デストラクタ
|
|
コンポーネントをアクティブ化する
Description与えられる RTC はこのコンテキストにおいて Inactive であり、従って ExecutionContext の ExecutionKind に従って実行されていない。 このオペレーションによってこの RTC はこの ExecutionContext によって 実行される Active 状態に遷移する。
Constraints
RTC::PeriodicExecutionContextで再定義されています。 |
|
コンポーネントを追加する
Descriptionこのオペレーションは与えられたRTCをこのExecutionContextに所属させる。
Semantics新たに追加された RTC ははじめは Inactive 状態にある。 ExecutionKind が PERIODIC ならば引数 index はこの RTC が実行される 順番におけるソートされた位置を指定する。 それ以外では、実装依存であり無視されるかもしれない。
Constraints
RTC::PeriodicExecutionContextで再定義されています。 |
|
コンポーネントを非アクティブ化する
Description与えられる RTC はこのコンテキストの中で Active 状態である。 このオペレーションによってこの RTC は Inactive 状態に遷移する。 Inactive 状態では Active 化されるまで RTC は実行されない。
Constraints
RTC::PeriodicExecutionContextで再定義されています。 |
|
コンポーネントの状態を取得する
Descriptionこのオペレーションは与えられた RTC の LifeCycleState を返す。
Constraints
RTC::PeriodicExecutionContextで再定義されています。 |
|
ExecutionKind を取得する.
Descriptionこのオペレーションは ExecutionContext の ExecutionKind を返す。
ExecutionKindExecutionKind 列挙子は ExecutionContext に属する Execution の セマンティクス (OMG RTC Specification section 2.3 を参照) を定義する。
RTC::PeriodicExecutionContextで再定義されています。 |
|
ExecutionContextProfile を取得する.
Descriptionこのオペレーションは ExecutionContext の Profile を取得する RTC::PeriodicExecutionContextで再定義されています。 |
|
実行周期(Hz)を取得する
Descriptionこのオペレーションはこのコンテキストに参加しているアクティブなRTC の実行される周期をHzで返す。
Semantics実装においては PERIODIC 以外の ExecutionKind を持つある種の周期的 もしくは擬似周期的な処理を実装することも許されます。その場合には、 このオペレーションの結果は実装定義に従います。 もし、このExecutionContextが周期的処理を行わないコンテキストである場合、 このオペレーションは失敗します。
Constraints
RTC::PeriodicExecutionContextで再定義されています。 |
|
ExecutionContext が実行中かどうかのテスト.
Descriptionこのオペレーションはこの ExecutionContext の実行状態を返す。
Semanticsこのコンテキストが Running 状態であれば、全てのアクティブな RTC の 参加コンポーネントはコンテキストの ExecutionKind に従って実行される。
RTC::PeriodicExecutionContextで再定義されています。 |
|
コンポーネントをコンポーネントリストから削除する
Descriptionこのオペレーションは所属している RTC を所属から抹消する。 Constraints
RTC::PeriodicExecutionContextで再定義されています。 |
|
コンポーネントをリセットする
Description与えられる RTC はこのコンテキストの中で Error または Active 状態である。 このオペレーションによってこの RTC は Inactive 状態に遷移する。 Inactive 状態では Active 化されるまで RTC は実行されない。
Constraints
RTC::PeriodicExecutionContextで再定義されています。 |
|
実行周期(Hz)を与える
Descriptionこのオペレーションはこのコンテキストが持つアクティブなRTCを実行する 周期を与える。
Semanticsこの ExecutionContext の ExecutionKind が PERIODIC である場合、 実行周期の変更に伴い、この ExecutionContext に参加する RTC として 登録されている DataFlowComponentAction を実装した RTC のオペレーション on_rate_changed を実行する。 実装においては PERIODIC 以外の ExecutionKind を持つある種の周期的 もしくは擬似周期的な処理を実装することも許されます。加えてその実装に おいて周期を get_rate により取得できる場合には、もし与えられた周期が 有効な周期であれば、このオペレーションは周期を設定するものとします。 もし、このExecutionContextが周期的処理を行わないコンテキストである場合、 このオペレーションは ReturnCode_t::UNSUPPORTED を返して失敗します。
Constraints
RTC::PeriodicExecutionContextで再定義されています。 |
|
ExecutionContext をスタートさせる.
DescriptionExecutionContext に Running 状態に遷移させるためのオペレーション。 状態遷移が発生した場合、ComponentAction::on_startup が実行される。 (OMG RTC Specification section 2.2.2.5.2 を参照)
SemanticsExecutionContext に対する start および stop は繰り返し実行される。
Constraints
RTC::PeriodicExecutionContextで再定義されています。 |
|
ExecutionContext をストップさせる.
DescriptionExecutionContext に Stopped 状態に遷移させるためのオペレーション。 状態遷移が発生した場合、ComponentAction::on_shutdown が実行される。 (OMG RTC Specification section 2.2.2.5.4 を参照)
SemanticsExecutionContext に対する start および stop は繰り返し実行される。
Constraints
RTC::PeriodicExecutionContextで再定義されています。 |
|
RTC::PeriodicExecutionContextで再定義されています。 |
|
RTC::PeriodicExecutionContextで再定義されています。 |