DateTime.cpp
Go to the documentation of this file.
1 #include "DateTime.h"
2 
3 #include <limits>
4 
5 #include <IceUtil/Time.h>
6 
8 
9 #include "ice_conversions.h"
10 
11 namespace armarx::core::time
12 {
13 
16 
17  DateTime::DateTime() : _timeSinceEpoch{}, _clockType{ClockType::Unknown}, _hostname{"unknown"}
18  {
19  ;
20  }
21 
22  DateTime::DateTime(Duration timeSinceEpoch, ClockType clock, const std::string& hostname) :
23  _timeSinceEpoch{timeSinceEpoch}, _clockType{clock}, _hostname{hostname}
24  {
25  ;
26  }
27 
28  DateTime::DateTime(std::int64_t microSecondsSinceEpoch,
29  ClockType clock,
30  const std::string& hostname) :
31  _timeSinceEpoch{Duration::MicroSeconds(microSecondsSinceEpoch)},
32  _clockType{clock},
33  _hostname{hostname}
34  {
35  ;
36  }
37 
39  {
40  fromIce(ice, *this);
41  }
42 
43  DateTime::operator IceUtil::Time() const
44  {
45  IceUtil::Time ice;
46  toIce(ice, *this);
47  return ice;
48  }
49 
50  DateTime
52  {
53  return Clock::Now();
54  }
55 
56  DateTime
58  {
60  }
61 
62  std::string
64  {
65  return toString("%Y-%m-%d");
66  }
67 
68  std::string
70  {
71  return toString("%H-%M-%S.%%usec");
72  }
73 
74  std::string
76  {
77  return toDateString() + "_" + toTimeString();
78  }
79 
80  std::string
81  DateTime::toString(const std::string& format) const
82  {
83  return _timeSinceEpoch.toDurationString(format);
84  }
85 
86  std::int64_t
88  {
90  }
91 
92  std::int64_t
94  {
96  }
97 
98  std::int64_t
100  {
101  return _timeSinceEpoch.toSeconds();
102  }
103 
104  Duration
106  {
107  return _timeSinceEpoch;
108  }
109 
110  ClockType
112  {
113  return _clockType;
114  }
115 
116  std::string
118  {
119  return _hostname;
120  }
121 
122  bool
124  {
126  }
127 
128  bool
130  {
131  return not isValid();
132  }
133 
134  DateTime
135  DateTime::operator+(const Duration& rhs) const
136  {
138  }
139 
140  DateTime&
142  {
143  _timeSinceEpoch += rhs;
144  return *this;
145  }
146 
147  DateTime
148  DateTime::operator-(const Duration& rhs) const
149  {
151  }
152 
153  DateTime&
155  {
156  _timeSinceEpoch -= rhs;
157  return *this;
158  }
159 
160  Duration
161  DateTime::operator-(const DateTime& rhs) const
162  {
163  return _timeSinceEpoch - rhs.toDurationSinceEpoch();
164  }
165 
166  bool
167  DateTime::operator<(const DateTime& rhs) const
168  {
169  return _timeSinceEpoch < rhs.toDurationSinceEpoch();
170  }
171 
172  bool
173  DateTime::operator<=(const DateTime& rhs) const
174  {
175  return _timeSinceEpoch <= rhs.toDurationSinceEpoch();
176  }
177 
178  bool
179  DateTime::operator==(const DateTime& rhs) const
180  {
181  return _timeSinceEpoch == rhs.toDurationSinceEpoch();
182  }
183 
184  bool
185  DateTime::operator>(const DateTime& rhs) const
186  {
187  return _timeSinceEpoch > rhs.toDurationSinceEpoch();
188  }
189 
190  bool
191  DateTime::operator>=(const DateTime& rhs) const
192  {
193  return _timeSinceEpoch >= rhs.toDurationSinceEpoch();
194  }
195 
196  bool
197  DateTime::operator!=(const DateTime& rhs) const
198  {
199  return _timeSinceEpoch != rhs.toDurationSinceEpoch();
200  }
201 
202  std::ostream&
203  operator<<(std::ostream& out, const DateTime& rhs)
204  {
205  out << rhs.toDateTimeString();
206  return out;
207  }
208 
209 } // namespace armarx::core::time
armarx::core::time::DateTime::isValid
bool isValid() const
Definition: DateTime.cpp:123
armarx::core::time::DateTime::operator<
bool operator<(const DateTime &rhs) const
Definition: DateTime.cpp:167
armarx::core::time::DateTime::isInvalid
bool isInvalid() const
Definition: DateTime.cpp:129
armarx::core::time::DateTime::toDateString
std::string toDateString() const
Definition: DateTime.cpp:63
armarx::core::time::fromIce
void fromIce(const dto::ClockType::ClockTypeEnum &dto, ClockType &bo)
Definition: ice_conversions.cpp:11
armarx::core::time::DateTime::toDurationSinceEpoch
Duration toDurationSinceEpoch() const
Definition: DateTime.cpp:105
armarx::core::time::DateTime::Now
static DateTime Now()
Definition: DateTime.cpp:51
armarx::core::time::DateTime::clockType
ClockType clockType() const
Definition: DateTime.cpp:111
DateTime.h
armarx::core::time::toIce
void toIce(dto::ClockType::ClockTypeEnum &dto, const ClockType &bo)
Definition: ice_conversions.cpp:31
armarx::core::time::DateTime::operator==
bool operator==(const DateTime &rhs) const
Definition: DateTime.cpp:179
armarx::core::time
Definition: Clock.cpp:13
armarx::core::time::DateTime::toSecondsSinceEpoch
std::int64_t toSecondsSinceEpoch() const
Definition: DateTime.cpp:99
armarx::core::time::DateTime::operator+
DateTime operator+(const Duration &rhs) const
Definition: DateTime.cpp:135
ice_conversions.h
armarx::core::time::operator<<
std::ostream & operator<<(std::ostream &out, const DateTime &rhs)
Definition: DateTime.cpp:203
armarx::core::time::DateTime::operator-=
DateTime & operator-=(const Duration &rhs)
Definition: DateTime.cpp:154
armarx::core::time::DateTime::DateTime
DateTime()
Definition: DateTime.cpp:17
Clock.h
armarx::core::time::DateTime::operator>=
bool operator>=(const DateTime &rhs) const
Definition: DateTime.cpp:191
armarx::core::time::DateTime::operator<=
bool operator<=(const DateTime &rhs) const
Definition: DateTime.cpp:173
armarx::core::time::ClockType
ClockType
Describes the type of clock.
Definition: ClockType.h:9
armarx::core::time::DateTime::_hostname
std::string _hostname
Definition: DateTime.h:137
armarx::core::time::ClockType::Unknown
@ Unknown
Unknown source of time.
armarx::core::time::DateTime::_timeSinceEpoch
Duration _timeSinceEpoch
Definition: DateTime.h:133
armarx::core::time::DateTime::operator>
bool operator>(const DateTime &rhs) const
Definition: DateTime.cpp:185
armarx::core::time::DateTime::toMicroSecondsSinceEpoch
std::int64_t toMicroSecondsSinceEpoch() const
Definition: DateTime.cpp:87
armarx::armem::Time
armarx::core::time::DateTime Time
Definition: forward_declarations.h:13
armarx::core::time::DateTime::toMilliSecondsSinceEpoch
std::int64_t toMilliSecondsSinceEpoch() const
Definition: DateTime.cpp:93
armarx::core::time::DateTime::operator-
DateTime operator-(const Duration &rhs) const
Definition: DateTime.cpp:148
armarx::core::time::DateTime
Represents a point in time.
Definition: DateTime.h:24
armarx::core::time::DateTime::toString
std::string toString(const std::string &format) const
String representation of current date time according to given format string.
Definition: DateTime.cpp:81
armarx::core::time::DateTime::hostname
std::string hostname() const
Definition: DateTime.cpp:117
armarx::core::time::DateTime::toTimeString
std::string toTimeString() const
Definition: DateTime.cpp:69
armarx::core::time::Duration
Represents a duration.
Definition: Duration.h:16
armarx::core::time::DateTime::operator!=
bool operator!=(const DateTime &rhs) const
Definition: DateTime.cpp:197
armarx::core::time::Duration::toDurationString
std::string toDurationString() const
String representation of the current duration in minimal/default format.
Definition: Duration.cpp:180
armarx::core::time::Clock::Now
static DateTime Now()
Current time on the virtual clock.
Definition: Clock.cpp:93
armarx::core::time::DateTime::_clockType
ClockType _clockType
Definition: DateTime.h:135
armarx::core::time::Duration::toMilliSeconds
std::int64_t toMilliSeconds() const
Returns the amount of milliseconds.
Definition: Duration.cpp:60
armarx::core::time::Duration::toMicroSeconds
std::int64_t toMicroSeconds() const
Returns the amount of microseconds.
Definition: Duration.cpp:36
min
T min(T t1, T t2)
Definition: gdiam.h:44
armarx::core::time::Duration::MicroSeconds
static Duration MicroSeconds(std::int64_t microSeconds)
Constructs a duration in microseconds.
Definition: Duration.cpp:24
armarx::core::time::DateTime::_invalidTimeSinceEpoch
static const Duration _invalidTimeSinceEpoch
Definition: DateTime.h:131
armarx::core::time::Duration::toSeconds
std::int64_t toSeconds() const
Returns the amount of seconds.
Definition: Duration.cpp:84
armarx::armem::Duration
armarx::core::time::Duration Duration
Definition: forward_declarations.h:14
armarx::core::time::DateTime::Invalid
static DateTime Invalid()
Definition: DateTime.cpp:57
armarx::core::time::DateTime::toDateTimeString
std::string toDateTimeString() const
Definition: DateTime.cpp:75
armarx::core::time::DateTime::operator+=
DateTime & operator+=(const Duration &rhs)
Definition: DateTime.cpp:141