8#include "Arp/System/Commons/Chrono/DurationUnit.hpp"
12namespace Arp {
namespace System {
namespace Commons {
namespace Chrono
18 typedef std::chrono::microseconds Ticks;
22 Duration(
int factor = 0, DurationUnit unit = DurationUnit::None);
31 static const Ticks Tick;
34 static Duration Parse(
const char* input);
35 static bool TryParse(
const char* input,
Duration& result);
38 int64 GetFactor(
void)
const;
39 DurationUnit GetUnit(
void)
const;
40 int64 GetMicroseconds(
void)
const;
48 Hours ToHours(
void)
const;
49 Ticks ToTicks(
void)
const;
50 String ToString(
void)
const;
55 void GetDuration(
Seconds& value)
const;
56 void GetDuration(
Minutes& value)
const;
57 void GetDuration(
Hours& value)
const;
81inline int64 Duration::GetFactor()
const
86inline DurationUnit Duration::GetUnit()
const
93 return std::chrono::duration_cast<Nanoseconds>(this->ToMicroseconds());
101inline Milliseconds Duration::ToMilliseconds()
const
103 return std::chrono::duration_cast<Milliseconds>(this->ToMicroseconds());
106inline Seconds Duration::ToSeconds()
const
108 return std::chrono::duration_cast<Seconds>(this->ToMicroseconds());
111inline Minutes Duration::ToMinutes()
const
113 return std::chrono::duration_cast<Minutes>(this->ToMicroseconds());
116inline Hours Duration::ToHours()
const
118 return std::chrono::duration_cast<Hours>(this->ToMicroseconds());
121inline Duration::Ticks Duration::ToTicks()
const
123 std::chrono::microseconds microSeconds(this->GetMicroseconds());
124 return std::chrono::duration_cast<Ticks>(this->ToMicroseconds());
127std::ostream& operator<<(std::ostream& os,
const Duration& value);
128std::ostream& operator<<(std::ostream& os,
const Duration::Ticks& value);
Definition: Duration.hpp:16
~Duration(void)=default
Destructs this instance and frees all resources.
Duration & operator=(const Duration &arg)=default
Assignment operator.
Duration(int factor=0, DurationUnit unit=DurationUnit::None)
Constructs an Duration instance.
Definition: Duration.hpp:75
Duration(const Duration &arg)=default
Copy contructor.
std::chrono::seconds Seconds
The Arp Seconds unit class.
Definition: TypeSystem.h:55
std::chrono::hours Hours
The Arp Hours unit class.
Definition: TypeSystem.h:61
std::chrono::milliseconds Milliseconds
The Arp Milliseconds unit class.
Definition: TypeSystem.h:52
std::chrono::microseconds Microseconds
The Arp Microseconds unit class.
Definition: TypeSystem.h:49
std::chrono::minutes Minutes
The Arp Minutes unit class.
Definition: TypeSystem.h:58
std::chrono::nanoseconds Nanoseconds
The Arp Nanoseconds unit class.
Definition: TypeSystem.h:46
std::int64_t int64
The Arp integer type of 8 byte size.
Definition: PrimitiveTypes.hpp:42
Nanoseconds Duration
Represents a duration in arbitary units like ns, ms, s and more. The duration unit might not be ommit...
Definition: TypeSystem.h:68
Root namespace for the PLCnext API