swift
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
swift::misc::ITimestampWithOffsetObjectList< OBJ, CONTAINER > Class Template Reference

List of objects with timestamp and offset. Such objects should implement. More...

Inheritance diagram for swift::misc::ITimestampWithOffsetObjectList< OBJ, CONTAINER >:
[legend]

Public Types

enum  HintAdjustedTimestampSort { NoAdjustedTimestampSortHint , AdjustedTimestampLatestFirst }
 Hint if the list is sorted.
 
- Public Types inherited from swift::misc::ITimestampObjectList< OBJ, CONTAINER >
enum  HintTimestampSort { NoTimestampSortHint , TimestampLatestFirst , TimestampLatestLast }
 Hint if the list is sorted.
 

Public Member Functions

void sortAdjustedLatestFirst ()
 Sort by adjusted timestamp.
 
CONTAINER getSortedAdjustedLatestFirst () const
 As sorted copy.
 
CONTAINER getLatestAdjustedTwoObjects (bool alreadySortedLatestFirst=false) const
 Get the latest 2 values.
 
void sortAdjustedOldestFirst ()
 Sort by adjusted timestamp.
 
bool containsZeroOrNegativeOffsetTime () const
 Any negative or zero offset time?
 
bool containsNegativeOffsetTime () const
 Any negative offset time?
 
void addMsecsToOffset (qint64 msToAdd)
 Adds a time to all offset values.
 
void push_frontKeepLatestAdjustedFirst (const OBJ &value, bool replaceSameTimestamp=true, int maxElements=-1)
 Insert as first element by keeping maxElements and the latest first.
 
void push_frontKeepLatestFirstAdjustOffset (const OBJ &value, bool replaceSameTimestamp=true, int maxElements=-1)
 Insert as first element by keeping maxElements and the latest first. More...
 
void push_frontKeepLatestFirstIgnoreOverlapping (const OBJ &value, bool replaceSameTimestamp=true, int maxElements=-1)
 Add value, but ignore overlapping (past) values.
 
void prefillLatestAdjustedFirst (const OBJ &value, int elements, qint64 deltaTimeMs=-1)
 Prefill with elements.
 
bool isSortedAdjustedLatestLast () const
 Is completely sorted: latest last. More...
 
bool isSortedAdjustedLatestFirst () const
 Is completely sorted: latest last. More...
 
CONTAINER findAfterAdjusted (qint64 msSinceEpoch) const
 List of objects after msSinceEpoch (newer)
 
OBJ findObjectAfterAdjustedOrDefault (qint64 msSinceEpoch) const
 List of objects after msSinceEpoch (newer)
 
CONTAINER findBeforeAdjusted (qint64 msSinceEpoch) const
 List of objects before msSinceEpoch (older)
 
OBJ findObjectBeforeAdjustedOrDefault (qint64 msSinceEpoch) const
 Object before timestamp (older)
 
OBJ findClosestTimeDistanceAdjusted (qint64 msSinceEpoch) const
 Closest adjusted time difference.
 
OBJ latestAdjustedObject () const
 Latest adjusted object.
 
OBJ oldestAdjustedObject () const
 Oldest adjusted object.
 
QDateTime latestAdjustedTimestamp () const
 Latest adjusted timestamp.
 
QDateTime oldestAdjustedTimestamp () const
 Oldest adjusted timestamp.
 
qint64 latestAdjustedTimestampMsecsSinceEpoch () const
 Latest adjusted timestamp.
 
qint64 oldestAdjustedTimestampMsecsSinceEpoch () const
 Oldest adjusted timestamp.
 
void setAdjustedSortHint (HintAdjustedTimestampSort hint)
 Set the hint.
 
MillisecondsMinMaxMean getOffsetMinMaxMean () const
 Difference of timestamp values. More...
 
- Public Member Functions inherited from swift::misc::ITimestampObjectList< OBJ, CONTAINER >
CONTAINER findBefore (const QDateTime &dateTime) const
 List of objects before dateTime (older)
 
CONTAINER findBefore (qint64 msSinceEpoch) const
 List of objects before msSinceEpoch (older)
 
OBJ findObjectBeforeOrDefault (qint64 msSinceEpoch) const
 Object before timestamp or default (older)
 
CONTAINER findBeforeAndRemove (qint64 msSinceEpoch)
 Get objects before msSinceEpoch and remove those.
 
CONTAINER findBeforeNowMinusOffset (qint64 msOffset) const
 List of objects before now - offset.
 
CONTAINER findAfter (const QDateTime &dateTime) const
 List of objects after dateTime (newer)
 
CONTAINER findAfter (qint64 msSinceEpoch) const
 List of objects after msSinceEpoch (newer)
 
CONTAINER findAfterNowMinusOffset (qint64 msOffset) const
 List of objects before now - offset.
 
OBJ findObjectAfterOrDefault (qint64 msSinceEpoch) const
 List of objects after msSinceEpoch (newer)
 
CONTAINER findInvalidTimestamps () const
 Objects without valid timestamp.
 
OBJ findClosestTimeDistance (qint64 msSinceEpoch) const
 Find closest (or default)
 
bool hasInvalidTimestamps () const
 Has invalid timestamp.
 
void setCurrentUtcTime ()
 Set all timestamps to now.
 
void setUtcTime (qint64 msSinceEpoch)
 Set all timestamps to given time.
 
void setInvalidTimestampsToCurrentUtcTime ()
 Set invalid timestamps to now.
 
QDateTime latestTimestamp () const
 Latest timestamp.
 
qint64 latestTimestampMsecsSinceEpoch () const
 Latest timestamp.
 
QDateTime oldestTimestamp () const
 Oldest timestamp.
 
qint64 oldestTimestampMsecsSinceEpoch () const
 Oldest timestamp.
 
OBJ latestObject () const
 Latest object.
 
OBJ oldestObject () const
 Latest object.
 
int removeBefore (const QDateTime &dateTime)
 Remove objects with timestamp before dateTime.
 
int removeBefore (qint64 msSinceEpoch)
 Remove objects with timestamp before dateTime.
 
int removeOlderThanNowMinusOffset (qint64 offsetMs)
 Remove objects older than seconds.
 
void sortLatestFirst ()
 Sort by timestamp.
 
void sortOldestFirst ()
 Sort by timestamp.
 
void push_frontKeepLatestFirst (const OBJ &value, bool replaceSameTimestamp=true, int maxElements=-1)
 Insert as first element by keeping maxElements and the latest first.
 
void push_backIncreaseTimestamp (const OBJ &newObject)
 Push back and increase the timestamp at least by +1ms if equal to last element. More...
 
void push_backOverrideTimestamp (const OBJ &newObject, qint64 newTsMsSinceEpoch)
 Push back, but set new timestamp.
 
void setNewTimestampStartingLast (qint64 startTimeStampMs, qint64 deltaTimeMs)
 Set new timestamps starting with the last element.
 
int replaceIfSameTimestamp (const OBJ &newObject)
 Replace if an object has the same timestamp.
 
bool isSortedLatestLast () const
 Is completely sorted: latest last. More...
 
bool isSortedLatestFirst () const
 Is completely sorted: latest last. More...
 
void addMsecs (qint64 msToAdd)
 Adds a time to all values.
 
void setSortHint (HintTimestampSort hint)
 Set the hint.
 
MillisecondsMinMaxMean getTimestampDifferenceMinMaxMean () const
 Difference of timestamp values. More...
 

Protected Member Functions

 ITimestampWithOffsetObjectList ()=default
 Constructor.
 
- Protected Member Functions inherited from swift::misc::ITimestampObjectList< OBJ, CONTAINER >
 ITimestampObjectList ()=default
 Constructor.
 
const CONTAINER & container () const
 Container.
 
CONTAINER & container ()
 Container.
 

Protected Attributes

HintAdjustedTimestampSort m_tsAdjustedSortHint = NoAdjustedTimestampSortHint
 sort hint
 
- Protected Attributes inherited from swift::misc::ITimestampObjectList< OBJ, CONTAINER >
HintTimestampSort m_tsSortHint = NoTimestampSortHint
 sort hint
 

Detailed Description

template<class OBJ, class CONTAINER>
class swift::misc::ITimestampWithOffsetObjectList< OBJ, CONTAINER >

List of objects with timestamp and offset. Such objects should implement.

See also
ITimestampWithOffsetBased

Definition at line 413 of file timestampobjectlist.h.

Member Function Documentation

◆ getOffsetMinMaxMean()

template<class OBJ , class CONTAINER >
MillisecondsMinMaxMean swift::misc::ITimestampWithOffsetObjectList< OBJ, CONTAINER >::getOffsetMinMaxMean ( ) const
inline

Difference of timestamp values.

Precondition
timestamp list has to be sorted to get meaningful values

Definition at line 709 of file timestampobjectlist.h.

◆ isSortedAdjustedLatestFirst()

template<class OBJ , class CONTAINER >
bool swift::misc::ITimestampWithOffsetObjectList< OBJ, CONTAINER >::isSortedAdjustedLatestFirst ( ) const
inline

Is completely sorted: latest last.

Remarks
all object must have a valid timestamp

Definition at line 588 of file timestampobjectlist.h.

◆ isSortedAdjustedLatestLast()

template<class OBJ , class CONTAINER >
bool swift::misc::ITimestampWithOffsetObjectList< OBJ, CONTAINER >::isSortedAdjustedLatestLast ( ) const
inline

Is completely sorted: latest last.

Remarks
all object must have a valid timestamp

Definition at line 572 of file timestampobjectlist.h.

◆ push_frontKeepLatestFirstAdjustOffset()

template<class OBJ , class CONTAINER >
void swift::misc::ITimestampWithOffsetObjectList< OBJ, CONTAINER >::push_frontKeepLatestFirstAdjustOffset ( const OBJ &  value,
bool  replaceSameTimestamp = true,
int  maxElements = -1 
)
inline

Insert as first element by keeping maxElements and the latest first.

Remarks
adjust offset to average offset of two adjacent elements so adjusted values are sorted

Definition at line 502 of file timestampobjectlist.h.


The documentation for this class was generated from the following file: