feisty meow concerns codebase 2.140
stopwatch.h
Go to the documentation of this file.
1#ifndef STOPWATCH_CLASS
2#define STOPWATCH_CLASS
3
4/*
5 * Name : stopwatch
6 * Author : Chris Koeritz
7 *
8 * Copyright (c) 1991-$now By Author. This program is free software; you can
9 * redistribute it and/or modify it under the terms of the GNU General Public
10 * License as published by the Free Software Foundation; either version 2 of
11 * the License or (at your option) any later version. This is online at:
12 * http://www.fsf.org/copyleft/gpl.html
13 * Please send any updates to: fred@gruntose.com
14 */
15
16#include "time_stamp.h"
17
18namespace timely {
19
21
28class stopwatch : public virtual basis::root_object
29{
30public:
31 stopwatch();
32 stopwatch(const stopwatch &to_copy);
33
34 virtual ~stopwatch();
35
36 stopwatch &operator =(const stopwatch &to_copy);
37
38 void start();
40
42 void halt();
44
46 void stop() { halt(); }
48
49 void reset();
51
52 int milliseconds();
54 int elapsed() { return milliseconds(); }
56
57private:
58 enum stopwatch_kinds { UNSTARTED, RUNNING, STOPPED };
59 stopwatch_kinds _status;
60 time_stamp *_start_time;
61 time_stamp *_stop_time;
62 int _total_so_far;
63
64 int common_measure();
66
67 int compute_diff(const time_stamp &t1, const time_stamp &t2);
69};
70
72
74
79#define TIME_CHECK_BEGIN \
80 stopwatch t; \
81 t.start();
82#define TIME_CHECK_END(logger, who, msec_limit, what, filter) { \
83 t.halt(); \
84 if (t.milliseconds() > msec_limit) { \
85 (logger).log( a_sprintf("TIME_CHECK: %s: %d ms wait for %s.", \
86 (who), t.milliseconds(), (what)), filter); \
87 } \
88}
89
90} //namespace.
91
92#endif
93
A class for measuring event durations in real time.
Definition stopwatch.h:29
stopwatch & operator=(const stopwatch &to_copy)
Definition stopwatch.cpp:47
int milliseconds()
Returns the elapsed number of milliseconds on the stopwatch, overall.
Definition stopwatch.cpp:59
void halt()
Stops the timing.
Definition stopwatch.cpp:71
void reset()
Stops the stopwatch and clears it to zero time elapsed.
Definition stopwatch.cpp:57
void stop()
a synonym for halt().
Definition stopwatch.h:46
int elapsed()
a synonym for milliseconds().
Definition stopwatch.h:54
virtual ~stopwatch()
Definition stopwatch.cpp:40
void start()
Begins the timing.
Definition stopwatch.cpp:61
#include <time.h>