6#include <yaml-cpp/yaml.h>
15 Automatic, Milliseconds, Seconds, Minutes
20 constexpr explicit Interval(
unsigned long long ms)
36 : _duration(other._duration)
42 _duration = other._duration;
return *
this;
45 inline bool isNull()
const {
return 0 == _duration; }
48 return std::numeric_limits<unsigned long long>::max() == _duration;
54 return _duration == other._duration;
57 return _duration < other._duration;
60 return _duration <= other._duration;
63 return _duration > other._duration;
66 return _duration >= other._duration;
69 inline unsigned long long milliseconds()
const {
return _duration; }
70 inline unsigned long long seconds()
const {
return _duration/1000ULL; }
71 inline unsigned long long minutes()
const {
return _duration/60000ULL; }
86 bool parse(
const QString &value,
Format defaultFormat=Format::Milliseconds);
93 return Interval(std::numeric_limits<unsigned long long>::max());
98 unsigned long long _duration;
112 return Node(rhs.
format().toStdString());
117 if (!node.IsScalar())
119 return rhs.
parse(QString::fromStdString(node.as<std::string>()));
Represents a time interval.
Definition interval.hh:11
constexpr Interval(const Interval &other)
Copy constructor.
Definition interval.hh:35
bool isInfinite() const
Test for infinite durations.
Definition interval.hh:47
unsigned long long milliseconds() const
Unit conversion.
Definition interval.hh:69
unsigned long long minutes() const
Unit conversion.
Definition interval.hh:71
static Interval infinity()
Constructs an infinite interval.
Definition interval.hh:92
bool isFinite() const
Test for finite values.
Definition interval.hh:51
Format
Possible formats.
Definition interval.hh:14
Interval & operator=(const Interval &other)
Definition interval.hh:41
bool operator>=(const Interval &other) const
Definition interval.hh:65
bool operator<(const Interval &other) const
Definition interval.hh:56
QString format(Format f=Format::Automatic) const
Format the frequency.
Definition interval.cc:5
bool operator>(const Interval &other) const
Definition interval.hh:62
static constexpr Interval fromMinutes(unsigned long long min)
Definition interval.hh:79
static constexpr Interval fromSeconds(unsigned long long s)
Definition interval.hh:76
bool operator<=(const Interval &other) const
Definition interval.hh:59
static Interval null()
Constructs a null interval.
Definition interval.hh:90
bool operator==(const Interval &other) const
Definition interval.hh:53
Interval()
Default constructor.
Definition interval.hh:28
unsigned long long seconds() const
Unit conversion.
Definition interval.hh:70
constexpr Interval(unsigned long long ms)
Constructor from milliseconds.
Definition interval.hh:20
bool parse(const QString &value, Format defaultFormat=Format::Milliseconds)
Parses a frequency.
Definition interval.cc:31
static constexpr Interval fromMilliseconds(unsigned long long ms)
Definition interval.hh:73
bool isNull() const
Test for 0.
Definition interval.hh:45
static bool decode(const Node &node, Interval &rhs)
Parses the interval.
Definition interval.hh:116
static Node encode(const Interval &rhs)
Serializes the interval.
Definition interval.hh:111