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 
7 namespace 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;
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;
35  using misc::milliseconds;
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
Definition: milliSeconds.h:17
long long msec(Duration duration)
Definition: milliSeconds.h:26
double elapsedSeconds(time_point start)
Definition: milliSeconds.h:29
std::chrono::time_point< clock > time_point
Definition: milliSeconds.h:18
double toSeconds(Duration duration)
Definition: milliSeconds.h:22
std::chrono::milliseconds milliseconds
Definition: milliSeconds.h:19