SigUtil  0.95
Utility modules for modern C++
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
sig::TimeWatch< Clock > Class Template Reference

タイムウォッチ More...

Public Member Functions

 TimeWatch ()
 
void reset ()
 初期化して停止 More...
 
void stop ()
 停止 More...
 
void restart ()
 停止解除 More...
 
void save ()
 時間保存 More...
 
uint get_count () const
 記録したデータ数を取得 More...
 
template<class TimeUnit = std::chrono::milliseconds>
long get_total_time ()
  全区間のトータルの時間を取得 More...
 
template<class TimeUnit = std::chrono::milliseconds>
auto get_split_time (uint index) -> Maybe< long >
  指定した区間までのトータル時間(スプリットタイム)を取得 More...
 
template<class TimeUnit = std::chrono::milliseconds>
auto get_lap_time (uint index) -> Maybe< long >
  指定した区間の時間(ラップタイム)を取得 More...
 

Detailed Description

template<class Clock = std::chrono::system_clock>
class sig::TimeWatch< Clock >

タイムウォッチ

Clock 時間の精度(defaultはstd::chrono::system_clock. 高精度はstd::chrono::high_resolution_clock)

TimeWatch tw; // 計測開始
tsleep(100);
tw.save(); //ここまでのタイムを記録
tsleep(200);
tw.save(); //ここまでのタイムを記録
tsleep(300);
tw.stop(); //一時停止
tsleep(10);
tw.save(); //ここまでのタイムを記録
tsleep(20);
tw.restart(); //計測再開
tsleep(400);
tw.save(); //ここまでのタイムを記録
const unsigned moe = 10; //環境毎のsleep時間誤差(ms)
assert( equal_tolerant(*tw.get_lap_time(0)), 100, moe); //100 ± moe (ms)
assert( equal_tolerant(*tw.get_lap_time(1)), 200, moe); //200 ± moe (ms)
assert( equal_tolerant(*tw.get_lap_time(2)), 300, moe); //300 ± moe (ms)
assert( equal_tolerant(*tw.get_lap_time(3)), 400, moe); //400 ± moe (ms)
assert(! sig::isJust(tw.get_lap_time(4))); // no data
assert( equal_tolerant(*tw.get_split_time(0)), 100, moe); //100 ± moe (ms)
assert( equal_tolerant(*tw.get_split_time(1)), 300, moe); //300 ± moe (ms)
assert( equal_tolerant(*tw.get_split_time(2)), 600, moe); //600 ± moe (ms)
assert( equal_tolerant(*tw.get_split_time(3)), 1000, moe); //1000 ± moe (ms)
assert( equal_tolerant( tw.get_total_time(), 1000, 4 * moe)); //1000 ± 4 * moe (ms)
assert( equal( tw.get_total_time<std::chrono::seconds>(), 1)); //1 (s)
assert( equal_tolerant( tw.get_total_time<std::chrono::microseconds>(), 1000000, 10000)); //1000000 ± 10000 (μs)

Definition at line 60 of file time_watch.hpp.

Constructor & Destructor Documentation

template<class Clock = std::chrono::system_clock>
sig::TimeWatch< Clock >::TimeWatch ( )
inline

Definition at line 86 of file time_watch.hpp.

Member Function Documentation

template<class Clock = std::chrono::system_clock>
uint sig::TimeWatch< Clock >::get_count ( ) const
inline

記録したデータ数を取得

Definition at line 128 of file time_watch.hpp.

template<class Clock = std::chrono::system_clock>
template<class TimeUnit = std::chrono::milliseconds>
auto sig::TimeWatch< Clock >::get_lap_time ( uint  index) -> Maybe<long>
inline

 指定した区間の時間(ラップタイム)を取得

Template Parameters
TimeUnit取得する時間の単位を指定

Definition at line 158 of file time_watch.hpp.

template<class Clock = std::chrono::system_clock>
template<class TimeUnit = std::chrono::milliseconds>
auto sig::TimeWatch< Clock >::get_split_time ( uint  index) -> Maybe<long>
inline

 指定した区間までのトータル時間(スプリットタイム)を取得

Template Parameters
TimeUnit取得する時間の単位を指定

Definition at line 146 of file time_watch.hpp.

template<class Clock = std::chrono::system_clock>
template<class TimeUnit = std::chrono::milliseconds>
long sig::TimeWatch< Clock >::get_total_time ( )
inline

 全区間のトータルの時間を取得

Template Parameters
TimeUnit取得する時間の単位を指定

Definition at line 136 of file time_watch.hpp.

template<class Clock = std::chrono::system_clock>
void sig::TimeWatch< Clock >::reset ( )
inline

初期化して停止

Definition at line 93 of file time_watch.hpp.

template<class Clock = std::chrono::system_clock>
void sig::TimeWatch< Clock >::restart ( )
inline

停止解除

Definition at line 107 of file time_watch.hpp.

template<class Clock = std::chrono::system_clock>
void sig::TimeWatch< Clock >::save ( )
inline

時間保存

Definition at line 114 of file time_watch.hpp.

template<class Clock = std::chrono::system_clock>
void sig::TimeWatch< Clock >::stop ( )
inline

停止

Definition at line 100 of file time_watch.hpp.


The documentation for this class was generated from the following file: