00001
00013 #ifndef __RtcTimeStatistics_h__
00014 #define __RtcTimeStatistics_h__
00015
00016 #include "rtm/RtcRingBuffer.h"
00017
00018 namespace RTM
00019 {
00020
00021
00029 class TimeStatistics
00030 {
00031 public:
00037 TimeStatistics(int buflen = 100);
00038
00044 void tick();
00045
00051 void tack();
00052
00058 int get_count() const {return m_Count;}
00059
00065 void get_stat(unsigned long long &max_interval,
00066 unsigned long long &min_interval,
00067 double &mean_interval, double &stddev);
00068
00074 unsigned long long get_hrtime();
00075
00081 unsigned long long get_system_clock();
00082
00083 private:
00084 RTM::RingBuffer<unsigned long long int> m_TimeRecord;
00085 unsigned long long int m_BeginTime;
00086 unsigned long long int m_EndTime;
00087 const int m_Count;
00088 unsigned long long m_CpuClock;
00089 };
00090
00091 };
00092
00093
00094 #endif // End of __RtcTimeStatistics_h__