Frequency.h
Go to the documentation of this file.
1 #pragma once
2 
3 
4 #include <cstdint>
5 #include <ostream>
6 #include <string>
7 
9 
10 namespace armarx::core::time
11 {
12 
13  /**
14  * @brief Represents a frequency.
15  */
16  class Frequency
17  {
18  // Public API.
19  public:
20  Frequency(const Duration& cycleDuration);
21 
22  static Frequency Hertz(std::int64_t hertz);
23 
24  static Frequency HertzDouble(double hertz);
25 
26  std::int64_t toHertz() const;
27 
28  double toHertzDouble() const;
29 
30  Duration toCycleDuration() const;
31 
32  std::string toFrequencyString() const;
33 
34  // Operators.
35  public:
36  Frequency operator+(const Frequency& rhs) const;
37 
38  Frequency& operator+=(const Frequency& rhs);
39 
40  Frequency operator-(const Frequency& rhs) const;
41 
42  Frequency& operator-=(const Frequency& rhs);
43 
44  Frequency operator*(double rhs) const;
45 
46  Frequency operator*(int rhs) const;
47 
48  Frequency operator*(std::int64_t rhs) const;
49 
50  Frequency& operator*=(double rhs);
51 
52  Frequency& operator*=(int rhs);
53 
54  Frequency& operator*=(std::int64_t rhs);
55 
56  double operator/(const Frequency& rhs) const;
57 
58  Frequency operator/(double rhs) const;
59 
60  Frequency operator/(int rhs) const;
61 
62  Frequency operator/(std::int64_t rhs) const;
63 
64  Frequency& operator/=(double rhs);
65 
66  Frequency& operator/=(int rhs);
67 
68  Frequency& operator/=(std::int64_t rhs);
69 
70  bool operator<(const Frequency& rhs) const;
71 
72  bool operator<=(const Frequency& rhs) const;
73 
74  bool operator==(const Frequency& rhs) const;
75 
76  bool operator!=(const Frequency& rhs) const;
77 
78  bool operator>=(const Frequency& rhs) const;
79 
80  bool operator>(const Frequency& rhs) const;
81 
82  protected:
83  /**
84  * @brief Current cycle duration.
85  */
87  };
88 
89  Frequency operator/(double cyclesPerDuration, const Duration& duration);
90 
91  Frequency operator/(int cyclesPerDuration, const Duration& duration);
92 
93  Frequency operator/(std::int64_t cyclesPerDuration, const Duration& duration);
94 
95 
96  std::ostream& operator<<(std::ostream& out, const Frequency& rhs);
97 
98 } // namespace armarx::core::time
99 
100 namespace armarx
101 {
102  using core::time::Frequency;
103 } // namespace armarx
armarx::core::time::Frequency::operator!=
bool operator!=(const Frequency &rhs) const
Definition: Frequency.cpp:205
armarx::core::time::Frequency::operator>=
bool operator>=(const Frequency &rhs) const
Definition: Frequency.cpp:211
Duration.h
armarx::core::time
Definition: Clock.cpp:13
armarx::core::time::Frequency
Represents a frequency.
Definition: Frequency.h:16
armarx::core::time::Frequency::operator<
bool operator<(const Frequency &rhs) const
Definition: Frequency.cpp:187
armarx::core::time::Frequency::operator/
double operator/(const Frequency &rhs) const
Definition: Frequency.cpp:142
armarx::core::time::operator<<
std::ostream & operator<<(std::ostream &out, const DateTime &rhs)
Definition: DateTime.cpp:203
armarx::core::time::Frequency::_cycleDuration
Duration _cycleDuration
Current cycle duration.
Definition: Frequency.h:86
armarx::core::time::Frequency::operator>
bool operator>(const Frequency &rhs) const
Definition: Frequency.cpp:217
armarx::core::time::Frequency::toCycleDuration
Duration toCycleDuration() const
Definition: Frequency.cpp:60
armarx::core::time::Frequency::Frequency
Frequency(const Duration &cycleDuration)
Definition: Frequency.cpp:14
armarx::core::time::Frequency::operator<=
bool operator<=(const Frequency &rhs) const
Definition: Frequency.cpp:193
armarx::core::time::Frequency::HertzDouble
static Frequency HertzDouble(double hertz)
Definition: Frequency.cpp:30
armarx::core::time::Frequency::operator==
bool operator==(const Frequency &rhs) const
Definition: Frequency.cpp:199
armarx::core::time::Frequency::operator+=
Frequency & operator+=(const Frequency &rhs)
Definition: Frequency.cpp:83
armarx::core::time::Frequency::operator+
Frequency operator+(const Frequency &rhs) const
Definition: Frequency.cpp:77
armarx::core::time::Frequency::operator-
Frequency operator-(const Frequency &rhs) const
Definition: Frequency.cpp:90
armarx::core::time::Frequency::toHertz
std::int64_t toHertz() const
Definition: Frequency.cpp:40
armarx::core::time::Frequency::operator-=
Frequency & operator-=(const Frequency &rhs)
Definition: Frequency.cpp:96
armarx::core::time::Frequency::operator*
Frequency operator*(double rhs) const
Definition: Frequency.cpp:103
armarx::core::time::Duration
Represents a duration.
Definition: Duration.h:16
armarx::core::time::Frequency::Hertz
static Frequency Hertz(std::int64_t hertz)
Definition: Frequency.cpp:20
armarx::core::time::Frequency::operator*=
Frequency & operator*=(double rhs)
Definition: Frequency.cpp:121
armarx::core::time::Frequency::toHertzDouble
double toHertzDouble() const
Definition: Frequency.cpp:50
armarx::core::time::Frequency::toFrequencyString
std::string toFrequencyString() const
Definition: Frequency.cpp:66
armarx::core::time::Frequency::operator/=
Frequency & operator/=(double rhs)
Definition: Frequency.cpp:166
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:27
armarx::core::time::operator/
Frequency operator/(const double cyclesPerDuration, const Duration &duration)
Definition: Frequency.cpp:223