メインページ | ネームスペース一覧 | クラス階層 | 構成 | Directories | ファイル一覧 | ネームスペースメンバ | 構成メンバ | ファイルメンバ

クラス RTC::PeriodicExecutionContext

#include <PeriodicExecutionContext.h>

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

RTC::ExecutionContextBase すべてのメンバ一覧

Public メソッド

 PeriodicExecutionContext ()
 PeriodicExecutionContext (DataFlowComponent_ptr owner, double rate=1000.0)
virtual ~PeriodicExecutionContext ()
ExecutionContextService_ptr getRef ()
virtual int open (void *args)
 コンポーネントのアクティビティスレッドを生成する
virtual int svc (void)
 コンポーネントのアクティビティスレッド関数
virtual int close (unsigned long flags)
 コンポーネントのアクティビティスレッド終了関数
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 型

typedef LifeCycleState ExecContextState
typedef StateHolder< ExecContextStateECStates
typedef std::vector< Comp
>::iterator 
CompItr

Protected 変数

std::vector< Compm_comps
bool m_running
ExecutionContextProfile m_profile
long int m_usec
ExecutionContextService_var m_ref
bool m_nowait

構成

struct  Comp
class  DFP
class  DFPBase
struct  find_comp
struct  invoke_on_rate_changed
struct  invoke_on_shutdown
struct  invoke_on_startup
struct  invoke_worker

型定義

typedef std::vector<Comp>::iterator RTC::PeriodicExecutionContext::CompItr [protected]
 

typedef StateHolder<ExecContextState> RTC::PeriodicExecutionContext::ECStates [protected]
 

typedef LifeCycleState RTC::PeriodicExecutionContext::ExecContextState [protected]
 


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

RTC::PeriodicExecutionContext::PeriodicExecutionContext  ) 
 

RTC::PeriodicExecutionContext::PeriodicExecutionContext DataFlowComponent_ptr  owner,
double  rate = 1000.0
 

virtual RTC::PeriodicExecutionContext::~PeriodicExecutionContext  )  [virtual]
 


関数

virtual ReturnCode_t RTC::PeriodicExecutionContext::activate_component LightweightRTObject_ptr  comp  )  [virtual]
 

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

Description

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

Constraints

  • ExecutionContext はそれ自身に参加しているコンポーネントしか Active 化できないので、もし与えられたRTCがこのコンテキストに参加していな ければ、このオペレーションは BAD_PARAMETER を返して失敗する。
  • Error 状態にある RTC は reset しなければ Active 化できない。 もし与えられた RTC が Error 状態にいる場合、このオペレーションは PRECONDITION_NOT_MET を返して失敗する。
戻り値:
OK, BAD_PARAMETER もしくは PRECONDITION_NOT_MET を返す。

RTC::ExecutionContextBaseを再定義しています。

virtual ReturnCode_t RTC::PeriodicExecutionContext::add LightweightRTObject_ptr  comp  )  [virtual]
 

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

Description

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

Semantics

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

Constraints

  • ExecutionKind が PERIODIC の場合, RTC は data flow participant (OMG RTC Specification section 2.3.1.2 を参照) でなければならない。 それ以外は、このオペレーションは PRECONDITION_NOT_MET を返し失敗する。.
戻り値:
OK or PRECONDITION_NOT_ME が返される

RTC::ExecutionContextBaseを再定義しています。

virtual int RTC::PeriodicExecutionContext::close unsigned long  flags  )  [virtual]
 

コンポーネントのアクティビティスレッド終了関数

コンポーネントの内部アクティビティスレッド終了時に呼ばれる。 コンポーネントオブジェクトの非アクティブ化、マネージャへの通知を行う。 これは ACE_Task サービスクラスメソッドのオーバーライド。

virtual ReturnCode_t RTC::PeriodicExecutionContext::deactivate_component LightweightRTObject_ptr  comp  )  [virtual]
 

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

Description

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

Constraints

  • ExecutionContext は自身に所属するコンポーネントのみ非アクティブ化 できる。もし、与えられた RTC がこの ExecutionContext に所属してい ない場合 BAD_PARAMETER を返して失敗する。
戻り値:
OK, BAD_PARAMETER を返す。

RTC::ExecutionContextBaseを再定義しています。

virtual LifeCycleState RTC::PeriodicExecutionContext::get_component_state LightweightRTObject_ptr  comp  )  [virtual]
 

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

Description

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

Constraints

  • RTC は Alive状態でなければならない。
  • 与えられる RTC は ExecutionContext に所属していなければならない。
戻り値:
LifeCycleState::INACTIVE, ACTIVE, ERROR を返す。

RTC::ExecutionContextBaseを再定義しています。

virtual ExecutionKind RTC::PeriodicExecutionContext::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::ExecutionContextBaseを再定義しています。

virtual ExecutionContextProfile* RTC::PeriodicExecutionContext::get_profile  )  [virtual]
 

ExecutionContextProfile を取得する.

Description

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

RTC::ExecutionContextBaseを再定義しています。

virtual CORBA::Double RTC::PeriodicExecutionContext::get_rate  )  [virtual]
 

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

Description

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

Semantics

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

Constraints

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

RTC::ExecutionContextBaseを再定義しています。

ExecutionContextService_ptr RTC::PeriodicExecutionContext::getRef  )  [inline]
 

virtual CORBA::Boolean RTC::PeriodicExecutionContext::is_running  )  [virtual]
 

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

Description

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

Semantics

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

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

RTC::ExecutionContextBaseを再定義しています。

virtual int RTC::PeriodicExecutionContext::open void *  args  )  [virtual]
 

コンポーネントのアクティビティスレッドを生成する

コンポーネントの内部アクティビティスレッドを生成し起動する。 これは ACE_Task サービスクラスメソッドのオーバーライド。

引数:
args 通常は0

virtual ReturnCode_t RTC::PeriodicExecutionContext::remove LightweightRTObject_ptr  comp  )  [virtual]
 

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

Description

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

  • もし与えられた RTC がこのコンテキストに参加していない場合には、 このオペレーションは BAD_PARAMETER を返す。
  • RTC をこの ExecutionContext の所属からはずす場合には、 RTC は非アクティブ化しなければならない。 与えられた RTC が ExecutionContext に所属しているものの、 Active 状態にいる場合には、PRECONDITION_NOT_MET を返す。

RTC::ExecutionContextBaseを再定義しています。

virtual ReturnCode_t RTC::PeriodicExecutionContext::reset_component LightweightRTObject_ptr  comp  )  [virtual]
 

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

Description

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

Constraints

  • ExecutionContext は自身に所属するコンポーネントのみ非アクティブ化 できる。もし、与えられた RTC がこの ExecutionContext に所属してい ない場合 BAD_PARAMETER を返して失敗する。
戻り値:
OK, BAD_PARAMETER を返す。

RTC::ExecutionContextBaseを再定義しています。

virtual ReturnCode_t RTC::PeriodicExecutionContext::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::ExecutionContextBaseを再定義しています。

virtual ReturnCode_t RTC::PeriodicExecutionContext::start  )  [virtual]
 

ExecutionContext をスタートさせる.

Description

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

Semantics

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

Constraints

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

RTC::ExecutionContextBaseを再定義しています。

virtual ReturnCode_t RTC::PeriodicExecutionContext::stop  )  [virtual]
 

ExecutionContext をストップさせる.

Description

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

Semantics

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

Constraints

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

RTC::ExecutionContextBaseを再定義しています。

virtual int RTC::PeriodicExecutionContext::svc void   )  [virtual]
 

コンポーネントのアクティビティスレッド関数

コンポーネントの内部アクティビティスレッドの実行関数。 これは ACE_Task サービスクラスメソッドのオーバーライド。


変数

std::vector<Comp> RTC::PeriodicExecutionContext::m_comps [protected]
 

bool RTC::PeriodicExecutionContext::m_nowait [protected]
 

ExecutionContextProfile RTC::PeriodicExecutionContext::m_profile [protected]
 

RTC::ExecutionContextBaseを再定義しています。

ExecutionContextService_var RTC::PeriodicExecutionContext::m_ref [protected]
 

bool RTC::PeriodicExecutionContext::m_running [protected]
 

RTC::ExecutionContextBaseを再定義しています。

long int RTC::PeriodicExecutionContext::m_usec [protected]
 


このクラスの説明は次のファイルから生成されました:
OpenRTMに対してFri Oct 5 05:15:02 2007に生成されました。  doxygen 1.4.1