OpenRTM  1.0.0
TimeMeasure.h
説明を見る。
1 // -*- C++ -*-
20 #ifndef COIL_TIMEMEASURE_H
21 #define COIL_TIMEMEASURE_H
22 
23 #include <vector>
24 #include <coil/TimeValue.h>
25 
26 namespace coil
27 {
28 
50  {
51  public:
63  struct Statistics
64  {
65  double max_interval;
66  double min_interval;
67  double mean_interval;
68  double std_deviation;
69  };
70 
86  TimeMeasure(int buflen = 100);
87 
103  void tick();
104 
120  void tack();
121 
142 
158  void reset();
159 
179  unsigned long int count() const;
180 
210  bool getStatistics(double &max_interval,
211  double &min_interval,
212  double &mean_interval,
213  double &stddev);
214 
235 
236  private:
237  std::vector<coil::TimeValue> m_record;
238  coil::TimeValue m_begin;
239  coil::TimeValue m_interval;
240 
241  unsigned long int m_count;
242  const unsigned long int m_countMax;
243  unsigned long long int m_cpuClock;
244 
245  bool m_recurred;
246  };
247 }; // namespace coil
248 #endif // COIL_TIMEMEASURE_H