Duration.hpp
Go to the documentation of this file.
1 
6 #pragma once
7 
8 #include <etk/types.hpp>
9 #include <chrono>
10 
11 namespace echrono {
12  using nanoseconds = std::chrono::nanoseconds;
13  using microseconds = std::chrono::microseconds;
14  using milliseconds = std::chrono::milliseconds;
15  using seconds = std::chrono::seconds;
16 
17  class Duration {
18  private:
19  echrono::nanoseconds m_data;
20  public:
21  Duration();
22  Duration(int _val); //value in nanosecond
23  Duration(int64_t _val); //value in nanosecond
24  Duration(int64_t _valSec, int64_t _valNano); //value in second and nanosecond
25  Duration(double _val); //value in second
26  Duration(echrono::nanoseconds _val);
27  Duration(echrono::microseconds _val);
28  Duration(echrono::milliseconds _val);
29  Duration(echrono::seconds _val);
30  ~Duration() { };
31  int64_t count() const;
32  const echrono::nanoseconds& get() const {
33  return m_data;
34  }
35  const Duration& operator= (const Duration& _obj);
36  bool operator== (const Duration& _obj) const;
37  bool operator!= (const Duration& _obj) const;
38  bool operator< (const echrono::Duration& _obj) const;
39  bool operator<= (const echrono::Duration& _obj) const;
40  bool operator> (const echrono::Duration& _obj) const;
41  bool operator>= (const echrono::Duration& _obj) const;
42  Duration operator/ (float _value) const;
43  const Duration& operator/= (float _value);
44  Duration operator* (float _value) const;
45  const Duration& operator*= (float _value);
46  const Duration& operator+= (const Duration& _obj);
47  Duration operator+ (const Duration& _obj) const;
48  const Duration& operator-= (const Duration& _obj);
49  Duration operator- (const Duration& _obj) const;
50  Duration& operator++();
51  Duration operator++(int _unused);
52  Duration& operator--();
53  Duration operator--(int _unused);
54  float toSeconds() const;
55  void reset();
56  };
57  std::ostream& operator <<(std::ostream& _os, const echrono::Duration& _obj);
58 }
59 
Definition: Duration.hpp:17
Definition: Clock.hpp:12