クラス 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 ()
 タスク周期時間計測結果を取得

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
 タスク周期時間計測情報

説明

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

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

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 ( TimeValue period  )  [virtual]

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

引数:
period 実行周期

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

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

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

引数:
period 実行周期 [sec]

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

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

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

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

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

参照先 setTask().

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

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

引数:
func int (*)() 型の関数ポインタ

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

参照元 setTask().

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

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

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

virtual void coil::PeriodicTask::sleep (  )  [protected, virtual]

スレッド休止

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

タスク実行を中断する

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

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

virtual int coil::PeriodicTask::svc (  )  [protected, virtual]

PeriodicTask 用のスレッド実行.

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

virtual void coil::PeriodicTask::updateExecStat (  )  [protected, virtual]

実行状態更新

virtual void coil::PeriodicTask::updatePeriodStat (  )  [protected, virtual]

周期状態更新


変数

タスク生存フラグ

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

unsigned int coil::PeriodicTask::m_execCount [protected]

タスク実行時間計測回数

unsigned int coil::PeriodicTask::m_execCountMax [protected]

タスク実行時間計測周期

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

タスク実行時間計測統計

タスク実行時間計測情報

タスク実行関数

bool coil::PeriodicTask::m_nowait [protected]

スレッド休止フラグ

タスク実行周期

unsigned int coil::PeriodicTask::m_periodCount [protected]

タスク周期時間計測回数

unsigned int coil::PeriodicTask::m_periodCountMax [protected]

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

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

タスク周期時間計測統計

タスク周期時間計測情報

タスク中断情報

OpenRTMに対してThu May 24 23:25:19 2012に生成されました。  doxygen 1.6.3