Simulation virtual time values and global simulation resolution. More...
#include "nstime.h"
Classes | |
struct | Information |
How to convert between other units and the current unit. More... | |
struct | Resolution |
Current time unit, and conversion info. More... | |
Public Types | |
typedef void(* | TracedCallback) (Time value) |
TracedCallback signature for Time. | |
enum | Unit { Y = 0 , D = 1 , H = 2 , MIN = 3 , S = 4 , MS = 5 , US = 6 , NS = 7 , PS = 8 , FS = 9 , LAST = 10 , AUTO = 11 } |
The unit to use to interpret a number representing time. More... | |
Public Member Functions | |
Time () | |
Default constructor, with value 0. | |
Time (const std::string &s) | |
Construct Time object from common time expressions like "1ms". | |
Time (const Time &o) | |
Copy constructor. | |
Time (Time &&o) | |
Move constructor. | |
~Time () | |
Destructor. | |
TimeWithUnit | As (const Unit unit=Time::AUTO) const |
Attach a unit to a Time, to facilitate output in a specific unit. | |
int | Compare (const Time &o) const |
Compare this to another Time. | |
bool | IsNegative () const |
Exactly equivalent to t <= 0 . | |
bool | IsPositive () const |
Exactly equivalent to t >= 0 . | |
bool | IsStrictlyNegative () const |
Exactly equivalent to t < 0 . | |
bool | IsStrictlyPositive () const |
Exactly equivalent to t > 0 . | |
bool | IsZero () const |
Exactly equivalent to t == 0 . | |
Time & | operator= (const Time &o) |
Assignment operator. | |
Time | RoundTo (Unit unit) const |
Round a Time to a specific unit. | |
Numeric constructors | |
Construct from a numeric value. | |
Time (double v) | |
Construct from a numeric value. | |
Time (int v) | |
Construct from a numeric value. | |
Time (long int v) | |
Construct from a numeric value. | |
Time (long long int v) | |
Construct from a numeric value. | |
Time (unsigned int v) | |
Construct from a numeric value. | |
Time (unsigned long int v) | |
Construct from a numeric value. | |
Time (unsigned long long int v) | |
Construct from a numeric value. | |
Time (const int64x64_t &v) | |
Construct from a numeric value. | |
Convert to Number in a Unit | |
Convert a Time to number, in indicated units. Conversions to seconds and larger will return doubles, with possible loss of precision. Conversions to units smaller than seconds will be rounded. | |
double | GetYears () const |
Get an approximation of the time stored in this instance in the indicated unit. | |
double | GetDays () const |
Get an approximation of the time stored in this instance in the indicated unit. | |
double | GetHours () const |
Get an approximation of the time stored in this instance in the indicated unit. | |
double | GetMinutes () const |
Get an approximation of the time stored in this instance in the indicated unit. | |
double | GetSeconds () const |
Get an approximation of the time stored in this instance in the indicated unit. | |
int64_t | GetMilliSeconds () const |
Get an approximation of the time stored in this instance in the indicated unit. | |
int64_t | GetMicroSeconds () const |
Get an approximation of the time stored in this instance in the indicated unit. | |
int64_t | GetNanoSeconds () const |
Get an approximation of the time stored in this instance in the indicated unit. | |
int64_t | GetPicoSeconds () const |
Get an approximation of the time stored in this instance in the indicated unit. | |
int64_t | GetFemtoSeconds () const |
Get an approximation of the time stored in this instance in the indicated unit. | |
Convert to Raw Value | |
Convert a Time to a number in the current resolution units. | |
int64_t | GetTimeStep () const |
Get the raw time value, in the current resolution unit. | |
double | GetDouble () const |
Get the raw time value, in the current resolution unit. | |
int64_t | GetInteger () const |
Get the raw time value, in the current resolution unit. | |
Get Times as Numbers in Specified Units | |
Get the Time as integers or doubles in the indicated unit. | |
int64_t | ToInteger (Unit unit) const |
Get the Time value expressed in a particular unit. | |
double | ToDouble (Unit unit) const |
Get the Time value expressed in a particular unit. | |
int64x64_t | To (Unit unit) const |
Get the Time value expressed in a particular unit. | |
Static Public Member Functions | |
static Time | From (const int64x64_t &value) |
Create a Time in the current unit. | |
static Unit | GetResolution () |
static Time | Max () |
Maximum representable Time Not to be confused with Max(Time,Time). | |
static Time | Min () |
Minimum representable Time Not to be confused with Min(Time,Time). | |
static void | SetResolution (Unit resolution) |
static bool | StaticInit () |
Function to force static initialization of Time. | |
Create Times from Values and Units | |
Create Times from values given in the indicated units. | |
static Time | FromInteger (uint64_t value, Unit unit) |
Create a Time equal to value in unit unit . | |
static Time | FromDouble (double value, Unit unit) |
Create a Time equal to value in unit unit . | |
static Time | From (const int64x64_t &value, Unit unit) |
Create a Time equal to value in unit unit . | |
Private Types | |
typedef std::set< Time * > | MarkedTimes |
Record all instances of Time, so we can rescale them when the resolution changes. | |
Static Private Member Functions | |
static void | Clear (Time *const time) |
Remove a Time instance from the MarkedTimes, called by ~Time(). | |
static void | ClearMarkedTimes () |
Remove all MarkedTimes. | |
static void | ConvertTimes (const Unit unit) |
Convert existing Times to the new unit. | |
static void | Mark (Time *const time) |
Record a Time instance with the MarkedTimes. | |
static bool | MarkingTimes () |
Null check for g_markingTimes from outside time.cc. | |
static Information * | PeekInformation (Unit timeUnit) |
Get the Information record for timeUnit for the current Resolution. | |
static Resolution * | PeekResolution () |
Get the current Resolution. | |
static Resolution & | SetDefaultNsResolution () |
Set the default resolution. | |
static void | SetResolution (Unit unit, Resolution *resolution, const bool convert=true) |
Set the current Resolution. | |
Private Attributes | |
int64_t | m_data |
Virtual time value, in the current unit. | |
Static Private Attributes | |
static MarkedTimes * | g_markingTimes = nullptr |
Record of outstanding Time objects which will need conversion when the resolution is set. | |
Friends | |
template<class T > | |
std::enable_if_t< std::is_floating_point_v< T >, Time > | operator* (const Time &lhs, T rhs) |
Scale a Time by an integer value. | |
template<class T > | |
std::enable_if_t< std::is_floating_point_v< T >, Time > | operator/ (const Time &lhs, T rhs) |
Divide a Time by an integer value. | |
Comparison operators | |
bool | operator== (const Time &lhs, const Time &rhs) |
Equality operator for Time. | |
bool | operator!= (const Time &lhs, const Time &rhs) |
Inequality operator for Time. | |
bool | operator<= (const Time &lhs, const Time &rhs) |
Less than or equal operator for Time. | |
bool | operator>= (const Time &lhs, const Time &rhs) |
Greater than or equal operator for Time. | |
bool | operator< (const Time &lhs, const Time &rhs) |
Less than operator for Time. | |
bool | operator> (const Time &lhs, const Time &rhs) |
Greater than operator for Time. | |
bool | operator< (const Time &time, const EventId &event) |
Compare a Time to an EventId. | |
Arithmetic operators | |
Time | operator+ (const Time &lhs, const Time &rhs) |
Addition operator for Time. | |
Time | operator- (const Time &lhs, const Time &rhs) |
Subtraction operator for Time. | |
Time | operator* (const Time &lhs, const int64x64_t &rhs) |
Scale a Time by a numeric value. | |
Time | operator* (const int64x64_t &lhs, const Time &rhs) |
Scale a Time by a numeric value. | |
int64x64_t | operator/ (const Time &lhs, const Time &rhs) |
Exact division, returning a dimensionless fixed point number. | |
Time | operator/ (const Time &lhs, const int64x64_t &rhs) |
Scale a Time by a numeric value. | |
Time | operator% (const Time &lhs, const Time &rhs) |
Remainder (modulus) from the quotient of two Times. | |
int64_t | Div (const Time &lhs, const Time &rhs) |
Integer quotient from dividing two Times. | |
Time | Rem (const Time &lhs, const Time &rhs) |
Addition operator for Time. | |
template<class T > | |
std::enable_if_t< std::is_integral_v< T >, Time > | operator* (const Time &lhs, T rhs) |
Scale a Time by an integer value. | |
template<class T > | |
std::enable_if_t< std::is_arithmetic_v< T >, Time > | operator* (T lhs, const Time &rhs) |
Scale a Time by a numeric value. | |
template<class T > | |
std::enable_if_t< std::is_integral_v< T >, Time > | operator/ (const Time &lhs, T rhs) |
Divide a Time by an integer value. | |
Time | Abs (const Time &time) |
Absolute value for Time. | |
Time | Max (const Time &timeA, const Time &timeB) |
Maximum of two Times. | |
Time | Min (const Time &timeA, const Time &timeB) |
Minimum of two Times. | |
Compound assignment operators | |
Time & | operator+= (Time &lhs, const Time &rhs) |
Compound addition assignment for Time. | |
Time & | operator-= (Time &lhs, const Time &rhs) |
Compound subtraction assignment for Time. | |
Related Symbols | |
(Note that these are not member symbols.) | |
static bool | g_TimeStaticInit = Time::StaticInit() |
Force static initialization order of Time in each compilation unit. | |
Time | TimeStep (uint64_t ts) |
Scheduler interface. | |
Simulation virtual time values and global simulation resolution.
This class defines all the classic C++ addition/subtraction operators: +, -, +=, -=; and all the classic comparison operators: ==, !=, <, >, <=, >=. It is thus easy to add, subtract, or compare Time objects.
For example:
You can also use the following non-member functions to manipulate any of these ns3::Time object:
This class also controls the resolution of the underlying time representation. The resolution is the smallest representable time interval. The default resolution is nanoseconds.
To change the resolution, use SetResolution(). All Time objects created before the call to SetResolution() will be updated to the new resolution. This can only be done once! (Tracking each Time object uses 4 pointers. For speed, once we convert the existing instances we discard the recording data structure and stop tracking new instances, so we have no way to do a second conversion.)
If you increase the global resolution, you also implicitly decrease the maximum simulation duration. The global simulation time is stored in a 64 bit integer whose interpretation will depend on the global resolution. Therefore the maximum possible duration of your simulation if you use picoseconds is 2^64 ps = 2^24 s = 7 months, whereas, had you used nanoseconds, you could have run for 584 years.
|
private |
Record all instances of Time, so we can rescale them when the resolution changes.
We use a std::set so we can remove the record easily when ~Time() is called.
We don't use Ptr<Time>, because we would have to bloat every Time instance with SimpleRefCount<Time>.
Seems like this should be std::set< Time * const >, but Stack Overflow says otherwise, quoting the standard:
& sect;23.1/3 states that std::set key types must be assignable and copy constructable; clearly a const type will not be assignable.
typedef void(* ns3::Time::TracedCallback) (Time value) |
TracedCallback signature for Time.
[in] | value | Current value of Time |
enum ns3::Time::Unit |
The unit to use to interpret a number representing time.
Enumerator | |
---|---|
Y | year, 365 days |
D | day, 24 hours |
H | hour, 60 minutes |
MIN | minute, 60 seconds |
S | second |
MS | millisecond |
US | microsecond |
NS | nanosecond |
PS | picosecond |
FS | femtosecond |
LAST | marker for last normal value |
AUTO | auto-scale output when using Time::As() |
|
inline |
|
inline |
|
inline |
|
inlineexplicit |
|
inlineexplicit |
|
inlineexplicit |
|
inlineexplicit |
|
inlineexplicit |
|
inlineexplicit |
|
inlineexplicit |
|
inlineexplicit |
|
explicit |
Construct Time object from common time expressions like "1ms".
Supported units include:
s
(seconds)ms
(milliseconds)us
(microseconds)ns
(nanoseconds)ps
(picoseconds)fs
(femtoseconds)min
(minutes)h
(hours)d
(days)y
(years)There must be no whitespace between the numerical portion and the unit. If the string only contains a number, it is treated as seconds. Any otherwise malformed string causes a fatal error to occur.
[in] | s | The string to parse into a Time |
Definition at line 118 of file time.cc.
References D, FromDouble(), FS, H, Mark(), MarkingTimes(), MIN, MS, NS, NS_ABORT_MSG, NS_LOG_FUNCTION, PS, S, US, and Y.
TimeWithUnit ns3::Time::As | ( | const Unit | unit = Time::AUTO | ) | const |
Attach a unit to a Time, to facilitate output in a specific unit.
For example,
will print +3140.0ms
[in] | unit | The unit to use. |
Definition at line 409 of file time.cc.
Referenced by ns3::WifiCoTraceHelper::WifiCoTraceHelper(), ns3::WifiTxStatsHelper::WifiTxStatsHelper(), ns3::SixLowPanNetDevice::AddContext(), ThreeGppHttpClientServerTestSuite::AddHttpObjectTestCase(), ns3::WifiCoTraceHelper::DeviceRecord::AddLinkMeasurement(), ns3::dsr::DsrRouteCache::AddRoute_Link(), ApsDataIndication(), ns3::AsciiLrWpanMacTransmitSinkWithContext(), ns3::AsciiLrWpanMacTransmitSinkWithoutContext(), AssociateConfirm(), ns3::lrwpan::LrWpanCsmaCa::CanProceed(), TimeInputOutputTestCase::CheckAs(), ns3::FlowMonitor::CheckForLostPackets(), EmlsrOperationsTestBase::CheckMsdTimerRunning(), ClientPageReceived(), ThreeGppHttpObjectTestCase::ClientRxDelayCallback(), ThreeGppHttpObjectTestCase::ClientRxRttCallback(), ns3::ThreeGppHttpServerTxBuffer::CloseAllSockets(), ns3::ThreeGppHttpServerTxBuffer::CloseSocket(), CommStatusIndication(), BatteryLifetimeTest::ConstantLoadTest(), CourseChangeCallback(), DataSentMacConfirm(), ns3::dsr::DsrRouteCache::DecStability(), ns3::DefaultTimePrinter(), ns3::TbfQueueDisc::DoDequeue(), ns3::ChannelAccessManager::DoGetAccessGrantStart(), ns3::A3RsrpHandoverAlgorithm::DoInitialize(), ns3::LteRlcSm::DoReceivePdu(), LrWpanSlottedCsmacaTestCase::DoRun(), LteHandoverDelayTestCase::DoRun(), LteRadioLinkFailureTestCase::DoRun(), LteRlcAmE2eTestCase::DoRun(), TimeInputOutputTestCase::DoRun(), ns3::RandomWalk2dMobilityModel::DoWalk(), ns3::RandomWalk2dMobilityModel::DrawRandomVelocityAndDistance(), ns3::EhtFrameExchangeManager::EmlsrSwitchToListening(), LteHandoverDelayTestCase::EnbHandoverEndOkCallback(), EnbRrcTimeout(), ns3::CommonInfoBasicMle::EncodeEmlsrPaddingDelay(), ns3::CommonInfoBasicMle::EncodeEmlsrTransitionDelay(), ns3::PhyEntity::EndOfMpdu(), ns3::UanMacCw::Enqueue(), ns3::dsr::DsrRouteCache::FindSameRoute(), ns3::dot11s::HwmpProtocol::ForwardPathError(), ns3::LteUePhy::GenerateCqiRsrpRsrq(), ns3::EhtFrameExchangeManager::GenerateInDeviceInterference(), ns3::EhtFrameExchangeManager::GenerateInDeviceInterferenceForAll(), ns3::ChannelAccessManager::GetBackoffEndFor(), ns3::ChannelAccessManager::GetBackoffStartFor(), ns3::CommandLineHelper::GetDefault< Time >(), ns3::ChannelAccessManager::GetExpectedAccessWithin(), ns3::ChannelAccessManager::GetLargestIdlePrimaryChannel(), ns3::PhyEntity::GetReceptionStatus(), ns3::dsdv::RoutingProtocol::GetSettlingTime(), ns3::lrwpan::LrWpanCsmaCa::GetTimeToNextSlot(), ns3::ShowProgress::GiveFeedback(), ns3::lrwpan::LrWpanMac::IfsWaitTimeout(), ns3::dsr::DsrRouteCache::IncStability(), ns3::aodv::RoutingTableEntry::Invalidate(), ns3::olsr::RoutingProtocol::LinkSensing(), ns3::aodv::RoutingTable::MarkLinkAsUnidirectional(), MoveNode(), JakesPropagationExample::Next(), ns3::HePhy::NotifyCcaBusy(), ns3::PhyEntity::NotifyCcaBusy(), NotifyConnectionEstablishedEnb(), NotifyConnectionEstablishedEnb(), NotifyConnectionEstablishedUe(), NotifyConnectionTimeoutUe(), NotifyHandoverEndOkEnb(), NotifyHandoverEndOkUe(), NotifyHandoverFailure(), NotifyHandoverStartEnb(), NotifyHandoverStartUe(), ns3::EmlsrManager::NotifyInDeviceInterferenceStart(), ns3::DefaultEmlsrManager::NotifyMainPhySwitch(), NotifyRandomAccessErrorUe(), NotifyRaResponseTimeoutUe(), ns3::EhtFrameExchangeManager::NotifySwitchingEmlsrLink(), ns3::StaWifiMac::NotifySwitchingEmlsrLink(), NotifyViaTraceSource(), ns3::WifiCoTraceHelper::NotifyWifiPhyState(), NwkDataIndication(), NwkJoinConfirm(), NwkJoinConfirm(), NwkJoinConfirm(), NwkJoinConfirm(), ZigbeeRreqRetryTestCase::NwkJoinConfirm(), ns3::operator<<(), OrphanIndication(), ns3::lrwpan::LrWpanMac::PdDataConfirm(), LrWpanCcaTestCase::PhyRxBegin(), LrWpanCcaTestCase::PhyRxDrop(), LrWpanCcaTestCase::PhyRxEnd(), PhySyncDetection(), LrWpanCcaTestCase::PhyTxBegin(), LrWpanCcaTestCase::PhyTxEnd(), LrWpanCcaTestCase::PlmeCcaConfirm(), PollConfirm(), ns3::dsdv::RoutingTableEntry::Print(), ns3::MgtEmlOmn::Print(), ns3::SeqTsEchoHeader::Print(), ns3::TcpTxItem::Print(), ns3::TimestampTag::Print(), ns3::UanHeaderRcCts::Print(), ns3::UanHeaderRcCtsGlobal::Print(), ns3::UanHeaderRcData::Print(), ns3::UanHeaderRcRts::Print(), ns3::zigbee::RouteDiscoveryTableEntry::Print(), PrintIntermediateTput(), ns3::Ipv6RoutingHelper::PrintNdiscCache(), ns3::Ipv6RoutingHelper::PrintNdiscCacheEvery(), ns3::zigbee::ZigbeeNwk::PrintNeighborTable(), ns3::lrwpan::LrWpanMac::PrintPendingTxQueue(), ns3::zigbee::ZigbeeNwk::PrintRouteDiscoveryTable(), ns3::NixVectorRouting< T >::PrintRoutingPath(), ns3::aodv::RoutingProtocol::PrintRoutingTable(), ns3::dsdv::RoutingProtocol::PrintRoutingTable(), ns3::Ipv4GlobalRouting::PrintRoutingTable(), ns3::Ipv4ListRouting::PrintRoutingTable(), ns3::Ipv4StaticRouting::PrintRoutingTable(), ns3::Ipv6ListRouting::PrintRoutingTable(), ns3::Ipv6StaticRouting::PrintRoutingTable(), ns3::NixVectorRouting< T >::PrintRoutingTable(), ns3::olsr::RoutingProtocol::PrintRoutingTable(), ns3::Rip::PrintRoutingTable(), ns3::RipNg::PrintRoutingTable(), ns3::zigbee::ZigbeeNwk::PrintRoutingTable(), ns3::zigbee::ZigbeeNwk::PrintRREQRetryTable(), ns3::lrwpan::LrWpanMac::PrintTxQueue(), ns3::UplinkSchedulerMBQoS::ProcessBandwidthRequest(), ns3::lrwpan::LrWpanCsmaCa::RandomBackoffDelay(), ns3::RandomWalk2dMobilityModel::Rebound(), ns3::lrwpan::LrWpanMac::ReceiveBeacon(), ns3::AdvancedApEmlsrManager::ReceivedMacHdr(), ns3::AdvancedEmlsrManager::ReceivedMacHdr(), ns3::FrameExchangeManager::ReceivedMacHdr(), ns3::QosFrameExchangeManager::ReceivedMacHdr(), ns3::MeshPointDevice::ReceiveFromDevice(), ns3::HeFrameExchangeManager::ReceiveMuBarTrigger(), ns3::dot11s::HwmpProtocol::ReceivePrep(), ns3::dot11s::HwmpProtocol::ReceivePreq(), ns3::ThreeGppHttpServerTxBuffer::RecordNextServe(), ns3::dsdv::RoutingProtocol::RecvDsdv(), ns3::ThreeGppHttpServerTxBuffer::RemoveSocket(), ns3::SixLowPanNetDevice::RenewContext(), ns3::AdvancedEmlsrManager::RequestMainPhyToSwitch(), ns3::WifiTxTimer::Reschedule(), PingTestCase::RttTraceSink(), ns3::EhtFrameExchangeManager::RxStartIndication(), ns3::FrameExchangeManager::RxStartIndication(), ns3::HeFrameExchangeManager::RxStartIndication(), ScanConfirm(), ScanConfirm(), ScanConfirm(), ScanConfirm(), ns3::UanMacRc::ScheduleData(), ns3::PhyEntity::ScheduleEndOfMpdus(), ns3::OnOffApplication::ScheduleNextTx(), ns3::aodv::RoutingProtocol::ScheduleRreqRetry(), ns3::dsr::DsrRouting::ScheduleRreqRetry(), ns3::OnOffApplication::ScheduleStartEvent(), ns3::OnOffApplication::ScheduleStopEvent(), ns3::HeFrameExchangeManager::SendMultiStaBlockAck(), ns3::aodv::RoutingProtocol::SendRerrMessage(), ns3::aodv::RoutingProtocol::SendRerrWhenNoRouteToForward(), ns3::MultiUserScheduler::SetAccessReqInterval(), ns3::ThreeGppHttpHeader::SetClientTs(), ns3::ThreeGppHttpVariables::SetEmbeddedObjectGenerationDelay(), ns3::PointToPointNetDevice::SetInterframeGap(), ns3::ThreeGppHttpVariables::SetMainObjectGenerationDelay(), ns3::EmlsrManager::SetMediumSyncDuration(), ns3::ThreeGppHttpVariables::SetParsingTimeMean(), ns3::ThreeGppHttpVariables::SetReadingTimeMean(), ns3::ThreeGppHttpHeader::SetServerTs(), ns3::EmlsrManager::SetTransitionTimeout(), ns3::MultiLinkElement::SetTransitionTimeout(), ns3::TimeProbe::SetValue(), ns3::TimeProbe::SetValueByPath(), ns3::dsr::DsrRouting::Start(), ns3::FlowMonitor::Start(), ns3::WifiPhyRxTraceHelper::Start(), ns3::WifiTxStatsHelper::Start(), ns3::UanMacRcGw::StartCycle(), ns3::BaseStationNetDevice::StartDlSubFrame(), ns3::lrwpan::LrWpanMac::StartInactivePeriod(), ns3::HePhy::StartReceivePreamble(), ns3::SpectrumWifiPhy::StartRx(), ns3::UanMacCw::StartTimer(), ns3::BaseStationNetDevice::StartUlSubFrame(), StateChangeNotification(), TestRxOffWhenIdleAfterCsmaFailure::StateChangeNotificationDev0(), TestRxOffWhenIdleAfterCsmaFailure::StateChangeNotificationDev2(), ns3::FlowMonitor::Stop(), ns3::DefaultEmlsrManager::SwitchAuxPhyAfterMainPhy(), ns3::EmlsrManager::SwitchMainPhy(), ns3::AdvancedEmlsrManager::SwitchMainPhyIfTxopToBeGainedByAuxPhy(), Throughput(), TraceRoute(), TraceRoute(), TraceRoute(), ns3::TimeProbe::TraceSink(), EmlsrUlOfdmaTest::Transmit(), ns3::CsmaNetDevice::TransmitCompleteEvent(), ns3::CsmaChannel::TransmitEnd(), ns3::CsmaNetDevice::TransmitStart(), ns3::PointToPointNetDevice::TransmitStart(), ns3::RrMultiUserScheduler::TrySendingBasicTf(), ns3::RrMultiUserScheduler::TrySendingBsrpTf(), LteHandoverDelayTestCase::UeHandoverEndOkCallback(), UeStateTransition(), UpdateAnimation(), ns3::RrMultiUserScheduler::UpdateCredits(), ns3::FrameExchangeManager::UpdateNav(), ns3::HeFrameExchangeManager::UpdateNav(), ns3::QosFrameExchangeManager::UpdateNav(), ns3::EhtFrameExchangeManager::UpdateTxopEndOnRxEnd(), ns3::EhtFrameExchangeManager::UpdateTxopEndOnRxStartIndication(), ns3::EhtFrameExchangeManager::UpdateTxopEndOnTxStart(), and BatteryLifetimeTest::VariableLoadTest().
|
staticprivate |
Remove a Time instance from the MarkedTimes, called by ~Time().
[in] | time | The Time instance to remove. |
Definition at line 343 of file time.cc.
References ns3::g_markingMutex, g_markingTimes, NS_ASSERT, NS_ASSERT_MSG, NS_LOG_FUNCTION, NS_LOG_LOGIC, and NS_LOG_WARN.
|
staticprivate |
Remove all MarkedTimes.
We're called by Simulator::Run, which knows nothing about the mutex, so we need a critical section here.
It would seem natural to use this function at the end of ConvertTimes, but that function already has the mutex. The mutex can not be locked more than once in the same thread, so calling this function from ConvertTimes is a bad idea.
Instead, we copy this body into ConvertTimes.
Definition at line 291 of file time.cc.
References ns3::g_markingMutex, g_markingTimes, NS_LOG_FUNCTION_NOARGS, and NS_LOG_LOGIC.
Referenced by ns3::Simulator::Run().
|
inline |
|
staticprivate |
Convert existing Times to the new unit.
[in] | unit | The Unit to convert existing Times to. |
Definition at line 371 of file time.cc.
References ns3::g_markingMutex, g_markingTimes, m_data, NS_ASSERT_MSG, NS_LOG_FUNCTION_NOARGS, NS_LOG_LOGIC, and ToInteger().
Referenced by SetResolution().
|
inlinestatic |
Create a Time in the current unit.
[in] | value | The value of the new Time. |
Definition at line 472 of file nstime.h.
Referenced by ns3::Days(), RttEstimatorTestCase::DoRun(), ns3::FemtoSeconds(), ns3::Hours(), ns3::RttMeanDeviation::IntegerUpdate(), ns3::MicroSeconds(), ns3::MilliSeconds(), ns3::Minutes(), ns3::NanoSeconds(), ns3::PicoSeconds(), ns3::Seconds(), and ns3::Years().
|
inlinestatic |
Create a Time equal to value in unit unit
.
[in] | value | The new Time value, expressed in unit |
[in] | unit | The unit of value |
unit
Definition at line 524 of file nstime.h.
References ns3::Time::Information::fromMul, ns3::Time::Information::isValid, ns3::int64x64_t::MulByInvert(), NS_ASSERT_MSG, and ns3::Time::Information::timeFrom.
Create a Time equal to value in unit unit
.
[in] | value | The new Time value, expressed in unit |
[in] | unit | The unit of value |
unit
Definition at line 513 of file nstime.h.
Referenced by Time(), ns3::Days(), ns3::RttMeanDeviation::FloatingPointUpdate(), ns3::Hours(), ns3::Minutes(), ns3::TcpSocketBase::ReTxTimeout(), ns3::Seconds(), and ns3::Years().
Create a Time equal to value in unit unit
.
[in] | value | The new Time value, expressed in unit |
[in] | unit | The unit of value |
unit
Definition at line 490 of file nstime.h.
References ns3::Time::Information::factor, ns3::Time::Information::fromMul, ns3::Time::Information::isValid, and NS_ASSERT_MSG.
Referenced by ns3::FemtoSeconds(), ns3::Ipv4ClickRouting::HandleScheduleFromClick(), ns3::MicroSeconds(), ns3::MilliSeconds(), ns3::NanoSeconds(), and ns3::PicoSeconds().
|
inline |
|
inline |
Get the raw time value, in the current resolution unit.
Definition at line 441 of file nstime.h.
Referenced by ns3::WifiCoTraceHelper::ComputePercentage(), TimeSimpleTestCase::TestMultiplicationByDecimalTypes(), and ns3::TcpHtcp::UpdateBeta().
|
inline |
Get an approximation of the time stored in this instance in the indicated unit.
Definition at line 419 of file nstime.h.
Referenced by DataRateTestCase::CheckTimesEqual(), ns3::HtPhy::GetPayloadDuration(), ns3::OfdmPhy::GetPayloadDuration(), and ns3::Ipv4ClickRouting::GetTimevalFromNow().
|
inline |
Get an approximation of the time stored in this instance in the indicated unit.
Definition at line 384 of file nstime.h.
Referenced by GraphBattery5().
|
inline |
Get the raw time value, in the current resolution unit.
Definition at line 446 of file nstime.h.
Referenced by ns3::DistributedSimulatorImpl::CalculateLookAhead(), RttEstimatorTestCase::DoRun(), TimeSimpleTestCase::DoRun(), ns3::RttMeanDeviation::IntegerUpdate(), ns3::NullMessageMpiInterface::SendNullMessage(), ns3::GrantedTimeWindowMpiInterface::SendPacket(), ns3::NullMessageMpiInterface::SendPacket(), and anonymous_namespace{traced-value-callback-typedef-test-suite.cc}::TracedValueCbSink< Time >().
|
inline |
Get an approximation of the time stored in this instance in the indicated unit.
Definition at line 404 of file nstime.h.
Referenced by ns3::dot11s::IeBeaconTiming::BeaconIntervalToU16(), OfdmaAckSequenceTest::CheckResults(), CheckT1QueueSize(), CheckT2QueueSize(), CoDelQueueDiscBasicDrop::Dequeue(), CoDelQueueDiscBasicMark::Dequeue(), ns3::ApWifiMac::DoInitialize(), LrWpanSlottedCsmacaTestCase::DoRun(), ns3::CommonInfoBasicMle::EncodeEmlsrPaddingDelay(), ns3::CommonInfoBasicMle::EncodeEmlsrTransitionDelay(), ns3::dot11s::HwmpProtocol::GetActivePathLifetime(), ns3::ApWifiMac::GetEdcaParameterSet(), ns3::TidToLinkMapping::GetMappingSwitchTime(), ns3::Ipv4ClickRouting::GetTimevalFromNow(), Ns3TcpLossTestCase::Ipv4L3Tx(), Ns3TcpStateTestCase::Ipv4L3Tx(), PacketDequeue(), PrintIntermediateTput(), ns3::MinstrelWifiManager::PrintTable(), ns3::dot11s::HwmpProtocol::ReceivePreq(), PingTestCase::ReportTraceSink(), ns3::MeshWifiInterfaceMac::SendBeacon(), ns3::dot11s::HwmpProtocol::SendProactivePreq(), ns3::dot11s::PeerLink::SetBeaconInformation(), ns3::ApWifiMac::SetBeaconInterval(), ns3::dot11s::PeerLink::SetConfirmTimer(), ns3::DsssPpdu::SetDsssHeader(), ns3::TidToLinkMapping::SetExpectedDuration(), ns3::dot11s::PeerLink::SetHoldingTimer(), ns3::TidToLinkMapping::SetMappingSwitchTime(), ns3::CommonInfoBasicMle::SetMediumSyncDelayTimer(), ns3::MuEdcaParameterSet::SetMuEdcaTimer(), ns3::dot11s::PeerLink::SetRetryTimer(), ns3::MultiLinkElement::SetTransitionTimeout(), ns3::Txop::SetTxopLimit(), ns3::MinstrelHtWifiManager::StatsDump(), ns3::dot11s::IeBeaconTiming::TimestampToU16(), ns3::MinstrelWifiManager::UpdateStats(), ns3::PcapFileWrapper::Write(), ns3::PcapFileWrapper::Write(), and ns3::PcapFileWrapper::Write().
|
inline |
Get an approximation of the time stored in this instance in the indicated unit.
Definition at line 399 of file nstime.h.
Referenced by ns3::aodv::RrepHeader::RrepHeader(), ns3::PieQueueDisc::CalculateP(), ns3::TcpLedbat::CongestionAvoidance(), ns3::TraceFadingLossModel::DoCalcRxPowerSpectralDensity(), ns3::PieQueueDisc::DoEnqueue(), ThreeGppAntennaSetupChangedTest::DoGetChannel(), ThreeGppChannelMatrixUpdateTest::DoGetChannel(), ns3::A3RsrpHandoverAlgorithm::DoInitialize(), ns3::LteRlcAm::DoReportBufferStatus(), ns3::LteRlcTm::DoReportBufferStatus(), ns3::LteRlcUm::DoReportBufferStatus(), LenaDataPhyErrorModelTestCase::DoRun(), LenaDlCtrlPhyErrorModelTestCase::DoRun(), LteUeMeasurementsHandoverTestCase::DoRun(), Ns3TcpCubicTestCase::DoRun(), ns3::TcpOptionTS::ElapsedTimeFromTsValue(), ns3::LteSpectrumPhy::EndRxData(), LteHandoverTargetTestCase::HandoverStartCallback(), ns3::TcpYeah::IncreaseWindow(), TcpVegasTest::IncreaseWindow(), ns3::TraceFadingLossModel::LoadTrace(), ns3::TcpOptionTS::NowToTsValue(), PingRtt(), ns3::TcpLp::PktsAcked(), ns3::TcpYeah::PktsAcked(), ns3::TcpHybla::RecalcParam(), ns3::TcpIllinois::RecalcParam(), TcpIllinoisTest::RecalcParam(), ns3::LteUePhy::ReceiveLteControlMessageList(), LteUeMeasurementsHandoverTestCase::RecvMeasurementReportCallback(), LteUeMeasurementsPiecewiseTestCase1::RecvMeasurementReportCallback(), LteUeMeasurementsPiecewiseTestCase2::RecvMeasurementReportCallback(), LteUeMeasurementsPiecewiseTestCase3::RecvMeasurementReportCallback(), ns3::UanHeaderRcCts::Serialize(), ns3::UanHeaderRcCtsGlobal::Serialize(), ns3::UanHeaderRcData::Serialize(), ns3::UanHeaderRcRts::Serialize(), ns3::aodv::RrepHeader::SetHello(), ns3::aodv::RrepHeader::SetLifeTime(), and ns3::LteEnbPhy::StartSubFrame().
|
inline |
Get an approximation of the time stored in this instance in the indicated unit.
Definition at line 389 of file nstime.h.
Referenced by GraphBattery1(), GraphBattery2(), and GraphBattery4().
|
inline |
Get an approximation of the time stored in this instance in the indicated unit.
Definition at line 409 of file nstime.h.
Referenced by ns3::CtrlTriggerHeader::CtrlTriggerHeader(), ns3::OfdmPhy::CalculateDataRate(), ns3::AcousticModemEnergyModel::ChangeState(), ns3::CoDelGetTime(), ns3::HePhy::ConvertHeTbPpduDurationToLSigLength(), CobaltQueueDiscMarkTest::Dequeue(), ns3::MinstrelHtWifiManager::DoGetDataTxVector(), ns3::LtePdcp::DoReceivePdu(), ns3::LteRlcAm::DoReceivePdu(), ns3::LteRlcSm::DoReceivePdu(), ns3::LteRlcUm::DoReceivePdu(), TimeInputOutputTestCase::DoRun(), anonymous_namespace{sample-show-progress.cc}::Hold::Event(), ns3::EhtPhy::GetDataRate(), ns3::HePhy::GetDataRate(), ns3::HtPhy::GetDataRate(), ns3::VhtPhy::GetDataRate(), ns3::HePpdu::GetGuardIntervalAndNltfEncoding(), ns3::HtPhy::GetNumberBccEncoders(), ns3::VhtPhy::GetNumberBccEncoders(), ns3::HtPhy::GetPayloadDuration(), ns3::OfdmPhy::GetPayloadDuration(), ns3::HePhy::GetSymbolDuration(), ns3::HtPhy::GetSymbolDuration(), ns3::Ipv4ClickRouting::GetTimevalFromNow(), SimulatorEventsTestCase::NowUs(), ns3::PdcpTag::Serialize(), ns3::RlcTag::Serialize(), ns3::WifiMacHeader::SetDuration(), ns3::CtrlTriggerHeader::SetGiAndLtfType(), ns3::HeConfiguration::SetGuardInterval(), ns3::HtPpdu::SetHtSigHeader(), ns3::HePpdu::SetLSigHeader(), ns3::HtPpdu::SetLSigHeader(), ns3::VhtPpdu::SetLSigHeader(), ns3::HePhy::SetTrigVector(), ns3::VhtPpdu::SetVhtSigHeader(), ns3::CobaltQueueDisc::Time2CoDel(), ns3::CoDelQueueDisc::Time2CoDel(), ns3::energy::BasicEnergyHarvester::UpdateHarvestedPower(), ns3::PcapFileWrapper::Write(), ns3::PcapFileWrapper::Write(), and ns3::PcapFileWrapper::Write().
|
inline |
Get an approximation of the time stored in this instance in the indicated unit.
Definition at line 414 of file nstime.h.
Referenced by ns3::Ipv4ClickRouting::GetTimevalFromNow().
|
static |
Definition at line 402 of file time.cc.
References PeekResolution(), and ns3::Time::Resolution::unit.
Referenced by ns3::DefaultTimePrinter(), DataRateTestCase1::DoRun(), and ns3::operator<<().
|
inline |
Get an approximation of the time stored in this instance in the indicated unit.
Definition at line 394 of file nstime.h.
Referenced by ns3::RttEstimator::RttEstimator(), ns3::dot11s::HwmpRtable::AddReactivePath(), ns3::AsciiPhyReceiveSinkWithContext(), ns3::AsciiPhyReceiveSinkWithoutContext(), ns3::AsciiPhyRxOkEvent(), ns3::AsciiPhyTransmitSinkWithContext(), ns3::AsciiPhyTransmitSinkWithoutContext(), ns3::AsciiPhyTxEvent(), ns3::WimaxHelper::AsciiRxEvent(), ns3::WimaxHelper::AsciiTxEvent(), ns3::RandomWalk2dOutdoorMobilityModel::AvoidBuilding(), BackoffTrace(), BytesInQueueTrace(), ns3::ThreeGppSpectrumPropagationLossModel::CalcBeamformingGain(), ns3::InterferenceHelper::CalculateChunkSuccessRate(), ns3::SimpleOfdmWimaxPhy::CalculateDataRate(), ns3::PieQueueDisc::CalculateP(), ns3::InterferenceHelper::CalculatePayloadChunkSuccessRate(), ns3::energy::GenericBatteryModel::CalculateRemainingEnergy(), TcpYeahDecrementTest::CalculateSsThresh(), CalculateThroughput(), ns3::LteUeRrc::CancelEnteringTrigger(), ns3::LteUeRrc::CancelEnteringTrigger(), ns3::LteUeRrc::CancelLeavingTrigger(), ns3::LteUeRrc::CancelLeavingTrigger(), ns3::lrwpan::LrWpanCsmaCa::CanProceed(), ns3::AcousticModemEnergyModel::ChangeState(), CheckQueueDiscSize(), CheckQueueSize(), CheckQueueSize(), CheckQueueSize(), CheckT1QueueSize(), CheckT2QueueSize(), ThreeGppHttpObjectTestCase::ClientRxDelayCallback(), ThreeGppHttpObjectTestCase::ClientRxRttCallback(), ns3::CobaltQueueDisc::CobaltShouldDrop(), ns3::UanMacRcGw::ComputeAlpha(), ns3::UanMacRcGw::ComputeExpS(), ComputeSnr(), ComputeSnr(), ComputeSnr(), Ns2MobilityHelperTest::CourseChange(), WaypointMobilityModelNotifyTest::CourseChangeCallback(), ns3::AnimationInterface::CsmaPhyTxEndTrace(), CwndChange(), CwndChange(), CwndChange(), CwndTrace(), CwndTracer(), CwndTracer(), CwndTracer(), Ns3TcpLossTestCase::CwndTracer(), CwTrace(), LrWpanDataIfsTestCase::DataReceivedDev0(), LrWpanDataIfsTestCase::DataReceivedDev1(), CobaltQueueDiscCeThresholdTest::DequeueWithDelay(), CobaltQueueDiscEnhancedBlueTest::DequeueWithDelay(), ns3::AnimationInterface::DevTxTrace(), ns3::MacStatsCalculator::DlScheduling(), ns3::TraceFadingLossModel::DoCalcRxPowerSpectralDensity(), ns3::CoDelQueueDisc::DoDequeue(), ns3::PieQueueDisc::DoDequeue(), ns3::TbfQueueDisc::DoDequeue(), ns3::SimpleOfdmWimaxPhy::DoGetFrameDurationCode(), ns3::SimpleOfdmWimaxPhy::DoGetNrBytes(), ns3::SimpleOfdmWimaxPhy::DoGetNrSymbols(), ns3::dot11s::HwmpProtocol::DoInitialize(), ns3::MeshWifiInterfaceMac::DoInitialize(), ns3::Rip::DoInitialize(), ns3::RipNg::DoInitialize(), TcpHyblaIncrementTest::DoRun(), TcpVenoTest::DoRun(), TimeWithSignTestCase::DoRun(), ns3::SimpleOfdmWimaxPhy::DoSetPhyParameters(), ns3::GaussMarkovMobilityModel::DoWalk(), ns3::RandomWalk2dMobilityModel::DoWalk(), ns3::RandomWalk2dOutdoorMobilityModel::DoWalk(), DropAtQueue(), ns3::PieQueueDisc::DropEarly(), DroppingStateTracer(), ns3::LteChunkProcessor::End(), ns3::BaseStationNetDevice::EndDlSubFrame(), ns3::BaseStationNetDevice::EndUlSubFrame(), CobaltQueueDiscCeThresholdTest::EnqueueWithDelay(), ns3::TcpWestwoodPlus::EstimateBW(), ns3::LteChunkProcessor::EvaluateChunk(), ns3::ShannonSpectrumErrorModel::EvaluateChunk(), EveryDropTracer(), anonymous_namespace{sample-simulator.cc}::ExampleFunction(), ns3::SpectrumAnalyzer::GenerateReport(), ns3::TcpRateLinux::GenerateSample(), GenerateTraffic(), ns3::UanMacRcGw::GetExpPdk(), ns3::lrwpan::LrWpanCsmaCa::GetTimeToNextSlot(), ns3::Ipv4ClickRouting::GetTimevalFromNow(), ns3::energy::SimpleDeviceEnergyModel::GetTotalEnergyConsumption(), ns3::JakesProcess::Oscillator::GetValueAt(), GoodputSampling(), anonymous_namespace{sample-simulator.cc}::MyModel::HandleEvent(), Ipv4DynamicGlobalRoutingTestCase::HandleRead(), ns3::TcpVegas::IncreaseWindow(), ns3::TcpVeno::IncreaseWindow(), ns3::TcpYeah::IncreaseWindow(), TcpYeahIncrementTest::IncreaseWindow(), InFlightTracer(), ns3::RedQueueDisc::InitializeParams(), ns3::TcpBbr::InitPacingRate(), ns3::SubscriberStationNetDevice::InitSubscriberStationNetDevice(), ns3::RraaWifiManager::InitThresholds(), ns3::RrpaaWifiManager::InitThresholds(), ns3::Ipv4L3ProtocolDropSinkWithContext(), ns3::Ipv4L3ProtocolDropSinkWithoutContext(), ns3::Ipv4L3ProtocolRxSinkWithContext(), ns3::Ipv4L3ProtocolRxSinkWithoutContext(), ns3::Ipv4L3ProtocolTxSinkWithContext(), ns3::Ipv4L3ProtocolTxSinkWithoutContext(), ns3::Ipv6L3ProtocolDropSinkWithContext(), ns3::Ipv6L3ProtocolDropSinkWithoutContext(), ns3::Ipv6L3ProtocolRxSinkWithContext(), ns3::Ipv6L3ProtocolRxSinkWithoutContext(), ns3::Ipv6L3ProtocolTxSinkWithContext(), ns3::Ipv6L3ProtocolTxSinkWithoutContext(), LimitsTrace(), MacRxTrace(), MacTxTrace(), modify(), ns3::TcpSocketBase::NewAck(), NextRxTracer(), NextTxTracer(), ns3::operator*(), ns3::operator*(), ns3::operator<<(), PacingRateTracer(), PacketDequeue(), PhyStateTrace(), PhyTxTrace(), ns3::TcpHtcp::PktsAcked(), ns3::Ipv4RoutingHelper::PrintArpCache(), ns3::Ipv4RoutingHelper::PrintArpCacheEvery(), PrintFairness(), IpAddressHelper::PrintIpAddresses(), PrintPosition(), PrintProgress(), PrintReceivedPacket(), PrintReceivedPacket(), PrintReceivedPacket(), PrintThroughput(), ns3::AnimationInterface::PurgePendingPackets(), ns3::lrwpan::LrWpanCsmaCa::RandomBackoffDelay(), anonymous_namespace{sample-simulator.cc}::RandomFunction(), ns3::RandomWalk2dOutdoorMobilityModel::Rebound(), ns3::OpenFlowSwitchNetDevice::ReceiveFromDevice(), ns3::ofi::LearningController::ReceiveFromSwitch(), ns3::Dhcp6Client::ReceiveMflag(), RemainingEnergyTrace(), ns3::Dhcp6Server::RenewRebindLeases(), anonymous_namespace{sample-log-time-format.cc}::ReplacementTimePrinter(), ns3::dot11s::HwmpProtocol::Report(), ns3::dot11s::PeerLink::Report(), ns3::flame::FlameProtocol::Report(), ns3::MeshHelper::Report(), ns3::MeshWifiInterfaceMac::Report(), ns3::PhyStatsCalculator::ReportCurrentCellRsrpSinr(), ns3::PhyStatsCalculator::ReportInterference(), ns3::FlowMonitor::ReportLastRx(), ns3::PhyStatsCalculator::ReportUeSinr(), SampleEmitter::Reschedule(), Experiment::ResetData(), NetAnimExperiment::ResetData(), ResetTrace(), TcpBytesInFlightTest::RTOExpired(), RtoTracer(), TcpRttEstimationTest::RttTrace(), RttTracer(), PingTestCase::RttTraceSink(), Experiment::Run(), RxEvent(), RxTracer(), ns3::DhcpServer::SendAck(), ns3::Dhcp6Server::SendAdvertise(), ns3::TcpSocketBase::SendDataPacket(), ns3::TcpSocketCongestedRouter::SendDataPacket(), TcpDctcpCongestedRouter::SendDataPacket(), ns3::TcpSocketBase::SendEmptyPacket(), ns3::TcpSocketSmallAcks::SendEmptyPacket(), ns3::DhcpServer::SendOffer(), ns3::TcpGeneralTest::SendPacket(), ns3::Dhcp6Server::SendReply(), ns3::Rip::SendTriggeredRouteUpdate(), ns3::RipNg::SendTriggeredRouteUpdate(), ns3::Rip::SendUnsolicitedRouteUpdate(), ns3::RipNg::SendUnsolicitedRouteUpdate(), ns3::dot11s::PeerLink::SetBeaconInformation(), ns3::energy::SimpleDeviceEnergyModel::SetCurrentA(), ns3::ThreeGppHttpVariables::SetEmbeddedObjectGenerationDelay(), ns3::olsr::MessageHeader::Hello::SetHTime(), ns3::ThreeGppHttpVariables::SetMainObjectGenerationDelay(), ns3::ThreeGppHttpVariables::SetParsingTimeMean(), ns3::ThreeGppHttpVariables::SetReadingTimeMean(), ns3::DhcpHeader::SetTime(), ns3::TimeProbe::SetValue(), ns3::olsr::MessageHeader::SetVTime(), showPosition(), SocketPrinter(), SocketSendTrace(), SsThreshTracer(), SsThreshTracer(), ns3::UanMacRcGw::StartCycle(), ns3::BaseStationNetDevice::StartDlSubFrame(), Ns3TcpLossTestCase::StartFlow(), Ns3TcpStateTestCase::StartFlow(), ns3::BaseStationNetDevice::StartFrame(), ns3::BaseStationNetDevice::StartUlSubFrame(), TcPacketsInQueue(), TestDeterministicByTime(), Throughput(), TraceDrop(), TraceDropsFrequency(), TraceFirstCwnd(), TraceFirstDctcp(), TraceFirstRtt(), TraceFirstThroughput(), TraceMark(), TraceMarksFrequency(), TraceN0Cwnd(), TraceN0Rtt(), TraceN0Throughput(), TraceN1Cwnd(), TraceN1Rtt(), TraceN1Throughput(), TracePingRtt(), TracePingRtt(), TraceQueueDrop(), TraceQueueLength(), TraceQueueLength(), TraceQueueMark(), TraceSecondCwnd(), TraceSecondDctcp(), TraceSecondRtt(), TraceSecondThroughput(), ns3::TimeProbe::TraceSink(), TraceThroughput(), TcpPacingTest::Tx(), TxTracer(), ns3::MacStatsCalculator::UlScheduling(), ns3::ConstantVelocityHelper::Update(), ns3::TcpCubic::Update(), ns3::TcpBbr::UpdateAckAggregation(), ns3::TcpHtcp::UpdateAlpha(), ns3::TcpLedbat::UpdateBaseDelay(), TcpPacingTest::UpdateExpectedInterval(), ns3::energy::BasicEnergyHarvester::UpdateHarvestedPower(), ns3::TcpSocketBase::UpdatePacingRate(), ns3::WriteAveragePowerSpectralDensityReport(), ns3::RadioBearerStatsCalculator::WriteDlResults(), ns3::RadioBearerStatsCalculator::WriteUlResults(), Ns3TcpLossTestCase::WriteUntilBufferFull(), and Ns3TcpStateTestCase::WriteUntilBufferFull().
|
inline |
Get the raw time value, in the current resolution unit.
Definition at line 436 of file nstime.h.
Referenced by EmlsrOperationsTestBase::CheckAuxPhysSleepMode(), ns3::lrwpan::LrWpanPhy::EndEd(), ns3::lrwpan::LrWpanPhy::EndRx(), ns3::WaveformGenerator::GenerateWaveform(), ns3::Radvd::HandleRead(), ns3::Synchronizer::NanosecondToTimeStep(), ns3::DistributedSimulatorImpl::NextTs(), ns3::OmnetDataOutput::OmnetOutputCallback::OutputSingleton(), ns3::SqliteDataOutput::SqliteOutputCallback::OutputSingleton(), ns3::RealtimeSimulatorImpl::ProcessOneEvent(), ns3::DefaultSimulatorImpl::Schedule(), ns3::DistributedSimulatorImpl::Schedule(), ns3::NullMessageSimulatorImpl::Schedule(), ns3::RealtimeSimulatorImpl::Schedule(), ns3::RealtimeSimulatorImpl::ScheduleRealtimeWithContext(), ns3::DefaultSimulatorImpl::ScheduleWithContext(), ns3::DistributedSimulatorImpl::ScheduleWithContext(), ns3::NullMessageSimulatorImpl::ScheduleWithContext(), ns3::RealtimeSimulatorImpl::ScheduleWithContext(), ns3::NullMessageMpiInterface::SendNullMessage(), ns3::GrantedTimeWindowMpiInterface::SendPacket(), ns3::NullMessageMpiInterface::SendPacket(), ns3::AmpduTag::Serialize(), ns3::SeqTsEchoHeader::Serialize(), ns3::TimestampTag::Serialize(), ns3::ThreeGppHttpHeader::SetClientTs(), ns3::ThreeGppHttpHeader::SetServerTs(), ns3::lrwpan::LrWpanPhy::StartRx(), ns3::DefaultSimulatorImpl::Stop(), ns3::DistributedSimulatorImpl::Stop(), ns3::NullMessageSimulatorImpl::Stop(), TimeSimpleTestCase::TestDivisionByIntegerTypes(), TimeSimpleTestCase::TestMultiplicationByIntegerTypes(), ns3::DesMetrics::TraceWithContext(), and WifiFilsFrameTest::ValidateTiming().
|
inline |
|
inline |
Exactly equivalent to t <= 0
.
true
if the time is negative or zero, false
otherwise. Definition at line 315 of file nstime.h.
Referenced by ns3::ShowProgress::CheckProgress(), ns3::RandomWalk2dOutdoorMobilityModel::DoWalk(), ns3::QosFrameExchangeManager::IsWithinSizeAndTimeLimits(), ns3::UanPdp::SumTapsC(), ns3::UanPdp::SumTapsFromMaxC(), ns3::UanPdp::SumTapsFromMaxNc(), ns3::UanPdp::SumTapsNc(), and ns3::RrMultiUserScheduler::TrySendingBasicTf().
|
inline |
Exactly equivalent to t >= 0
.
true
if the time is positive or zero, false
otherwise. Definition at line 324 of file nstime.h.
Referenced by ThreeGppHttpObjectTestCase::ThreeGppHttpObjectTestCase(), ns3::energy::BasicEnergySource::CalculateRemainingEnergy(), ns3::WifiCoTraceHelper::NotifyWifiPhyState(), ns3::TcpLedbat::PktsAcked(), ns3::DefaultSimulatorImpl::Schedule(), ns3::DistributedSimulatorImpl::Schedule(), ns3::NullMessageSimulatorImpl::Schedule(), ns3::RealtimeSimulatorImpl::Schedule(), ns3::NullMessageSimulatorImpl::ScheduleWithContext(), ns3::Txop::SetTxopLimit(), ns3::UanPdp::SumTapsC(), and ns3::UanPdp::SumTapsNc().
|
inline |
Exactly equivalent to t < 0
.
true
if the time is strictly negative, false
otherwise. Definition at line 333 of file nstime.h.
Referenced by ns3::FrameExchangeManager::DoSendCtsAfterRts(), ns3::QosTxop::GetRemainingTxop(), ns3::aodv::IsExpired::operator()(), ns3::dsdv::IsExpired::operator()(), ns3::dsr::IsExpired::operator()(), ns3::dsr::IsExpired::operator()(), ns3::dsr::IsExpired::operator()(), ns3::dsr::IsExpired::operator()(), ns3::UanMacRc::ScheduleData(), ns3::HtFrameExchangeManager::SendBlockAck(), and ns3::FrameExchangeManager::SendNormalAck().
|
inline |
Exactly equivalent to t > 0
.
true
if the time is strictly positive, false
otherwise. Definition at line 342 of file nstime.h.
Referenced by ns3::MultiUserScheduler::AccessReqTimeout(), ns3::dsr::DsrRouteCache::AddRoute(), ns3::DistributedSimulatorImpl::BoundLookAhead(), ns3::HePhy::CalculateTxDuration(), ns3::WifiPhy::CalculateTxDuration(), EmlsrDlTxopTest::CheckInitialControlFrame(), ns3::PieQueueDisc::DoDequeue(), ns3::MultiUserScheduler::DoInitialize(), LrWpanAckTestCase::DoRun(), LteHandoverDelayTestCase::EnbHandoverEndOkCallback(), ns3::PhyEntity::GetCcaIndication(), ns3::EhtPhy::GetCcaIndicationOnSecondary(), ns3::HtPhy::GetCcaIndicationOnSecondary(), ns3::aodv::RoutingProtocol::HelloTimerExpire(), ns3::QosFrameExchangeManager::IsWithinSizeAndTimeLimits(), ns3::olsr::RoutingProtocol::LinkSensing(), ns3::WifiRemoteStationManager::NeedRts(), ns3::MultiUserScheduler::NotifyAccessGranted(), TestPhyListener::NotifyCcaBusyStart(), ns3::StaWifiMac::NotifySwitchingEmlsrLink(), ns3::HeFrameExchangeManager::ProtectionCompleted(), ns3::NullMessageMpiInterface::ReceiveMessages(), ns3::UanMacRc::ReceiveOkFromPhy(), ns3::Ipv4L3Protocol::RemoveDuplicates(), ns3::FlowMonitor::ReportLastRx(), ns3::FrameExchangeManager::RxStartIndication(), ns3::MultiUserScheduler::SetAccessReqInterval(), ns3::MuEdcaParameterSet::SetMuEdcaTimer(), ns3::QosFrameExchangeManager::StartTransmission(), ns3::DefaultEmlsrManager::SwitchAuxPhyAfterMainPhy(), ns3::AdvancedEmlsrManager::SwitchMainPhyIfTxopToBeGainedByAuxPhy(), ns3::QosFrameExchangeManager::TransmissionFailed(), ns3::QosFrameExchangeManager::TransmissionSucceeded(), LteHandoverDelayTestCase::UeHandoverEndOkCallback(), ns3::Ipv4L3Protocol::UpdateDuplicate(), and ns3::EhtFrameExchangeManager::UpdateTxopEndOnRxStartIndication().
|
inline |
Exactly equivalent to t == 0
.
true
if the time is zero, false
otherwise. Definition at line 306 of file nstime.h.
Referenced by ns3::IdentifierOption::IdentifierOption(), ns3::SixLowPanNetDevice::AddContext(), ns3::InterferenceHelper::CalculateChunkSuccessRate(), ns3::InterferenceHelper::CalculatePayloadChunkSuccessRate(), ns3::TcpSocketBase::CalculateRttSample(), ns3::ThreeGppChannelModel::ChannelParamsNeedsUpdate(), EmlsrDlTxopTest::CheckBlockAck(), EmlsrUlTxopTest::CheckCtsFrames(), EmlsrDlTxopTest::CheckQosFrames(), GcrBaTest::CheckResults(), EmlsrUlTxopTest::CheckRtsFrames(), ns3::WifiCoTraceHelper::ComputePercentage(), ns3::FdNetDevice::DoInitialize(), WifiPrimaryChannelsTest::DoSendHeTbPpdu(), ns3::EhtFrameExchangeManager::EmlsrSwitchToListening(), ns3::TrickleTimer::Enable(), ns3::TcpWestwoodPlus::EstimateBW(), ns3::TcpSocketBase::EstimateRtt(), ns3::TcpRateLinux::GenerateSample(), ns3::ThreeGppChannelConditionModel::GetChannelCondition(), ns3::QosFrameExchangeManager::GetCtsToSelfDurationId(), ns3::QosFrameExchangeManager::GetFrameDurationId(), ns3::ApWifiMac::GetMuEdcaParameterSet(), ns3::HeFrameExchangeManager::GetMuRtsDurationId(), ns3::HtFrameExchangeManager::GetPsduDurationId(), ns3::QosFrameExchangeManager::GetRtsDurationId(), ns3::dsdv::RoutingProtocol::GetSettlingTime(), ns3::TcpBbr::HandleProbeRTT(), ns3::Icmpv6L4Protocol::HandleRsTimeout(), ns3::Probe::IsEnabled(), ns3::TcpRateOps::TcpRateSample::IsValid(), ns3::lrwpan::LrWpanMac::PdDataConfirm(), ns3::TcpIllinois::PktsAcked(), ns3::TcpLp::PktsAcked(), ns3::TcpVegas::PktsAcked(), ns3::TcpVeno::PktsAcked(), ns3::TcpWestwoodPlus::PktsAcked(), ns3::TcpYeah::PktsAcked(), GcrBaTest::Receive(), ns3::ThreeGppHttpClient::ReceiveEmbeddedObject(), ns3::ofi::LearningController::ReceiveFromSwitch(), ns3::ThreeGppHttpClient::ReceiveMainObject(), ns3::flame::FlameProtocol::RemoveRoutingStuff(), ns3::PhyEntity::ScheduleEndOfMpdus(), ns3::PacketSocketClient::Send(), ns3::LteTestMac::SendTxOpportunity(), ns3::dot11s::PeerManagementProtocolMac::SetBeaconShift(), ns3::LteTestMac::SetTxOpportunityMode(), ns3::LteTestRrc::Start(), EmlsrDlTxopTest::StartTraffic(), ns3::QosFrameExchangeManager::StartTransmission(), ns3::UanPdp::SumTapsFromMaxC(), ns3::UanPdp::SumTapsFromMaxNc(), ns3::WifiPhyStateHelper::SwitchToChannelSwitching(), ns3::HeFrameExchangeManager::TransmissionSucceeded(), ns3::HtFrameExchangeManager::TransmissionSucceeded(), EmlsrUlOfdmaTest::Transmit(), GcrBaTest::Transmit(), ns3::RrMultiUserScheduler::TrySendingBasicTf(), PingTestCase::TxTraceSink(), and ns3::TcpBbr::UpdateBottleneckBandwidth().
|
staticprivate |
Record a Time instance with the MarkedTimes.
[in] | time | The Time instance to record. |
Definition at line 320 of file time.cc.
References ns3::g_markingMutex, g_markingTimes, NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_LOGIC, and NS_LOG_WARN.
Referenced by Time().
|
staticprivate |
Null check for g_markingTimes from outside time.cc.
true
if g_markingTimes is not nullThe inline Time ctors need to check if g_markingTimes is allocated before calling Mark(). Likewise, the dtor also needs to check before calling Clear(). On Windows, attempting to access g_markingTimes directly from outside the compilation unit is an access violation so this method is provided to work around that limitation.
Definition at line 284 of file time.cc.
References g_markingTimes.
Referenced by Time().
|
inlinestatic |
Maximum representable Time Not to be confused with Max(Time,Time).
Definition at line 288 of file nstime.h.
Referenced by ns3::FqCobaltQueueDisc::CheckConfig(), ns3::FqCoDelQueueDisc::CheckConfig(), ns3::FqPieQueueDisc::CheckConfig(), ns3::TcpBbr::CongestionStateSet(), ns3::PieQueueDisc::DoEnqueue(), ns3::WifiMacQueue::DoEnqueue(), CobaltQueueDiscBasicEnqueueDequeue::DoRun(), CobaltQueueDiscCeThresholdTest::DoRun(), CobaltQueueDiscEnhancedBlueTest::DoRun(), CobaltQueueDiscMarkTest::DoRun(), FqCobaltQueueDiscEcnMarking::DoRun(), ns3::TcpVegas::EnableVegas(), ns3::TcpVeno::EnableVeno(), ns3::TcpYeah::EnableYeah(), ns3::TcpHtcp::GetSsThresh(), ns3::FlowMonitor::GetStatsForFlow(), ns3::ArpCache::Entry::GetTimeout(), ns3::CobaltQueueDisc::GetTypeId(), ns3::CoDelQueueDisc::GetTypeId(), ns3::FqCobaltQueueDisc::GetTypeId(), ns3::FqCoDelQueueDisc::GetTypeId(), ns3::FqPieQueueDisc::GetTypeId(), ns3::PieQueueDisc::GetTypeId(), ns3::TcpVegas::IncreaseWindow(), ns3::TcpVeno::IncreaseWindow(), ns3::TcpYeah::IncreaseWindow(), ns3::TcpBbr::InFlight(), ns3::TcpBbr::InitPacingRate(), ns3::MakeTimeChecker(), ns3::MakeTimeChecker(), ns3::Dhcp6Client::ProcessReply(), CobaltQueueDiscDropTest::RunDropTest(), ns3::TcpBbr::SetPacingRate(), ns3::TcpRateLinux::SkbDelivered(), and TcpRateLinuxBasicTest::SkbDelivered().
|
inlinestatic |
Minimum representable Time Not to be confused with Min(Time,Time).
Definition at line 278 of file nstime.h.
Referenced by ns3::RrMultiUserScheduler::ComputeDlMuInfo(), ns3::TcpCubic::CubicReset(), AmpduAggregationTest::DoRun(), EhtAggregationTest::DoRun(), HeAggregationTest::DoRun(), TwoLevelAggregationTest::DoRun(), ns3::QosTxop::GetNextMpdu(), ns3::TcpBic::GetSsThresh(), ns3::TcpCubic::GetSsThresh(), ns3::TcpHtcp::GetSsThresh(), ns3::TcpCubic::HystartReset(), ns3::TcpCubic::HystartUpdate(), ns3::QosFrameExchangeManager::IsWithinSizeAndTimeLimits(), ns3::MakeTimeChecker(), ns3::QosTxop::NotifyChannelAccessed(), ns3::TcpCubic::PktsAcked(), TestMultiUserScheduler::SelectTxFormat(), ns3::QosFrameExchangeManager::StartTransmission(), ns3::QosFrameExchangeManager::TryAddMpdu(), ns3::RrMultiUserScheduler::TrySendingBasicTf(), ns3::RrMultiUserScheduler::TrySendingBsrpTf(), ns3::RrMultiUserScheduler::TrySendingDlMuPpdu(), ns3::TcpBic::Update(), and ns3::TcpCubic::Update().
|
inlinestaticprivate |
Get the Information record for timeUnit for the current Resolution.
[in] | timeUnit | The Unit to get Information for |
|
inlinestaticprivate |
Get the current Resolution.
Definition at line 682 of file nstime.h.
Referenced by GetResolution(), and SetResolution().
Round a Time to a specific unit.
Rounding is to nearest integer.
[in] | unit | The unit to round to. |
Definition at line 631 of file nstime.h.
Referenced by ns3::UanHeaderRcCts::Serialize(), ns3::UanHeaderRcCtsGlobal::Serialize(), ns3::UanHeaderRcData::Serialize(), and ns3::UanHeaderRcRts::Serialize().
|
staticprivate |
Set the default resolution.
Definition at line 192 of file time.cc.
References NS, NS_LOG_FUNCTION_NOARGS, and SetResolution().
|
static |
[in] | resolution | The new resolution to use |
Change the global resolution used to convert all user-provided time values in Time objects and Time objects in user-expected time units.
Definition at line 202 of file time.cc.
References NS_LOG_FUNCTION, PeekResolution(), and SetResolution().
Referenced by AttributeTestCase< T >::DoRun(), DataRateTestCase1::DoRun(), TimeSimpleTestCase::DoRun(), SetDefaultNsResolution(), and SetResolution().
|
staticprivate |
Set the current Resolution.
[in] | unit | The unit to use as the new resolution. |
[in,out] | resolution | The Resolution record to update. |
[in] | convert | Whether to convert existing Time objects to the new resolution. |
Definition at line 210 of file time.cc.
References ConvertTimes(), ns3::Time::Information::factor, ns3::Time::Information::fromMul, ns3::Time::Resolution::info, ns3::int64x64_t::Invert(), ns3::Time::Information::isValid, LAST, NS_ASSERT, NS_LOG_DEBUG, NS_LOG_FUNCTION, ns3::Time::Information::timeFrom, ns3::Time::Information::timeTo, ns3::Time::Information::toMul, and ns3::Time::Resolution::unit.
|
static |
Function to force static initialization of Time.
true
on the first call Definition at line 86 of file time.cc.
References ns3::g_markingMutex, g_markingTimes, and NS_LOG_ERROR.
|
inline |
Get the Time value expressed in a particular unit.
[in] | unit | The desired unit |
Definition at line 599 of file nstime.h.
References ns3::Time::Information::isValid, ns3::int64x64_t::MulByInvert(), NS_ASSERT_MSG, ns3::Time::Information::timeTo, and ns3::Time::Information::toMul.
Get the Time value expressed in a particular unit.
[in] | unit | The desired unit |
Definition at line 588 of file nstime.h.
Referenced by ns3::RttMeanDeviation::FloatingPointUpdate(), Ipv4DeduplicationTest::MakeName(), SojournTimeTrace(), and ns3::RrMultiUserScheduler::UpdateCredits().
|
inline |
Get the Time value expressed in a particular unit.
[in] | unit | The desired unit |
Definition at line 564 of file nstime.h.
References ns3::Time::Information::factor, ns3::Time::Information::isValid, NS_ASSERT_MSG, and ns3::Time::Information::toMul.
Referenced by ConvertTimes(), and Experiment::Run().
Integer quotient from dividing two Times.
This is the same as the "normal" C++ integer division, which truncates (discarding any remainder).
As usual, if ta
, and tb
are both Times
[in] | lhs | The first value |
[in] | rhs | The second value |
lhs / rhs
.
|
related |
|
friend |
|
friend |
|
friend |
Scale a Time by a numeric value.
This overload handles the case where the scale value comes before the Time value. It swaps the arguments so that the Time argument comes first and calls the appropriate overload of operator*
T | Arithmetic data type (int, long, float, etc.) |
[in] | lhs | The scale value |
[in] | rhs | The Time instance to scale |
|
friend |
|
friend |
Exact division, returning a dimensionless fixed point number.
This can be truncated to integer, or converted to double (with loss of precision). Assuming ta
and tb
are Times:
[in] | lhs | The first value |
[in] | rhs | The second value |
|
related |
|
staticprivate |
Record of outstanding Time objects which will need conversion when the resolution is set.
Use a classic static variable so we can check in Time ctors without a function call.
We'd really like to initialize this here, but we don't want to require C++0x, so we init in time.cc. To ensure that happens before first use, we add a call to StaticInit (below) to every compilation unit which includes nstime.h.
Definition at line 749 of file nstime.h.
Referenced by Clear(), ClearMarkedTimes(), ConvertTimes(), Mark(), MarkingTimes(), and StaticInit().
|
private |
Virtual time value, in the current unit.
Definition at line 868 of file nstime.h.
Referenced by Compare(), ConvertTimes(), and operator=().