time.cpp
Go to the documentation of this file.
1#include "time.h"
2
3#include <IceUtil/Time.h>
4
6
7#include <RobotAPI/libraries/aron/common/aron/time.aron.generated.h>
8
9void
10IceUtil::fromAron(const long& dto, IceUtil::Time& bo)
11{
12 bo = IceUtil::Time::microSeconds(dto);
13}
14
15void
16IceUtil::toAron(long& dto, const IceUtil::Time& bo)
17{
18 dto = bo.toMicroSeconds();
19}
20
21void
22IceUtil::fromAron(const IceUtil::Time& dto, armarx::DateTime& bo)
23{
24 fromIce(dto, bo);
25}
26
27void
28IceUtil::toAron(IceUtil::Time& dto, const armarx::DateTime& bo)
29{
30 toIce(dto, bo);
31}
32
33void
34armarx::aron::time::fromAron(const arondto::ClockType& dto, armarx::ClockType& bo)
35{
36 switch (dto.value)
37 {
38 case arondto::ClockType::Realtime:
39 bo = ClockType::Realtime;
40 break;
41 case arondto::ClockType::Monotonic:
42 bo = ClockType::Monotonic;
43 break;
44 case arondto::ClockType::Virtual:
45 bo = ClockType::Virtual;
46 break;
47 case arondto::ClockType::Unknown:
48 bo = ClockType::Unknown;
49 break;
50 }
51}
52
53void
54armarx::aron::time::toAron(arondto::ClockType& dto, const armarx::ClockType& bo)
55{
56 switch (bo)
57 {
58 case ClockType::Realtime:
59 dto = arondto::ClockType::Realtime;
60 break;
61 case ClockType::Monotonic:
62 dto = arondto::ClockType::Monotonic;
63 break;
64 case ClockType::Virtual:
65 dto = arondto::ClockType::Virtual;
66 break;
67 case ClockType::Unknown:
68 dto = arondto::ClockType::Unknown;
69 break;
70 }
71}
72
73void
74armarx::aron::time::fromAron(const arondto::Duration& dto, armarx::Duration& bo)
75{
76 bo = Duration::MicroSeconds(dto.microSeconds);
77}
78
79void
80armarx::aron::time::toAron(arondto::Duration& dto, const armarx::Duration& bo)
81{
82 dto.microSeconds = bo.toMicroSeconds();
83}
84
85void
86armarx::aron::time::fromAron(const arondto::Frequency& dto, armarx::Frequency& bo)
87{
88 Duration cycleDuration;
89 fromAron(dto.cycleDuration, cycleDuration);
90
91 bo = Frequency(cycleDuration);
92}
93
94void
95armarx::aron::time::toAron(arondto::Frequency& dto, const armarx::Frequency& bo)
96{
97 toAron(dto.cycleDuration, bo.toCycleDuration());
98}
99
100void
101armarx::aron::time::fromAron(const arondto::DateTime& dto, armarx::DateTime& bo)
102{
103 ClockType clockType;
104 fromAron(dto.clockType, clockType);
105
106 Duration timeSinceEpoch;
107 fromAron(dto.timeSinceEpoch, timeSinceEpoch);
108
109 bo = DateTime(timeSinceEpoch, clockType, dto.hostname);
110}
111
112void
113armarx::aron::time::toAron(arondto::DateTime& dto, const armarx::DateTime& bo)
114{
115 toAron(dto.clockType, bo.clockType());
116 toAron(dto.timeSinceEpoch, bo.toDurationSinceEpoch());
117 dto.hostname = bo.hostname();
118}
static Duration MicroSeconds(std::int64_t microSeconds)
Constructs a duration in microseconds.
Definition Duration.cpp:24
Represents a point in time.
Definition DateTime.h:25
std::string hostname() const
Definition DateTime.cpp:117
Duration toDurationSinceEpoch() const
Definition DateTime.cpp:105
ClockType clockType() const
Definition DateTime.cpp:111
Represents a duration.
Definition Duration.h:17
std::int64_t toMicroSeconds() const
Returns the amount of microseconds.
Definition Duration.cpp:36
Represents a frequency.
Definition Frequency.h:17
Duration toCycleDuration() const
Definition Frequency.cpp:60
void fromAron(const long &dto, IceUtil::Time &bo)
Definition time.cpp:10
void toAron(long &dto, const IceUtil::Time &bo)
Definition time.cpp:16
void fromAron(const arondto::ClockType &dto, ClockType &bo)
Definition time.cpp:34
void toAron(arondto::ClockType &dto, const ClockType &bo)
Definition time.cpp:54
ClockType
Describes the type of clock.
Definition ClockType.h:10