[traffxml] Introduce timestamp shift operation

Signed-off-by: mvglasow <michael -at- vonglasow.com>
This commit is contained in:
mvglasow
2025-06-14 21:14:00 +03:00
parent e3d86be324
commit 0681171d69
2 changed files with 39 additions and 0 deletions

View File

@@ -153,6 +153,12 @@ IsoTime::IsoTime(std::chrono::time_point<std::chrono::utc_clock> tp)
bool IsoTime::IsPast()
{
return m_tp < std::chrono::utc_clock::now();
}\
void IsoTime::Shift(IsoTime nowRef)
{
auto const offset = std::chrono::utc_clock::now() - nowRef.m_tp;
m_tp += offset;
}
bool IsoTime::operator< (IsoTime & rhs)
@@ -256,6 +262,18 @@ std::optional<TrafficImpact> TraffMessage::GetTrafficImpact()
return std::nullopt;
}
void TraffMessage::ShiftTimestamps()
{
IsoTime nowRef = m_updateTime;
m_receiveTime.Shift(nowRef);
m_updateTime.Shift(nowRef);
m_expirationTime.Shift(nowRef);
if (m_startTime)
m_startTime.value().Shift(nowRef);
if (m_endTime)
m_endTime.value().Shift(nowRef);
}
void MergeMultiMwmColoring(MultiMwmColoring & delta, MultiMwmColoring & target)
{
// for each mwm in delta