#include "clock-virtual.h" #include "ns3/log.h" #include "ns3/simulator.h" #include "ns3/uinteger.h" #include namespace ns3 { NS_LOG_COMPONENT_DEFINE("VirtualClock"); NS_OBJECT_ENSURE_REGISTERED(VirtualClock); TypeId VirtualClock::GetTypeId() { static TypeId tid = TypeId("ns3::VirtualClock") .SetParent() .SetGroupName("tsn") .AddConstructor(); return tid; } VirtualClock::VirtualClock() { NS_LOG_FUNCTION(this); } VirtualClock::~VirtualClock() { NS_LOG_FUNCTION(this); } void VirtualClock::SetRefClock(Ptr refClock) { NS_LOG_FUNCTION(this); m_refClock = refClock; } Time VirtualClock::GetLocalTime() { NS_LOG_FUNCTION(this); return GetUncorrectedLocalTime() + m_correctionOffset; } Time VirtualClock::GetUncorrectedLocalTime() { NS_LOG_FUNCTION(this); NS_ASSERT_MSG(m_refClock != nullptr, "Reference clock no set using void VirtualClock::SetRefClock(Ptr refClock)"); return m_refClock->GetUncorrectedLocalTime(); } Time VirtualClock::GetTimeAt(Time t) { NS_LOG_FUNCTION(this); return m_correctionOffset + m_refClock->GetTimeAt(t); } Time VirtualClock::GetDuration(Time d) { NS_LOG_FUNCTION(this); return m_refClock->GetDuration(d); } }