PLCnext API Documentation 25.0.2.69
Duration.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/System/Commons/Chrono/DurationUnit.hpp"
9#include <chrono>
10#include <iostream>
11
12namespace Arp { namespace System { namespace Commons { namespace Chrono
13{
14
16{
17public: // usings
18 using Ticks = std::chrono::microseconds;
19
20public: // construction/destruction
22 Duration(int64 factor = 0, DurationUnit unit = DurationUnit::None);
24 Duration(const Duration& arg) = default;
26 Duration& operator=(const Duration& arg) = default;
28 ~Duration(void) = default;
29
30public: // static properties
31 static const Ticks Tick;
32
33public: // static operations
34 static Duration Parse(const char* input);
35 static bool TryParse(const char* input, Duration& result);
36
37public: // setter/getter operations
38 int64 GetFactor(void)const;
39 DurationUnit GetUnit(void)const;
40 int64 GetMicroseconds(void)const;
41
42public: // operations
43 Nanoseconds ToNanoseconds(void)const;
44 Microseconds ToMicroseconds(void)const;
45 Milliseconds ToMilliseconds(void)const;
46 Seconds ToSeconds(void)const;
47 Minutes ToMinutes(void)const;
48 Hours ToHours(void)const;
49 Ticks ToTicks(void)const;
50 String ToString(void)const;
51
52 void GetDuration(Nanoseconds& value)const;
53 void GetDuration(Microseconds& value)const;
54 void GetDuration(Milliseconds& value)const;
55 void GetDuration(Seconds& value)const;
56 void GetDuration(Minutes& value)const;
57 void GetDuration(Hours& value)const;
58
59protected: // operations
60
61private: // static methods
62
63private: // methods
64 Nanoseconds GetNanoseconds(void)const;
65
66private: // fields
67 int64 factor;
68 DurationUnit unit;
69};
70
71std::ostream& operator<<(std::ostream& os, const Duration& value);
72
73}}}} // end of namesapce Arp::System::Commons::Chrono
This class represents the Arp String. The implementation is based on std::string.
Definition: String.hpp:39
Definition: Duration.hpp:16
~Duration(void)=default
Destructs this instance and frees all resources.
Duration & operator=(const Duration &arg)=default
Assignment operator.
Duration(int64 factor=0, DurationUnit unit=DurationUnit::None)
Constructs an Duration instance.
Definition: Duration.cpp:57
Duration(const Duration &arg)=default
Copy contructor.
std::int64_t int64
The Arp integer type of 8 byte size.
Definition: PrimitiveTypes.hpp:39
Root namespace for the PLCnext API