My Project
milliSeconds.h
Go to the documentation of this file.
1#ifndef OSL_MILLISECONDS_H
2#define OSL_MILLISECONDS_H
3
4#include <chrono>
5#include <stdexcept>
6
7namespace osl
8{
9 namespace misc
10 {
11 struct NoMoreTime : std::runtime_error
12 {
13 NoMoreTime() : std::runtime_error("time limit over")
14 {
15 }
16 };
17 typedef std::chrono::high_resolution_clock clock;
18 typedef std::chrono::time_point<clock> time_point;
19 typedef std::chrono::milliseconds milliseconds;
20 using std::chrono::duration_cast;
21 template <class Duration>
22 inline double toSeconds(Duration duration) {
23 return duration_cast<std::chrono::duration<double>>(duration).count();
24 }
25 template <class Duration>
26 inline long long msec(Duration duration) {
27 return duration_cast<milliseconds>(duration).count();
28 }
29 inline double elapsedSeconds(time_point start) {
30 return toSeconds(clock::now()-start);
31 }
32 } // namespace misc
33 using misc::clock;
34 using misc::time_point;
37 using misc::toSeconds;
38 using misc::duration_cast;
39 using misc::msec;
40} // namespace osl
41
42
43#endif // OSL_MILLISECONDS_H
44// ;;; Local Variables:
45// ;;; mode:c++
46// ;;; c-basic-offset:2
47// ;;; End:
std::chrono::high_resolution_clock clock
long long msec(Duration duration)
double elapsedSeconds(time_point start)
std::chrono::time_point< clock > time_point
double toSeconds(Duration duration)
std::chrono::milliseconds milliseconds