BALL 1.5.0
Loading...
Searching...
No Matches
timer.h
Go to the documentation of this file.
1// -*- Mode: C++; tab-width: 2; -*-
2// vi: set ts=2:
3//
4// $Id: timer.h,v 1.17 2005/07/29 12:38:15 amoll Exp $
5//
6
7#ifndef BALL_SYSTEM_TIMER_H
8#define BALL_SYSTEM_TIMER_H
9
10#ifndef BALL_COMMON_H
11# include <BALL/common.h>
12#endif
13
14#ifdef BALL_HAS_SYS_TIME_H
15# include <sys/time.h>
16#endif
17#ifdef BALL_HAS_TIME_H
18# include <time.h>
19#endif
21
22
23#include <iostream>
24
25namespace BALL
31 {
32 public:
33
37
42
46 Timer(Timer& timer);
47
51 virtual ~Timer();
52
54
57
62 void clear();
63
69 bool start();
70
76 bool stop();
77
82 void reset();
83
85
89
93 double getClockTime() const;
94
98 double getUserTime() const;
99
103 double getSystemTime() const;
104
109 double getCPUTime() const;
110
112
116
122 Timer& operator = (const Timer& timer);
123
125
129
133 bool isRunning() const;
134
142 bool operator == (const Timer& timer) const;
143
151 bool operator != (const Timer& timer) const;
152
159 bool operator < (const Timer& timer) const;
160
167 bool operator <= (const Timer& timer) const;
168
175 bool operator >= (const Timer& timer) const;
176
183 bool operator > (const Timer& timer) const;
184
186
189
193 bool isValid() const;
194
197 void dump(::std::ostream& s = ::std::cout, Size depth = 0L) const;
198
200
201 protected:
202
203 private:
204
205 static LongSize cpu_speed_;
206
207 #ifdef BALL_HAS_WINDOWS_PERFORMANCE_COUNTER
208 static PointerSizeUInt clock_speed_;
209 #endif
210
211 // state of timer, either true(on) or false(off)
212 bool is_running_;
213
214 // clock seconds value when the timer was last started
215 LongSize last_secs_;
216
217 // clock useconds value when the timer was last started
218 LongSize last_usecs_;
219
220 // user time when the timer was last started
221 clock_t last_user_time_;
222
223 // system time when the timer was last started
224 clock_t last_system_time_;
225
226 // current accumulated clock seconds
227 LongSize current_secs_;
228
229 // current accumulated clock useconds
230 LongSize current_usecs_;
231
232 // current accumulated user time
233 clock_t current_user_time_;
234
235 // current accumulated user time
236 clock_t current_system_time_;
237 };
238
239# ifndef BALL_NO_INLINE_FUNCTIONS
240# include "timer.iC"
241# endif
242
243}
244
245#endif // BALL_SYSTEM_TIMER_H
BALL_POINTERSIZEUINT_TYPE PointerSizeUInt
BALL_ULONG64_TYPE LongSize
double getUserTime() const
void dump(::std::ostream &s=::std::cout, Size depth=0L) const
double getClockTime() const
void clear()
virtual ~Timer()
double getSystemTime() const
bool start()
void reset()
Timer(Timer &timer)
#define BALL_EXPORT