OpenRTM  1.0.0
構成 | Public メソッド | すべてのメンバ一覧
クラス coil::Timer

Timerクラス [詳細]

#include <Timer.h>

coil::Timerに対する継承グラフ
coil::Task

Public メソッド

 Timer (TimeValue &interval)
 コンストラクタ [詳細]
 
virtual ~Timer ()
 
virtual int open (void *args)
 Timer 用スレッド生成 [詳細]
 
virtual int svc (void)
 Timer 用のスレッド実行関数 [詳細]
 
void start ()
 Timer タスク開始 [詳細]
 
void stop ()
 Timer タスク停止 [詳細]
 
void invoke ()
 Timer タスク実行 [詳細]
 
ListenerId registerListener (ListenerBase *listener, TimeValue tm)
 リスナー登録 [詳細]
 
template<class ListenerClass >
ListenerId registerListenerObj (ListenerClass *obj, void(ListenerClass::*cbf)(), TimeValue tm)
 リスナー登録 [詳細]
 
ListenerId registerListenerFunc (void(*cbf)(), TimeValue tm)
 リスナー登録 [詳細]
 
bool unregisterListener (ListenerId id)
 リスナー登録解除 [詳細]
 
- Public メソッド inherited from coil::Task
 Task ()
 
virtual ~Task ()
 
virtual int close (unsigned long flags=0)
 タスククローズ [詳細]
 
virtual void activate ()
 
virtual int wait (void)
 
virtual int suspend (void)
 
virtual int resume (void)
 
virtual void reset ()
 
virtual void finalize ()
 

Additional Inherited Members

- Static Public メソッド inherited from coil::Task
static void * svc_run (void *args=0)
 スレッド実行を開始する [詳細]
 

説明

Timerクラス

登録されたリスナーのコールバック関数を、設定された周期で定期的に呼び出す。

から
0.4.0

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

coil::Timer::Timer ( TimeValue interval)

コンストラクタ

コンストラクタ

引数
intervalタイマ起動周期
virtual coil::Timer::~Timer ( )
virtual

デストラクタ

関数

void coil::Timer::invoke ( )

Timer タスク実行

登録された各リスナの起動待ち時間からタイマ起動周期を減算する。 起動待ち時間がゼロとなったリスナが存在する場合は、 コールバック関数を呼び出す。

virtual int coil::Timer::open ( void *  args)
virtual

Timer 用スレッド生成

Timer 用の内部スレッドを生成し起動する。 これは ACE_Task サービスクラスメソッドのオーバーライド。

引数
args通常は0
戻り値
生成処理実行結果

coil::Taskを再定義しています。

ListenerId coil::Timer::registerListener ( ListenerBase listener,
TimeValue  tm 
)

リスナー登録

Timer から起動するコールバック関数用のリスナーを起動周期を指定して 登録する。 同一リスナーが既に登録済みの場合は、リスナーの起動周期を指定した値に 更新する。

引数
listener登録対象リスナー
tmリスナー起動周期
戻り値
登録リスナーID

参照元 registerListenerFunc(), と registerListenerObj().

ListenerId coil::Timer::registerListenerFunc ( void(*)()  cbf,
TimeValue  tm 
)
inline

リスナー登録

コールバック対象メソッドと起動周期を指定してリスナーを登録する。

引数
cbfコールバック対象メソッド
tmリスナー起動周期
戻り値
登録リスナーID

参照先 registerListener().

template<class ListenerClass >
ListenerId coil::Timer::registerListenerObj ( ListenerClass *  obj,
void(ListenerClass::*)()  cbf,
TimeValue  tm 
)
inline

リスナー登録

コールバック対象オブジェクト、コールバック対象メソッドおよび起動周期を 指定してリスナーを登録する。

引数
objコールバック対象オブジェクト
cbfコールバック対象メソッド
tmリスナー起動周期
戻り値
登録リスナーID

参照先 registerListener().

void coil::Timer::start ( )

Timer タスク開始

Timer 用新規スレッドを生成し、処理を開始する。

void coil::Timer::stop ( )

Timer タスク停止

Timer タスクを停止する。

virtual int coil::Timer::svc ( void  )
virtual

Timer 用のスレッド実行関数

Timer 用のスレッド実行関数。 登録されたリスナーのコールバック関数を呼び出す。

戻り値
実行結果

coil::Taskを再定義しています。

bool coil::Timer::unregisterListener ( ListenerId  id)

リスナー登録解除

指定したIDのリスナーの登録を解除する。 指定したIDのリスナーが未登録の場合、false を返す。

引数
id登録解除対象リスナーID
戻り値
登録解除結果