Since time is continuous, it may be difficult to know the exact time stamp of a desired message. The QualifiedTime class provides a way to tailor how a time stamp is interpreted by the message query. More...
#include <QualifiedTime.hh>
Public Types | |
enum class | Qualifier : int64_t { INCLUSIVE = 0 , EXCLUSIVE } |
The Qualifier determines the behavior of how a message is selected. More... | |
using | Time = std::chrono::nanoseconds |
Convenient typedef for our time representation. Note that any std::chrono::duration type can be implicitly converted to this type. E.g. you can pass a. More... | |
Public Member Functions | |
QualifiedTime () | |
Default constructor. The time will be treated as indeterminate. This means that the QualifiedTime object will be taken to indicate that no time has been specified at all. More... | |
QualifiedTime (const QualifiedTime &_other) | |
Copy constructor. More... | |
template<typename Rep , typename Period > | |
QualifiedTime (const std::chrono::duration< Rep, Period > &_time, Qualifier _qualifier=Qualifier::INCLUSIVE) | |
Construct a qualified time specifier. This allows implicit conversion from any std::chrono::duration type. More... | |
QualifiedTime (const Time &_time, Qualifier _qualifier=Qualifier::INCLUSIVE) | |
Construct a qualified time specifier. More... | |
QualifiedTime (QualifiedTime &&_old)=default | |
move constructor More... | |
~QualifiedTime () | |
Destructor. More... | |
void | Clear () |
Set this QualifiedTime object to be indeterminate. More... | |
const Qualifier * | GetQualifier () const |
Get the qualifier for this qualified time, unless the time is indeterminate. More... | |
const Time * | GetTime () const |
Get the time stamp for this qualified time, unless the time is indeterminate. More... | |
bool | IsIndeterminate () const |
Indicates whether this QualifiedTime object is indeterminate. More... | |
bool | operator!= (const QualifiedTime &_other) const |
Inequality operator. More... | |
QualifiedTime & | operator= (const QualifiedTime &_other) |
Copy assignment operator. More... | |
QualifiedTime & | operator= (QualifiedTime &&)=default |
move assignment operator More... | |
bool | operator== (const QualifiedTime &_other) const |
Equality operator. More... | |
void | SetTime (const Time &_time, Qualifier _qualifier=Qualifier::INCLUSIVE) |
Set the time that this QualifiedTime object represents. More... | |
Detailed Description
Since time is continuous, it may be difficult to know the exact time stamp of a desired message. The QualifiedTime class provides a way to tailor how a time stamp is interpreted by the message query.
Note that the value of this time object may be interpreted as a relative time or as an absolute time stamp depending on the context in which it gets used.
Member Typedef Documentation
◆ Time
using Time = std::chrono::nanoseconds |
Convenient typedef for our time representation. Note that any std::chrono::duration type can be implicitly converted to this type. E.g. you can pass a.
into any function that accepts this Time type.
Member Enumeration Documentation
◆ Qualifier
|
strong |
The Qualifier determines the behavior of how a message is selected.
Enumerator | |
---|---|
INCLUSIVE | This point in time should be seen as a closed (inclusive) time marker. When used in a QualifiedTimeRange, the range will include this exact point in time. |
EXCLUSIVE | This point in time should be seen as an open (exclusive) time marker. When used in a QualifiedTimeRange, the range will NOT include this exact point in time, but it will include everything leading up to it. |
Constructor & Destructor Documentation
◆ QualifiedTime() [1/5]
QualifiedTime | ( | const Time & | _time, |
Qualifier | _qualifier = Qualifier::INCLUSIVE |
||
) |
Construct a qualified time specifier.
- Parameters
-
[in] _time The time stamp that is used as the focal point of this qualified time. [in] _qualifier The qualifier that determines the exact interpretation of the _time value.
◆ QualifiedTime() [2/5]
|
inline |
Construct a qualified time specifier. This allows implicit conversion from any std::chrono::duration type.
- Parameters
-
[in] _time The time stamp that is used as the focal point of this qualified time. [in] _qualifier The qualifier that determines the exact interpretation of the _time value.
◆ QualifiedTime() [3/5]
QualifiedTime | ( | ) |
Default constructor. The time will be treated as indeterminate. This means that the QualifiedTime object will be taken to indicate that no time has been specified at all.
- See also
- IsIndeterminate()
◆ QualifiedTime() [4/5]
QualifiedTime | ( | const QualifiedTime & | _other | ) |
Copy constructor.
- Parameters
-
[in] _other Another QualifiedTime
◆ QualifiedTime() [5/5]
|
default |
move constructor
- Parameters
-
[in] _old the instance being moved into this one
◆ ~QualifiedTime()
~QualifiedTime | ( | ) |
Destructor.
Member Function Documentation
◆ Clear()
void Clear | ( | ) |
Set this QualifiedTime object to be indeterminate.
- See also
- IsIndeterminate()
◆ GetQualifier()
const Qualifier* GetQualifier | ( | ) | const |
Get the qualifier for this qualified time, unless the time is indeterminate.
- Returns
- A pointer to the qualifier that is specified by this QualifiedTime object, or a nullptr if this QualifiedTime is indeterminate.
◆ GetTime()
const Time* GetTime | ( | ) | const |
Get the time stamp for this qualified time, unless the time is indeterminate.
- Returns
- A pointer to the time value that is specified by this QualifiedTime object, or a nullptr if this QualifiedTime is indeterminate.
◆ IsIndeterminate()
bool IsIndeterminate | ( | ) | const |
Indicates whether this QualifiedTime object is indeterminate.
When an indeterminate time is used as the end of a range, it implies that the range should go on endlessly. When used as the beginning of a range, it means that the range should extend as far into the past as possible.
- Returns
- true if this QualifiedTime is indeterminate, or false if it does have a determined time.
◆ operator!=()
bool operator!= | ( | const QualifiedTime & | _other | ) | const |
Inequality operator.
- Parameters
-
[in] _other Another QualifiedTime
- Returns
- Opposite value of operator==(const QualifiedTime &)
◆ operator=() [1/2]
QualifiedTime& operator= | ( | const QualifiedTime & | _other | ) |
Copy assignment operator.
- Parameters
-
[in] _other Another QualifiedTime
- Returns
- Reference to this object
◆ operator=() [2/2]
|
default |
move assignment operator
- Returns
- Reference to this object
◆ operator==()
bool operator== | ( | const QualifiedTime & | _other | ) | const |
Equality operator.
- Parameters
-
[in] _other Another QualifiedTime
- Returns
- True if the times are equal. When either time is indeterminate, this will always return false, similar to the behavior of NaN comparisons.
◆ SetTime()
void SetTime | ( | const Time & | _time, |
Qualifier | _qualifier = Qualifier::INCLUSIVE |
||
) |
Set the time that this QualifiedTime object represents.
- Parameters
-
[in] _time The time stamp that is used as the focal point of this qualified time. [in] _qualifier The qualifier that determines the exact interpretation of the _time value.
The documentation for this class was generated from the following file: