OpenRTM  1.0.0
構成 | Public 型 | Public メソッド | Protected メソッド | Protected 変数 | すべてのメンバ一覧
クラス coil::PeriodicTask

周期タスクスレッド実行クラス [詳細]

#include <PeriodicTask.h>

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

構成

class  alive_t
 alive_t クラス [詳細]
struct  statistics_t
 タスク実行時間計測管理用構造体 [詳細]
struct  suspend_t
 タスク中断管理用構造体 [詳細]

Public 型

typedef coil::Guard< coil::MutexGuard

Public メソッド

 PeriodicTask ()
virtual ~PeriodicTask ()
 デストラクタ
virtual void activate ()
 タスク実行を開始する
virtual void finalize ()
 タスク実行を終了する
virtual int suspend (void)
 タスク実行を中断する
virtual int resume (void)
virtual void signal ()
virtual bool setTask (TaskFuncBase *func, bool delete_in_dtor=true)
 タスク実行関数をセットする
template<class O , class F >
bool setTask (O *obj, F fun)
 タスク実行関数をセットする
virtual void setPeriod (double period)
 タスク実行周期をセットする
virtual void setPeriod (TimeValue &period)
 タスク実行周期をセットする
virtual void executionMeasure (bool value)
 タスク関数実行時間計測を有効にするか
virtual void executionMeasureCount (int n)
 タスク関数実行時間計測周期
virtual void periodicMeasure (bool value)
 タスク周期時間計測を有効にするか
virtual void periodicMeasureCount (int n)
 タスク周期時間計測周期
virtual TimeMeasure::Statistics getExecStat ()
 タスク関数実行時間計測結果を取得
virtual TimeMeasure::Statistics getPeriodStat ()
 タスク周期時間計測結果を取得
- Public メソッド inherited from coil::PeriodicTaskBase
virtual ~PeriodicTaskBase ()
 デストラクタ
- Public メソッド inherited from coil::Task
 Task ()
virtual ~Task ()
virtual int open (void *args=0)
 タスクオープン
virtual int close (unsigned long flags=0)
 タスククローズ
virtual int wait (void)
virtual void reset ()

Protected メソッド

virtual int svc ()
 PeriodicTask 用のスレッド実行
virtual void sleep ()
 スレッド休止
virtual void updateExecStat ()
 実行状態更新
virtual void updatePeriodStat ()
 周期状態更新

Protected 変数

coil::TimeValue m_period
 タスク実行周期
bool m_nowait
 スレッド休止フラグ
TaskFuncBasem_func
 タスク実行関数
bool m_deleteInDtor
 タスク実行関数削除フラグ
alive_t m_alive
 タスク生存フラグ
suspend_t m_suspend
 タスク中断情報
bool m_execMeasure
 タスク実行時間計測フラグ
unsigned int m_execCount
 タスク実行時間計測回数
unsigned int m_execCountMax
 タスク実行時間計測周期
statistics_t m_execStat
 タスク実行時間計測統計
coil::TimeMeasure m_execTime
 タスク実行時間計測情報
bool m_periodMeasure
 タスク周期時間計測フラグ
unsigned int m_periodCount
 タスク周期時間計測回数
unsigned int m_periodCountMax
 タスク周期時間計測最大数
statistics_t m_periodStat
 タスク周期時間計測統計
coil::TimeMeasure m_periodTime
 タスク周期時間計測情報

Additional Inherited Members

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

説明

周期タスクスレッド実行クラス

特定の関数を周期実行するためのスレッドオブジェクトを実現する。 使用手順は以下の通り。

task; // インスタンス生成 task.setTask(TaskFuncBase(obj, mem_func)); // 実行する関数を与える task.activate(); // スレッドをスタートさせる

task.suspend(); // 周期実行を止める task.signal(); // 1周期だけ実行 task.resume(); // 周期実行を再開

task.finalize(); // タスクを終了させる

型定義

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

coil::PeriodicTask::PeriodicTask ( )

コンストラクタ

virtual coil::PeriodicTask::~PeriodicTask ( )
virtual

デストラクタ

デストラクタ。

関数

virtual void coil::PeriodicTask::activate ( )
virtual

タスク実行を開始する

タスクの実行を開始するためにスレッドをスタートさせる。 タスクが 正常に開始された場合は true が返り、すでにタスクが開始済み、また は実行するタスクが設定されていなければ false を返す。

戻り値
true: 正常開始、false: スレッド済みかタスクが未設定である。

coil::PeriodicTaskBaseを実装しています。

virtual void coil::PeriodicTask::executionMeasure ( bool  value)
virtual

タスク関数実行時間計測を有効にするか

coil::PeriodicTaskBaseを実装しています。

virtual void coil::PeriodicTask::executionMeasureCount ( int  n)
virtual

タスク関数実行時間計測周期

coil::PeriodicTaskBaseを実装しています。

virtual void coil::PeriodicTask::finalize ( )
virtual

タスク実行を終了する

実行中のタスクを終了する。

coil::PeriodicTaskBaseを実装しています。

virtual TimeMeasure::Statistics coil::PeriodicTask::getExecStat ( )
virtual

タスク関数実行時間計測結果を取得

coil::PeriodicTaskBaseを実装しています。

virtual TimeMeasure::Statistics coil::PeriodicTask::getPeriodStat ( )
virtual

タスク周期時間計測結果を取得

coil::PeriodicTaskBaseを実装しています。

virtual void coil::PeriodicTask::periodicMeasure ( bool  value)
virtual

タスク周期時間計測を有効にするか

coil::PeriodicTaskBaseを実装しています。

virtual void coil::PeriodicTask::periodicMeasureCount ( int  n)
virtual

タスク周期時間計測周期

coil::PeriodicTaskBaseを実装しています。

virtual int coil::PeriodicTask::resume ( void  )
virtual

中断されているタスクを再開する

coil::PeriodicTaskBaseを実装しています。

virtual void coil::PeriodicTask::setPeriod ( double  period)
virtual

タスク実行周期をセットする

引数
period実行周期 [sec]

coil::PeriodicTaskBaseを実装しています。

virtual void coil::PeriodicTask::setPeriod ( TimeValue period)
virtual

タスク実行周期をセットする

引数
period実行周期

coil::PeriodicTaskBaseを実装しています。

virtual bool coil::PeriodicTask::setTask ( TaskFuncBase func,
bool  delete_in_dtor = true 
)
virtual

タスク実行関数をセットする

引数
funcint (*)() 型の関数ポインタ

coil::PeriodicTaskBaseを実装しています。

参照元 setTask().

template<class O , class F >
bool coil::PeriodicTask::setTask ( O *  obj,
fun 
)
inline

タスク実行関数をセットする

引数
funcint (*)() 型の関数ポインタ
戻り値
true: 成功, false: 失敗

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

参照先 setTask().

virtual void coil::PeriodicTask::signal ( )
virtual

中断されているタスクを1周期だけ実行する

coil::PeriodicTaskBaseを実装しています。

virtual void coil::PeriodicTask::sleep ( )
protectedvirtual

スレッド休止

virtual int coil::PeriodicTask::suspend ( void  )
virtual

タスク実行を中断する

実行中のタスクを中断する。

coil::PeriodicTaskBaseを実装しています。

virtual int coil::PeriodicTask::svc ( )
protectedvirtual

PeriodicTask 用のスレッド実行

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

virtual void coil::PeriodicTask::updateExecStat ( )
protectedvirtual

実行状態更新

virtual void coil::PeriodicTask::updatePeriodStat ( )
protectedvirtual

周期状態更新

変数

alive_t coil::PeriodicTask::m_alive
protected

タスク生存フラグ

bool coil::PeriodicTask::m_deleteInDtor
protected

タスク実行関数削除フラグ

unsigned int coil::PeriodicTask::m_execCount
protected

タスク実行時間計測回数

unsigned int coil::PeriodicTask::m_execCountMax
protected

タスク実行時間計測周期

bool coil::PeriodicTask::m_execMeasure
protected

タスク実行時間計測フラグ

statistics_t coil::PeriodicTask::m_execStat
protected

タスク実行時間計測統計

coil::TimeMeasure coil::PeriodicTask::m_execTime
protected

タスク実行時間計測情報

TaskFuncBase* coil::PeriodicTask::m_func
protected

タスク実行関数

bool coil::PeriodicTask::m_nowait
protected

スレッド休止フラグ

coil::TimeValue coil::PeriodicTask::m_period
protected

タスク実行周期

unsigned int coil::PeriodicTask::m_periodCount
protected

タスク周期時間計測回数

unsigned int coil::PeriodicTask::m_periodCountMax
protected

タスク周期時間計測最大数

bool coil::PeriodicTask::m_periodMeasure
protected

タスク周期時間計測フラグ

statistics_t coil::PeriodicTask::m_periodStat
protected

タスク周期時間計測統計

coil::TimeMeasure coil::PeriodicTask::m_periodTime
protected

タスク周期時間計測情報

suspend_t coil::PeriodicTask::m_suspend
protected

タスク中断情報