8 #include "Arp/System/Commons/Chrono/DurationUnit.hpp" 12 namespace Arp {
namespace System {
namespace Commons {
namespace Chrono
20 typedef std::chrono::microseconds Ticks;
24 Duration(
int factor = 0, DurationUnit unit = DurationUnit::None);
33 static const Ticks Tick;
36 static Duration Parse(
const char* input);
37 static bool TryParse(
const char* input,
Duration& result);
40 int64 GetFactor(
void)
const;
41 DurationUnit GetUnit(
void)
const;
42 int64 GetMicroseconds(
void)
const;
50 Hours ToHours(
void)
const;
51 Ticks ToTicks(
void)
const;
52 String ToString(
void)
const;
57 void GetDuration(
Seconds& value)
const;
58 void GetDuration(
Minutes& value)
const;
59 void GetDuration(
Hours& value)
const;
83 inline int64 Duration::GetFactor()
const 88 inline DurationUnit Duration::GetUnit()
const 95 return duration_cast<
Nanoseconds>(this->ToMicroseconds());
105 return duration_cast<
Milliseconds>(this->ToMicroseconds());
108 inline Seconds Duration::ToSeconds()
const 110 return duration_cast<
Seconds>(this->ToMicroseconds());
113 inline Minutes Duration::ToMinutes()
const 115 return duration_cast<
Minutes>(this->ToMicroseconds());
118 inline Hours Duration::ToHours()
const 120 return duration_cast<
Hours>(this->ToMicroseconds());
123 inline Duration::Ticks Duration::ToTicks()
const 125 std::chrono::microseconds microSeconds(this->GetMicroseconds());
126 return duration_cast<Ticks>(this->ToMicroseconds());
129 inline std::ostream& operator<<(std::ostream& os,
const Duration& value)
135 inline std::ostream& operator<<(std::ostream& os,
const Duration::Ticks& value)
137 os << value.count() <<
"us";
std::chrono::milliseconds Milliseconds
The Arp Milliseconds unit class.
Definition: TypeSystem.h:36
Duration(int factor=0, DurationUnit unit=DurationUnit::None)
Constructs an Duration instance.
Definition: Duration.hpp:77
std::chrono::minutes Minutes
The Arp Minutes unit class.
Definition: TypeSystem.h:40
std::chrono::microseconds Microseconds
The Arp Microseconds unit class.
Definition: TypeSystem.h:34
Adapter class for enums to make them loggable and parsable from e.g. XML files.
Definition: Enum.hxx:23
std::chrono::nanoseconds Nanoseconds
The Arp Nanoseconds unit class.
Definition: TypeSystem.h:32
Definition: Duration.hpp:17
Root namespace for the PLCnext API
std::chrono::hours Hours
The Arp Hours unit class.
Definition: TypeSystem.h:42
System components used by the System, Device, Plc or Io domains.
std::chrono::seconds Seconds
The Arp Seconds unit class.
Definition: TypeSystem.h:38
std::int64_t int64
The Arp integer type of 8 byte size.
Definition: PrimitiveTypes.hpp:41