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
10namespace armarx::core::time
11{
12
13 /**
14 * @brief Represents a frequency.
15 */
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
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
100namespace armarx
101{
103} // namespace armarx
Represents a duration.
Definition Duration.h:17
Represents a frequency.
Definition Frequency.h:17
Duration toCycleDuration() const
Definition Frequency.cpp:60
bool operator>(const Frequency &rhs) const
bool operator!=(const Frequency &rhs) const
Frequency & operator-=(const Frequency &rhs)
Definition Frequency.cpp:96
Frequency & operator*=(double rhs)
Duration _cycleDuration
Current cycle duration.
Definition Frequency.h:86
bool operator<(const Frequency &rhs) const
std::string toFrequencyString() const
Definition Frequency.cpp:66
Frequency operator-(const Frequency &rhs) const
Definition Frequency.cpp:90
static Frequency HertzDouble(double hertz)
Definition Frequency.cpp:30
static Frequency Hertz(std::int64_t hertz)
Definition Frequency.cpp:20
bool operator>=(const Frequency &rhs) const
std::int64_t toHertz() const
Definition Frequency.cpp:40
Frequency & operator+=(const Frequency &rhs)
Definition Frequency.cpp:83
bool operator<=(const Frequency &rhs) const
bool operator==(const Frequency &rhs) const
Frequency operator*(double rhs) const
Frequency & operator/=(double rhs)
Frequency operator+(const Frequency &rhs) const
Definition Frequency.cpp:77
Frequency(const Duration &cycleDuration)
Definition Frequency.cpp:14
double operator/(const Frequency &rhs) const
std::ostream & operator<<(std::ostream &out, const DateTime &rhs)
Definition DateTime.cpp:203
Frequency operator/(const double cyclesPerDuration, const Duration &duration)
This file offers overloads of toIce() and fromIce() functions for STL container types.