クラス RTC::ExecutionContextBase

ExecutionContext base class [詳細]

#include <ExecutionContext.h>

RTC::ExecutionContextBaseに対する継承グラフ

RTC::PeriodicExecutionContext RTC::ExtTrigExecutionContext

すべてのメンバ一覧

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 を取得する
virtual ~ExecutionContextBase ()
 仮想デストラクタ
virtual void tick () throw (CORBA::SystemException)
 ExecutionContextの処理を進める

Protected 変数

ExecutionContextProfile m_profile
CORBA::Boolean m_running

構成

struct  find_objref


説明

ExecutionContext base class

ExecutionContext用基底クラス

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 により実行される場合のコンカレンシー管理 は実装依存である。

ExecutionContextの基底クラス。

から:
0.4.0

コンストラクタとデストラクタ

RTC::ExecutionContextBase::ExecutionContextBase (  )  [inline]

コンストラクタ

RTC::ExecutionContextBase::ExecutionContextBase ( RTObject_ptr  owner  ) 

virtual RTC::ExecutionContextBase::~ExecutionContextBase (  )  [inline, virtual]

デストラクタ

virtual RTC::ExecutionContextBase::~ExecutionContextBase (  )  [inline, virtual]

仮想デストラクタ

仮想デストラクタ


関数

virtual CORBA::Boolean RTC::ExecutionContextBase::is_running (  )  [virtual]

ExecutionContext が実行中かどうかのテスト

Description

このオペレーションはこの ExecutionContext の実行状態を返す。

Semantics

このコンテキストが Running 状態であれば、全てのアクティブな RTC の 参加コンポーネントはコンテキストの ExecutionKind に従って実行される。

戻り値:
実行状態であれば true を返す。

RTC::PeriodicExecutionContextで再定義されています。

virtual ReturnCode_t RTC::ExecutionContextBase::start (  )  [virtual]

ExecutionContext をスタートさせる

Description

ExecutionContext に Running 状態に遷移させるためのオペレーション。 状態遷移が発生した場合、ComponentActionon_startup が実行される。 (OMG RTC Specification section 2.2.2.5.2 を参照)

Semantics

ExecutionContext に対する start および stop は繰り返し実行される。

Constraints

戻り値:
このオペレーションは ExecutionContext が Stopped 状態にないとき 実行されると、PRECONDITION_NOT_MET が返される。

RTC::PeriodicExecutionContextで再定義されています。

virtual ReturnCode_t RTC::ExecutionContextBase::stop (  )  [virtual]

ExecutionContext をストップさせる

Description

ExecutionContext に Stopped 状態に遷移させるためのオペレーション。 状態遷移が発生した場合、ComponentActionon_shutdown が実行される。 (OMG RTC Specification section 2.2.2.5.4 を参照)

Semantics

ExecutionContext に対する start および stop は繰り返し実行される。

Constraints

戻り値:
このオペレーションは ExecutionContext が Stopped 状態にないとき 実行されると、PRECONDITION_NOT_MET が返される。

RTC::PeriodicExecutionContextで再定義されています。

virtual CORBA::Double RTC::ExecutionContextBase::get_rate (  )  [virtual]

実行周期(Hz)を取得する

Description

このオペレーションはこのコンテキストに参加しているアクティブなRTC の実行される周期をHzで返す。

Semantics

実装においては PERIODIC 以外の ExecutionKind を持つある種の周期的 もしくは擬似周期的な処理を実装することも許されます。その場合には、 このオペレーションの結果は実装定義に従います。 もし、このExecutionContextが周期的処理を行わないコンテキストである場合、 このオペレーションは失敗します。

Constraints

戻り値:
このExecutionContext の ExecutionKind が PERIODICであれば、 0より大きい値を返す。

RTC::PeriodicExecutionContextで再定義されています。

virtual ReturnCode_t RTC::ExecutionContextBase::set_rate ( CORBA::Double  rate  )  [virtual]

実行周期(Hz)を与える

Description

このオペレーションはこのコンテキストが持つアクティブなRTCを実行する 周期を与える。

Semantics

この ExecutionContext の ExecutionKind が PERIODIC である場合、 実行周期の変更に伴い、この ExecutionContext に参加する RTC として 登録されている DataFlowComponentAction を実装した RTC のオペレーション on_rate_changed を実行する。 実装においては PERIODIC 以外の ExecutionKind を持つある種の周期的 もしくは擬似周期的な処理を実装することも許されます。加えてその実装に おいて周期を get_rate により取得できる場合には、もし与えられた周期が 有効な周期であれば、このオペレーションは周期を設定するものとします。 もし、このExecutionContextが周期的処理を行わないコンテキストである場合、 このオペレーションは ReturnCode_t::UNSUPPORTED を返して失敗します。

Constraints

戻り値:
与えられる周期は0より大きくなければならず、そうでない場合 このオペレーションは ReturnCode_t::BAD_PARAMETER を返す。

RTC::PeriodicExecutionContextで再定義されています。

virtual ReturnCode_t RTC::ExecutionContextBase::activate_component ( LightweightRTObject_ptr  comp  )  [virtual]

コンポーネントをアクティブ化する

Description

与えられる RTC はこのコンテキストにおいて Inactive であり、従って ExecutionContext の ExecutionKind に従って実行されていない。 このオペレーションによってこの RTC はこの ExecutionContext によって 実行される Active 状態に遷移する。

Constraints

戻り値:
OK, BAD_PARAMETER もしくは PRECONDITION_NOT_MET を返す。

RTC::PeriodicExecutionContextで再定義されています。

virtual ReturnCode_t RTC::ExecutionContextBase::deactivate_component ( LightweightRTObject_ptr  comp  )  [virtual]

コンポーネントを非アクティブ化する

Description

与えられる RTC はこのコンテキストの中で Active 状態である。 このオペレーションによってこの RTC は Inactive 状態に遷移する。 Inactive 状態では Active 化されるまで RTC は実行されない。

Constraints

戻り値:
OK, BAD_PARAMETER を返す。

RTC::PeriodicExecutionContextで再定義されています。

virtual ReturnCode_t RTC::ExecutionContextBase::reset_component ( LightweightRTObject_ptr  comp  )  [virtual]

コンポーネントをリセットする

Description

与えられる RTC はこのコンテキストの中で Error または Active 状態である。 このオペレーションによってこの RTC は Inactive 状態に遷移する。 Inactive 状態では Active 化されるまで RTC は実行されない。

Constraints

戻り値:
OK, BAD_PARAMETER を返す。

RTC::PeriodicExecutionContextで再定義されています。

virtual LifeCycleState RTC::ExecutionContextBase::get_component_state ( LightweightRTObject_ptr  comp  )  [virtual]

コンポーネントの状態を取得する

Description

このオペレーションは与えられた RTC の LifeCycleState を返す。

Constraints

戻り値:
LifeCycleState::INACTIVE, ACTIVE, ERROR を返す。

RTC::PeriodicExecutionContextで再定義されています。

virtual ExecutionKind RTC::ExecutionContextBase::get_kind (  )  [virtual]

ExecutionKind を取得する

Description

このオペレーションは ExecutionContext の ExecutionKind を返す。

ExecutionKind

ExecutionKind 列挙子は ExecutionContext に属する Execution の セマンティクス (OMG RTC Specification section 2.3 を参照) を定義する。
PERIODIC このタイプの ExecutionContext に属する RTC は periodic sampled data セマンティクスに従って実行 される。(OMG RTC Specification section 2.3.1 を参照)
EVENT_DRIVEN このタイプの ExecutionContext に属する RTC は stimulus response セマンティクスに従って実行される。 (OMG RTC Specification section 2.3.2 を参照)
OTHER このタイプの ExecutionContext に属する RTC は その実行セマンティクスは実装者が任意に実装でき、 仕様上はとくに定義されていない。

RTC::PeriodicExecutionContextで再定義されています。

virtual ReturnCode_t RTC::ExecutionContextBase::add ( LightweightRTObject_ptr  comp  )  [virtual]

コンポーネントを追加する

Description

このオペレーションは与えられたRTCをこのExecutionContextに所属させる。

Semantics

新たに追加された RTC ははじめは Inactive 状態にある。 ExecutionKind が PERIODIC ならば引数 index はこの RTC が実行される 順番におけるソートされた位置を指定する。 それ以外では、実装依存であり無視されるかもしれない。

Constraints

戻り値:
OK or PRECONDITION_NOT_ME が返される

RTC::PeriodicExecutionContextで再定義されています。

virtual ReturnCode_t RTC::ExecutionContextBase::remove ( LightweightRTObject_ptr  comp  )  [virtual]

コンポーネントをコンポーネントリストから削除する

Description

このオペレーションは所属している RTC を所属から抹消する。 Constraints

RTC::PeriodicExecutionContextで再定義されています。

virtual ExecutionContextProfile* RTC::ExecutionContextBase::get_profile (  )  [virtual]

ExecutionContextProfile を取得する

Description

このオペレーションは ExecutionContext の Profile を取得する

RTC::PeriodicExecutionContextで再定義されています。

virtual void RTC::ExecutionContextBase::tick (  )  throw (CORBA::SystemException) [inline, virtual]

ExecutionContextの処理を進める

ExecutionContextの処理を1周期分進める。

RTC::ExtTrigExecutionContextで再定義されています。


変数

ExecutionContextProfile RTC::ExecutionContextBase::m_profile [protected]

RTC::PeriodicExecutionContextで再定義されています。

CORBA::Boolean RTC::ExecutionContextBase::m_running [protected]

RTC::PeriodicExecutionContextで再定義されています。


OpenRTMに対してWed May 21 05:17:25 2008に生成されました。  doxygen 1.5.3