OpenRTM-aist  1.2.1
クラス | 公開型 | 公開メンバ関数 | 限定公開メンバ関数 | 限定公開変数類 | 全メンバ一覧
coil::PeriodicTask クラス

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

#include <PeriodicTask.h>

coil::PeriodicTask の継承関係図
Inheritance graph
[凡例]
coil::PeriodicTask 連携図
Collaboration graph
[凡例]

クラス

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

公開型

typedef coil::Guard< coil::MutexGuard
 

公開メンバ関数

 PeriodicTask ()
 コンストラクタ [詳解]
 
virtual ~PeriodicTask ()
 デストラクタ [詳解]
 
virtual void activate ()
 タスク実行を開始する [詳解]
 
virtual void finalize ()
 タスク実行を終了する [詳解]
 
virtual int suspend (void)
 タスク実行を中断する [詳解]
 
virtual int resume (void)
 中断されているタスクを再開する [詳解]
 
virtual void signal ()
 中断されているタスクを1周期だけ実行する [詳解]
 
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 ()
 タスク周期時間計測結果を取得 [詳解]
 
- 基底クラス coil::PeriodicTaskBase に属する継承公開メンバ関数
virtual ~PeriodicTaskBase ()
 デストラクタ [詳解]
 
template<class O , class F >
bool setTask (O *obj, F fun)
 タスク実行関数をセットする [詳解]
 
- 基底クラス 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 ()
 タスク数リセット [詳解]
 

限定公開メンバ関数

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

限定公開変数類

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

その他の継承メンバ

- 基底クラス 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を実装しています。

参照元 setTask().

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

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

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

参照元 setTask().

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

タスク実行を終了する

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

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

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

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

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

参照元 setTask().

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

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

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

参照元 setTask().

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

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

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

参照元 setTask().

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

タスク周期時間計測周期

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

参照元 setTask().

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

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

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

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

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

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

引数
period実行周期 [sec]

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

参照元 setTask().

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: 失敗

参照先 executionMeasure(), executionMeasureCount(), getExecStat(), getPeriodStat(), periodicMeasure(), periodicMeasureCount(), setPeriod(), setTask(), sleep(), svc(), updateExecStat(), updatePeriodStat().

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

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

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

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

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

スレッド休止

参照元 setTask().

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

タスク実行を中断する

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

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

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

PeriodicTask 用のスレッド実行

coil::Taskを再実装しています。

参照元 setTask().

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

実行状態更新

参照元 setTask().

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

周期状態更新

参照元 setTask().

メンバ詳解

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

タスク中断情報


このクラス詳解は次のファイルから抽出されました: