周期タスクスレッド実行クラス [詳細]
#include <PeriodicTask.h>
構成 | |
class | alive_t |
alive_t クラス [詳細] | |
struct | statistics_t |
タスク実行時間計測管理用構造体 [詳細] | |
struct | suspend_t |
タスク中断管理用構造体 [詳細] | |
Public 型 | |
typedef coil::Guard< coil::Mutex > | Guard |
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 |
スレッド休止フラグ | |
TaskFuncBase * | m_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 を返す。
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] |
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] |
virtual void coil::PeriodicTask::setPeriod | ( | double | period | ) | [virtual] |
bool coil::PeriodicTask::setTask | ( | O * | obj, | |
F | fun | |||
) | [inline] |
タスク実行関数をセットする
func | int (*)() 型の関数ポインタ |
coil::PeriodicTaskBaseを再定義しています。
参照先 setTask().
virtual bool coil::PeriodicTask::setTask | ( | TaskFuncBase * | func, | |
bool | delete_in_dtor = true | |||
) | [virtual] |
virtual void coil::PeriodicTask::signal | ( | ) | [virtual] |
中断されているタスクを1周期だけ実行する
coil::PeriodicTaskBaseを実装しています。
virtual void coil::PeriodicTask::sleep | ( | ) | [protected, virtual] |
スレッド休止
virtual int coil::PeriodicTask::suspend | ( | void | ) | [virtual] |
virtual int coil::PeriodicTask::svc | ( | ) | [protected, virtual] |
PeriodicTask 用のスレッド実行.
coil::Taskを再定義しています。
virtual void coil::PeriodicTask::updateExecStat | ( | ) | [protected, virtual] |
実行状態更新
virtual void coil::PeriodicTask::updatePeriodStat | ( | ) | [protected, virtual] |
周期状態更新
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] |
タスク中断情報