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 | |
enum | Unit { Y = 0, D = 1, H = 2, MIN = 3, S = 4, MS = 5, US = 6, NS = 7, PS = 8, FS = 9, LAST = 10 } |
The unit to use to interpret a number representing time. More... | |
Public Member Functions | |
Time () | |
Time (const Time &o) | |
Time (double v) | |
Time (int v) | |
Time (long int v) | |
Time (long long int v) | |
Time (unsigned int v) | |
Time (unsigned long int v) | |
Time (unsigned long long int v) | |
Time (const std::string &s) | |
Construct Time object from common time expressions like "1ms". More... | |
Time (const int64x64_t &value) | |
~Time () | |
Destructor. More... | |
TimeWithUnit | As (const enum Unit unit) const |
Attach a unit to a Time, to facilitate output in a specific unit. More... | |
int | Compare (const Time &o) const |
double | GetDays (void) const |
double | GetDouble (void) const |
int64_t | GetFemtoSeconds (void) const |
double | GetHours (void) const |
int64_t | GetInteger (void) const |
int64_t | GetMicroSeconds (void) const |
int64_t | GetMilliSeconds (void) const |
double | GetMinutes (void) const |
int64_t | GetNanoSeconds (void) const |
int64_t | GetPicoSeconds (void) const |
double | GetSeconds (void) const |
int64_t | GetTimeStep (void) const |
double | GetYears (void) const |
bool | IsNegative (void) const |
bool | IsPositive (void) const |
bool | IsStrictlyNegative (void) const |
bool | IsStrictlyPositive (void) const |
bool | IsZero (void) const |
operator int64x64_t () const | |
Time & | operator= (const Time &o) |
int64x64_t | To (enum Unit timeUnit) const |
double | ToDouble (enum Unit timeUnit) const |
int64_t | ToInteger (enum Unit timeUnit) const |
Static Public Member Functions | |
static Time | From (const int64x64_t &from, enum Unit timeUnit) |
static Time | From (const int64x64_t &value) |
static Time | FromDouble (double value, enum Unit timeUnit) |
static Time | FromInteger (uint64_t value, enum Unit timeUnit) |
static enum Unit | GetResolution (void) |
static Time | Max () |
Maximum representable Time. More... | |
static Time | Min () |
Minimum representable Time. More... | |
static void | SetResolution (enum Unit resolution) |
static bool | StaticInit () |
Function to force static initialization of Time. More... | |
Private Types | |
typedef std::set< Time * > | MarkedTimes |
Record all instances of Time, so we can rescale them when the resolution changes. More... | |
Static Private Member Functions | |
static void | Clear (Time *const time) |
Remove a Time instance from the MarkedTimes, called by ~Time() More... | |
static void | ClearMarkedTimes () |
Remove all MarkedTimes. More... | |
static void | ConvertTimes (const enum Unit unit) |
Convert existing Times to the new unit. More... | |
static void | Mark (Time *const time) |
Record a Time instance with the MarkedTimes. More... | |
static struct Information * | PeekInformation (enum Unit timeUnit) |
static struct Resolution * | PeekResolution (void) |
static struct Resolution | SetDefaultNsResolution (void) |
static void | SetResolution (enum Unit unit, struct Resolution *resolution, const bool convert=true) |
Private Attributes | |
int64_t | m_data |
Virtual time value, in the current unit. More... | |
Static Private Attributes | |
static MarkedTimes * | g_markingTimes = 0 |
Record of outstanding Time objects which will need conversion when the resolution is set. More... | |
Friends | |
Time | Abs (const Time &time) |
Absolute value function for Time. More... | |
Time | Max (const Time &ta, const Time &tb) |
Max function for Time. More... | |
Time | Min (const Time &ta, const Time &tb) |
Min function for Time. More... | |
bool | operator!= (const Time &lhs, const Time &rhs) |
Time | operator* (const Time &lhs, const int64_t &rhs) |
Time | operator* (const int64_t &lhs, const Time &rhs) |
Time | operator+ (const Time &lhs, const Time &rhs) |
Time & | operator+= (Time &lhs, const Time &rhs) |
Time | operator- (const Time &lhs, const Time &rhs) |
Time & | operator-= (Time &lhs, const Time &rhs) |
int64_t | operator/ (const Time &lhs, const Time &rhs) |
Time | operator/ (const Time &lhs, const int64_t &rhs) |
bool | operator< (const Time &lhs, const Time &rhs) |
bool | operator<= (const Time &lhs, const Time &rhs) |
bool | operator== (const Time &lhs, const Time &rhs) |
bool | operator> (const Time &lhs, const Time &rhs) |
bool | operator>= (const Time &lhs, const Time &rhs) |
class | Simulator |
Related Functions | |
(Note that these are not member functions.) | |
Time | Days (double days) |
create ns3::Time instances in units of days (equal to 24 hours). More... | |
Time | Days (int64x64_t days) |
Time | FemtoSeconds (uint64_t fs) |
create ns3::Time instances in units of femtoseconds. More... | |
Time | FemtoSeconds (int64x64_t fs) |
SystemMutex & | GetMarkingMutex () |
Time | Hours (double hours) |
create ns3::Time instances in units of hours (equal to 60 minutes). More... | |
Time | Hours (int64x64_t hours) |
Time | MicroSeconds (uint64_t us) |
create ns3::Time instances in units of microseconds. More... | |
Time | MicroSeconds (int64x64_t us) |
Time | MilliSeconds (uint64_t ms) |
create ns3::Time instances in units of milliseconds. More... | |
Time | MilliSeconds (int64x64_t ms) |
Time | Minutes (double minutes) |
create ns3::Time instances in units of minutes (equal to 60 seconds). More... | |
Time | Minutes (int64x64_t minutes) |
Time | NanoSeconds (uint64_t ns) |
create ns3::Time instances in units of nanoseconds. More... | |
Time | NanoSeconds (int64x64_t ns) |
std::ostream & | operator<< (std::ostream &os, const Time &time) |
Time output streamer. More... | |
std::istream & | operator>> (std::istream &is, Time &time) |
Time input streamer. More... | |
Time | PicoSeconds (uint64_t ps) |
create ns3::Time instances in units of picoseconds. More... | |
Time | PicoSeconds (int64x64_t ps) |
Time | Seconds (double seconds) |
create ns3::Time instances in units of seconds. More... | |
Time | Seconds (int64x64_t seconds) |
Time | Years (double years) |
create ns3::Time instances in units of years (equal to 365 days). More... | |
Time | Years (int64x64_t years) |
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, substract, 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 value. 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 range of your simulation. The global simulation time is stored in a 64 bit integer, whose interpretation will depend on the global resolution. Therefore the maximum 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.
enum ns3::Time::Unit |
|
inline |
Definition at line 105 of file nstime.h.
References g_markingTimes, and Mark().
Referenced by From(), FromInteger(), Max(), and Min().
|
inline |
Definition at line 113 of file nstime.h.
References g_markingTimes, and Mark().
|
inlineexplicit |
Definition at line 121 of file nstime.h.
References g_markingTimes, and Mark().
|
inlineexplicit |
Definition at line 129 of file nstime.h.
References g_markingTimes, and Mark().
|
inlineexplicit |
Definition at line 137 of file nstime.h.
References g_markingTimes, and Mark().
|
inlineexplicit |
Definition at line 145 of file nstime.h.
References g_markingTimes, and Mark().
|
inlineexplicit |
Definition at line 153 of file nstime.h.
References g_markingTimes, and Mark().
|
inlineexplicit |
Definition at line 161 of file nstime.h.
References g_markingTimes, and Mark().
|
inlineexplicit |
Definition at line 169 of file nstime.h.
References g_markingTimes, and Mark().
|
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 can be no white space between the numerical portion and the units. Any otherwise malformed string causes a fatal error to occur.
s | The string to parse into a Time |
Definition at line 92 of file time.cc.
References D, FromDouble(), FS, g_markingTimes, H, Mark(), MIN, MS, NS, NS_ABORT_MSG, NS_LOG_FUNCTION, PS, S, US, and Y.
|
inline |
Destructor.
Definition at line 217 of file nstime.h.
References Clear(), and g_markingTimes.
|
inlineexplicit |
Definition at line 480 of file nstime.h.
References g_markingTimes, and Mark().
TimeWithUnit ns3::Time::As | ( | const enum Unit | unit | ) | const |
Attach a unit to a Time, to facilitate output in a specific unit.
For example,
will print +3140.0ms
unit | [in] The unit to use. |
Definition at line 384 of file time.cc.
Referenced by TimeIntputOutputTestCase::DoRun(), and ns3::operator<<().
|
staticprivate |
Remove a Time instance from the MarkedTimes, called by ~Time()
Definition at line 309 of file time.cc.
References g_markingTimes, GetMarkingMutex(), NS_ASSERT, NS_ASSERT_MSG, NS_LOG_FUNCTION, NS_LOG_LOGIC, and NS_LOG_WARN.
Referenced by ~Time().
|
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. Our SystemMutex throws a fatal error if we try to lock it more than once in the same thread (at least in the unix implementation), so calling this function from ConvertTimes is a bad idea.
Instead, we copy this body into ConvertTimes.
Definition at line 252 of file time.cc.
References g_markingTimes, GetMarkingMutex(), NS_LOG_FUNCTION_NOARGS, and NS_LOG_LOGIC.
Referenced by ns3::Simulator::Run().
|
inline |
|
staticprivate |
Convert existing Times to the new unit.
Definition at line 339 of file time.cc.
References g_markingTimes, GetMarkingMutex(), m_data, NS_ASSERT_MSG, NS_LOG_FUNCTION_NOARGS, NS_LOG_LOGIC, and ToInteger().
Referenced by SetResolution().
|
inlinestatic |
Definition at line 446 of file nstime.h.
References ns3::Time::Information::fromMul, ns3::int64x64_t::MulByInvert(), PeekInformation(), Time(), and ns3::Time::Information::timeFrom.
Referenced by Days(), FemtoSeconds(), FromDouble(), Hours(), MicroSeconds(), MilliSeconds(), Minutes(), NanoSeconds(), PicoSeconds(), Seconds(), and Years().
|
inlinestatic |
value | to convert into a Time object |
timeUnit | the unit of the value to convert |
Definition at line 431 of file nstime.h.
References From().
Referenced by Days(), Hours(), ns3::RttMeanDeviation::Measurement(), Minutes(), Seconds(), Time(), and Years().
value | to convert into a Time object |
timeUnit | the unit of the value to convert |
This method interprets the input value according to the input unit and constructs a matching Time object.
Definition at line 390 of file nstime.h.
References ns3::Time::Information::factor, ns3::Time::Information::fromMul, PeekInformation(), and Time().
Referenced by FemtoSeconds(), MicroSeconds(), MilliSeconds(), NanoSeconds(), PicoSeconds(), and ns3::RttMeanDeviation::RetransmitTimeout().
|
inline |
Definition at line 338 of file nstime.h.
References D, and ToDouble().
|
inline |
|
inline |
Definition at line 313 of file nstime.h.
References FS, and ToInteger().
|
inline |
Definition at line 330 of file nstime.h.
References H, and ToDouble().
|
inline |
Definition at line 362 of file nstime.h.
References GetTimeStep().
Referenced by ns3::DistributedSimulatorImpl::CalculateLookAhead(), TimeSimpleTestCase::DoRun(), ns3::NullMessageMpiInterface::SendNullMessage(), ns3::GrantedTimeWindowMpiInterface::SendPacket(), and ns3::NullMessageMpiInterface::SendPacket().
|
inline |
Definition at line 289 of file nstime.h.
References ToInteger(), and US.
Referenced by ns3::dot11s::IeBeaconTiming::BeaconIntervalToU16(), ns3::WifiRemoteStationInfo::CalculateAveragingCoefficient(), ns3::ApWifiMac::DoInitialize(), ns3::dot11s::HwmpProtocol::GetActivePathLifetime(), ns3::NscTcpL4Protocol::gettime(), Ns3TcpStateTestCase::Ipv4L3Tx(), Ns3TcpLossTestCase::Ipv4L3Tx(), Ns3TcpInteroperabilityTestCase::Ipv4L3Tx(), ns3::LrWpanCsmaCa::RandomBackoffDelay(), ns3::MeshWifiInterfaceMac::Receive(), ns3::dot11s::HwmpProtocol::ReceivePreq(), ns3::MeshWifiInterfaceMac::SendBeacon(), ns3::ApWifiMac::SendOneBeacon(), ns3::dot11s::HwmpProtocol::SendProactivePreq(), ns3::ApWifiMac::SendProbeResp(), ns3::dot11s::PeerLink::SetBeaconInformation(), ns3::ApWifiMac::SetBeaconInterval(), ns3::dot11s::PeerLink::SetConfirmTimer(), ns3::WifiMacHeader::SetDuration(), ns3::dot11s::PeerLink::SetHoldingTimer(), ns3::dot11s::PeerLink::SetRetryTimer(), ns3::DcfManager::SetSlot(), ns3::dot11s::IeBeaconTiming::TimestampToU16(), ns3::dot11s::PeerManagementProtocol::TimeToTu(), ns3::MinstrelWifiManager::UpdateStats(), and ns3::PcapFileWrapper::Write().
|
inline |
Definition at line 281 of file nstime.h.
References MS, and ToInteger().
Referenced by ns3::TraceFadingLossModel::DoCalcRxPowerSpectralDensity(), ns3::A3RsrpHandoverAlgorithm::DoInitialize(), ns3::LteRlcTm::DoReportBufferStatus(), ns3::LteRlcUm::DoReportBufferStatus(), ns3::LteRlcAm::DoReportBufferStatus(), RttTestCase::DoRun(), LenaDataPhyErrorModelTestCase::DoRun(), LenaDlCtrlPhyErrorModelTestCase::DoRun(), LteUeMeasurementsHandoverTestCase::DoRun(), ns3::LteSpectrumPhy::EndRxData(), LteHandoverTargetTestCase::HandoverStartCallback(), ns3::TraceFadingLossModel::LoadTrace(), JakesPropagationExample::Next(), ns3::V4Ping::Receive(), ns3::LteUePhy::ReceiveLteControlMessageList(), LteUeMeasurementsPiecewiseTestCase1::RecvMeasurementReportCallback(), LteUeMeasurementsPiecewiseTestCase2::RecvMeasurementReportCallback(), LteUeMeasurementsHandoverTestCase::RecvMeasurementReportCallback(), ns3::aodv::RrepHeader::RrepHeader(), ns3::aodv::RrepHeader::SetHello(), ns3::aodv::RrepHeader::SetLifeTime(), and ns3::LteEnbPhy::StartSubFrame().
|
inline |
Definition at line 322 of file nstime.h.
References MIN, and ToDouble().
|
inline |
Definition at line 297 of file nstime.h.
References NS, and ToInteger().
Referenced by ns3::AcousticModemEnergyModel::ChangeState(), ns3::WifiRadioEnergyModel::ChangeState(), ns3::MacStatsCalculator::DlScheduling(), ns3::LteRlcUm::DoReceivePdu(), ns3::LteRlcTm::DoReceivePdu(), ns3::LteRlcAm::DoReceivePdu(), ns3::LtePdcp::DoReceivePdu(), ns3::LteRlcSm::DoReceivePdu(), TimeSimpleTestCase::DoRun(), OcbWifiMacTestCase::DoRun(), TimeIntputOutputTestCase::DoRun(), OcbWifiMacTestCase::MacAssoc(), SimulatorEventsTestCase::NowUs(), OcbWifiMacTestCase::PhyRxOkTrace(), OcbWifiMacTestCase::PhyTxTrace(), ns3::PhyStatsCalculator::ReportCurrentCellRsrpSinr(), ns3::PhyStatsCalculator::ReportInterference(), ns3::PhyStatsCalculator::ReportUeSinr(), ns3::RlcTag::Serialize(), ns3::PdcpTag::Serialize(), TimestampTag::Serialize(), ns3::Synchronizer::TimeStepToNanosecond(), ns3::MacStatsCalculator::UlScheduling(), ns3::RadioBearerStatsCalculator::WriteDlResults(), and ns3::RadioBearerStatsCalculator::WriteUlResults().
|
inline |
Definition at line 305 of file nstime.h.
References PS, and ToInteger().
|
static |
Definition at line 376 of file time.cc.
References PeekResolution(), and ns3::Time::Resolution::unit.
Referenced by ns3::operator<<().
|
inline |
Definition at line 272 of file nstime.h.
References S, and ToDouble().
Referenced by ns3::dsr::RouteCache::AddRoute_Link(), ns3::AsciiLrWpanMacTransmitSinkWithContext(), ns3::AsciiLrWpanMacTransmitSinkWithoutContext(), ns3::AsciiPhyReceiveSinkWithContext(), ns3::AsciiPhyReceiveSinkWithoutContext(), ns3::AsciiPhyRxOkEvent(), ns3::AsciiPhyTransmitSinkWithContext(), ns3::AsciiPhyTransmitSinkWithoutContext(), ns3::AsciiPhyTxEvent(), ns3::WimaxHelper::AsciiRxEvent(), ns3::WimaxHelper::AsciiTxEvent(), ns3::UanPhyCalcSinrFhFsk::CalcSinrDb(), ns3::InterferenceHelper::CalculateChunkSuccessRate(), ns3::SimpleOfdmWimaxPhy::CalculateDataRate(), ns3::DistributedSimulatorImpl::CalculateLookAhead(), ns3::BasicEnergySource::CalculateRemainingEnergy(), ns3::LiIonEnergySource::CalculateRemainingEnergy(), ns3::LteUeRrc::CancelEnteringTrigger(), ns3::LteUeRrc::CancelLeavingTrigger(), ns3::AcousticModemEnergyModel::ChangeState(), ns3::WifiRadioEnergyModel::ChangeState(), CheckQueueSize(), LteX2HandoverMeasuresTestCase::CheckStats(), LteX2HandoverTestCase::CheckStatsAWhileAfterHandover(), ns3::UanMacRcGw::ComputeAlpha(), ns3::UanMacRcGw::ComputeExpS(), BatteryLifetimeTest::ConstantLoadTest(), Ns2MobilityHelperTest::CourseChange(), WaypointMobilityModelNotifyTest::CourseChangeCallback(), ns3::AnimationInterface::CsmaPhyTxEndTrace(), CwndChange(), CwndTracer(), Ns3TcpLossTestCase::CwndTracer(), ns3::AsciiTraceHelper::DefaultDequeueSinkWithContext(), ns3::AsciiTraceHelper::DefaultDequeueSinkWithoutContext(), ns3::AsciiTraceHelper::DefaultDropSinkWithContext(), ns3::AsciiTraceHelper::DefaultDropSinkWithoutContext(), ns3::AsciiTraceHelper::DefaultEnqueueSinkWithContext(), ns3::AsciiTraceHelper::DefaultEnqueueSinkWithoutContext(), ns3::AsciiTraceHelper::DefaultReceiveSinkWithContext(), ns3::AsciiTraceHelper::DefaultReceiveSinkWithoutContext(), ns3::AnimationInterface::DevTxTrace(), ns3::TraceFadingLossModel::DoCalcRxPowerSpectralDensity(), ns3::SimpleOfdmWimaxPhy::DoGetFrameDurationCode(), ns3::SimpleOfdmWimaxPhy::DoGetNrBytes(), ns3::SimpleOfdmWimaxPhy::DoGetNrSymbols(), ns3::dot11s::HwmpProtocol::DoInitialize(), ns3::MeshWifiInterfaceMac::DoInitialize(), ns3::RipNg::DoInitialize(), TimesWithSignsTestCase::DoRun(), ns3::SimpleOfdmWimaxPhy::DoSetPhyParameters(), ns3::RandomWalk2dMobilityModel::DoWalk(), ns3::GaussMarkovMobilityModel::DoWalk(), ns3::TcpWestwood::DupAck(), LteHandoverDelayTestCase::EnbHandoverEndOkCallback(), ns3::LteTestSinrChunkProcessor::End(), ns3::LteCtrlSinrChunkProcessor::End(), ns3::LteDataSinrChunkProcessor::End(), ns3::LteRsReceivedPowerChunkProcessor::End(), ns3::LteInterferencePowerChunkProcessor::End(), ns3::BaseStationNetDevice::EndDlSubFrame(), ns3::BaseStationNetDevice::EndUlSubFrame(), ns3::UanMacCw::Enqueue(), ns3::TcpWestwood::EstimateBW(), ns3::ShannonSpectrumErrorModel::EvaluateChunk(), ns3::LteTestSinrChunkProcessor::EvaluateSinrChunk(), ns3::LteCtrlSinrChunkProcessor::EvaluateSinrChunk(), ns3::LteDataSinrChunkProcessor::EvaluateSinrChunk(), ns3::LteRsReceivedPowerChunkProcessor::EvaluateSinrChunk(), ns3::LteInterferencePowerChunkProcessor::EvaluateSinrChunk(), ExampleFunction(), ns3::dsr::RouteCache::FindSameRoute(), ns3::SpectrumAnalyzer::GenerateReport(), GenerateTraffic(), ns3::UanMacRcGw::GetExpPdk(), ns3::dsdv::RoutingProtocol::GetSettlingTime(), ns3::JakesProcess::Oscillator::GetValueAt(), ns3::AnimationInterface::GetXMLOpenClose_linkupdate(), ns3::AnimationInterface::GetXMLOpenClose_nodeupdate(), ns3::AnimationInterface::GetXMLOpenClose_routing(), ns3::AnimationInterface::GetXMLOpenClose_rp(), ns3::AnimationInterface::GetXMLOpenCloseUpdateNodeColor(), ns3::AnimationInterface::GetXMLOpenCloseUpdateNodeCounter(), ns3::AnimationInterface::GetXMLOpenCloseUpdateNodeDescription(), ns3::AnimationInterface::GetXMLOpenCloseUpdateNodeImage(), ns3::AnimationInterface::GetXMLOpenCloseUpdateNodePosition(), ns3::AnimationInterface::GetXMLOpenCloseUpdateNodeSize(), MyModel::HandleEvent(), DynamicGlobalRoutingTestCase::HandleRead(), ns3::dsr::RouteCache::IncStability(), ns3::RedQueue::InitializeParams(), ns3::SubscriberStationNetDevice::InitSubscriberStationNetDevice(), ns3::aodv::RoutingTableEntry::Invalidate(), ns3::Ipv4L3ProtocolDropSinkWithContext(), ns3::Ipv4L3ProtocolDropSinkWithoutContext(), ns3::Ipv4L3ProtocolRxSinkWithContext(), ns3::Ipv4L3ProtocolRxSinkWithoutContext(), ns3::Ipv4L3ProtocolTxSinkWithContext(), ns3::Ipv4L3ProtocolTxSinkWithoutContext(), ns3::Ipv6L3ProtocolDropSinkWithContext(), ns3::Ipv6L3ProtocolDropSinkWithoutContext(), ns3::Ipv6L3ProtocolRxSinkWithContext(), ns3::Ipv6L3ProtocolRxSinkWithoutContext(), ns3::Ipv6L3ProtocolTxSinkWithContext(), ns3::Ipv6L3ProtocolTxSinkWithoutContext(), ns3::ArpCache::Entry::IsExpired(), ns3::olsr::RoutingProtocol::LinkSensing(), main(), ns3::aodv::RoutingTable::MarkLinkAsUnidirectional(), ns3::BaseStationNetDevice::MarkUplinkAllocations(), modify(), NotifyConnectionEstablishedEnb(), NotifyConnectionEstablishedUe(), NotifyHandoverEndOkEnb(), NotifyHandoverEndOkUe(), NotifyHandoverStartEnb(), NotifyHandoverStartUe(), ns3::UanMacCw::NotifyTxStart(), ns3::operator*(), ns3::operator<<(), LrWpanCcaTestCase::PhyRxBegin(), LrWpanCcaTestCase::PhyRxDrop(), LrWpanCcaTestCase::PhyRxEnd(), LrWpanCcaTestCase::PhyTxBegin(), LrWpanCcaTestCase::PhyTxEnd(), LrWpanCcaTestCase::PlmeCcaConfirm(), ns3::SeqTsHeader::Print(), ns3::UanHeaderRcData::Print(), ns3::dsdv::RoutingTableEntry::Print(), ns3::UanHeaderRcRts::Print(), ns3::UanHeaderRcCtsGlobal::Print(), ns3::UanHeaderRcCts::Print(), PrintCellInfo(), IpAddressHelper::PrintIpAddresses(), PrintReceivedPacket(), ns3::dsdv::RoutingProtocol::PrintRoutingTable(), ns3::aodv::RoutingProtocol::PrintRoutingTable(), ns3::Ipv4ListRouting::PrintRoutingTable(), ns3::Ipv6ListRouting::PrintRoutingTable(), ns3::RipNg::PrintRoutingTable(), ns3::Ipv6StaticRouting::PrintRoutingTable(), ns3::UplinkSchedulerMBQoS::ProcessBandwidthRequest(), ns3::AnimPacketInfo::ProcessRxEnd(), ns3::AnimationInterface::PurgePendingCsma(), ns3::AnimationInterface::PurgePendingLte(), ns3::AnimationInterface::PurgePendingWifi(), ns3::AnimationInterface::PurgePendingWimax(), RandomFunction(), ns3::UanMacRc::ReceiveOkFromPhy(), ns3::dsdv::RoutingProtocol::RecvDsdv(), ns3::dot11s::HwmpProtocol::Report(), ns3::flame::FlameProtocol::Report(), ns3::dot11s::PeerLink::Report(), ns3::MeshWifiInterfaceMac::Report(), ns3::MeshHelper::Report(), ns3::FlowMonitor::ReportLastRx(), SampleEmitter::Reschedule(), NetAnimExperiment::ResetData(), Experiment::ResetData(), ns3::TcpWestwood::Retransmit(), ns3::RttMeanDeviation::RetransmitTimeout(), ns3::RttEstimator::RttEstimator(), ns3::RvBatteryModel::RvModelAFunction(), ns3::UanMacRc::ScheduleData(), ns3::dsr::DsrRouting::ScheduleNetworkPacketRetry(), ns3::dsr::DsrRouting::ScheduleRreqRetry(), ns3::aodv::RoutingProtocol::SendRerrMessage(), ns3::aodv::RoutingProtocol::SendRerrWhenNoRouteToForward(), ns3::RipNg::SendTriggeredRouteUpdate(), ns3::RipNg::SendUnsolicitedRouteUpdate(), ns3::UanHeaderRcData::Serialize(), ns3::UanHeaderRcRts::Serialize(), ns3::UanHeaderRcCtsGlobal::Serialize(), ns3::UanHeaderRcCts::Serialize(), ns3::dot11s::PeerLink::SetBeaconInformation(), ns3::SimpleDeviceEnergyModel::SetCurrentA(), ns3::olsr::MessageHeader::Hello::SetHTime(), ns3::UanPdp::SetTap(), ns3::olsr::MessageHeader::SetVTime(), showPosition(), DynamicGlobalRoutingTestCase::SinkRx(), SocketPrinter(), SsThreshTracer(), ns3::dsr::DsrRouting::Start(), ns3::UanMacRcGw::StartCycle(), ns3::BaseStationNetDevice::StartDlSubFrame(), Ns3TcpStateTestCase::StartFlow(), Ns3TcpLossTestCase::StartFlow(), ns3::BaseStationNetDevice::StartFrame(), ns3::UanMacCw::StartTimer(), ns3::BaseStationNetDevice::StartUlSubFrame(), StateChangeNotification(), ns3::UanPdp::SumTapsC(), ns3::UanPdp::SumTapsFromMaxC(), ns3::UanPdp::SumTapsFromMaxNc(), ns3::UanPdp::SumTapsNc(), TestDeterministicByTime(), ns3::TimePrinter(), ns3::CsmaNetDevice::TransmitCompleteEvent(), ns3::CsmaChannel::TransmitEnd(), ns3::PointToPointNetDevice::TransmitStart(), ns3::CsmaNetDevice::TransmitStart(), LteHandoverDelayTestCase::UeHandoverEndOkCallback(), ns3::ConstantVelocityHelper::Update(), BatteryLifetimeTest::VariableLoadTest(), ns3::WriteAveragePowerSpectralDensityReport(), ns3::AnimationInterface::WriteDummyPacket(), Ns3TcpStateTestCase::WriteUntilBufferFull(), and Ns3TcpLossTestCase::WriteUntilBufferFull().
|
inline |
Definition at line 354 of file nstime.h.
References m_data.
Referenced by ns3::LrWpanPhy::EndEd(), ns3::LrWpanPhy::EndRx(), GetInteger(), ns3::Radvd::HandleRead(), ns3::DistributedSimulatorImpl::NextTs(), ns3::OmnetDataOutput::OmnetOutputCallback::OutputSingleton(), ns3::SqliteDataOutput::SqliteOutputCallback::OutputSingleton(), ns3::RealtimeSimulatorImpl::ProcessOneEvent(), ns3::DefaultSimulatorImpl::Schedule(), ns3::NullMessageSimulatorImpl::Schedule(), ns3::RealtimeSimulatorImpl::Schedule(), ns3::DistributedSimulatorImpl::Schedule(), ns3::RealtimeSimulatorImpl::ScheduleRealtimeWithContext(), ns3::DefaultSimulatorImpl::ScheduleWithContext(), ns3::NullMessageSimulatorImpl::ScheduleWithContext(), ns3::RealtimeSimulatorImpl::ScheduleWithContext(), ns3::DistributedSimulatorImpl::ScheduleWithContext(), ns3::NullMessageMpiInterface::SendNullMessage(), ns3::GrantedTimeWindowMpiInterface::SendPacket(), ns3::NullMessageMpiInterface::SendPacket(), ns3::LrWpanPhy::StartRx(), ns3::DefaultSimulatorImpl::Stop(), ns3::NullMessageSimulatorImpl::Stop(), and ns3::DistributedSimulatorImpl::Stop().
|
inline |
Definition at line 346 of file nstime.h.
References ToDouble(), and Y.
|
inline |
|
inline |
Definition at line 242 of file nstime.h.
References m_data.
Referenced by ns3::DefaultSimulatorImpl::Schedule(), and ns3::RealtimeSimulatorImpl::Schedule().
|
inline |
|
inline |
|
inline |
Definition at line 228 of file nstime.h.
References m_data.
Referenced by main(), and ns3::YansWifiPhy::StartReceivePacket().
|
staticprivate |
Record a Time instance with the MarkedTimes.
Definition at line 283 of file time.cc.
References g_markingTimes, GetMarkingMutex(), NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_LOGIC, and NS_LOG_WARN.
Referenced by Time().
|
inlinestatic |
Maximum representable Time.
Definition at line 209 of file nstime.h.
References Time().
Referenced by ns3::MakeTimeChecker().
|
inlinestatic |
Minimum representable Time.
Definition at line 202 of file nstime.h.
References Time().
Referenced by ns3::MakeTimeChecker().
|
inline |
|
inlinestaticprivate |
Definition at line 533 of file nstime.h.
References ns3::Time::Resolution::info, and PeekResolution().
Referenced by From(), FromInteger(), To(), and ToInteger().
|
inlinestaticprivate |
Definition at line 528 of file nstime.h.
References SetDefaultNsResolution().
Referenced by GetResolution(), PeekInformation(), and SetResolution().
|
staticprivate |
Definition at line 166 of file time.cc.
References NS, NS_LOG_FUNCTION_NOARGS, and SetResolution().
Referenced by PeekResolution().
|
static |
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 176 of file time.cc.
References NS_LOG_FUNCTION, and PeekResolution().
Referenced by main(), and SetDefaultNsResolution().
|
staticprivate |
Definition at line 185 of file time.cc.
References ConvertTimes(), ns3::Time::Information::factor, ns3::Time::Information::fromMul, ns3::Time::Resolution::info, ns3::int64x64_t::Invert(), 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.
Definition at line 59 of file time.cc.
References g_markingTimes, GetMarkingMutex(), and NS_LOG_ERROR.
|
inline |
Definition at line 462 of file nstime.h.
References m_data, ns3::int64x64_t::MulByInvert(), PeekInformation(), ns3::Time::Information::timeTo, and ns3::Time::Information::toMul.
Referenced by ns3::OnOffApplication::CancelEvents(), ns3::operator<<(), and ToDouble().
|
inline |
timeUnit | the unit of the value to return |
Convert the input time into a floating point value according to the requested time unit.
Definition at line 442 of file nstime.h.
References ns3::int64x64_t::GetDouble(), and To().
Referenced by GetDays(), GetHours(), GetMinutes(), GetSeconds(), GetYears(), and ns3::RttMeanDeviation::Measurement().
|
inline |
timeUnit | the unit of the value to return |
Convert the input time into an integer value according to the requested time unit.
Definition at line 410 of file nstime.h.
References ns3::Time::Information::factor, m_data, PeekInformation(), and ns3::Time::Information::toMul.
Referenced by ConvertTimes(), GetFemtoSeconds(), GetMicroSeconds(), GetMilliSeconds(), GetNanoSeconds(), GetPicoSeconds(), and ns3::RttMeanDeviation::RetransmitTimeout().
|
related |
create ns3::Time instances in units of days (equal to 24 hours).
For example:
days | days value |
Definition at line 895 of file nstime.h.
References D, and FromDouble().
|
related |
|
related |
create ns3::Time instances in units of femtoseconds.
For example:
fs | femtoseconds value |
Definition at line 850 of file nstime.h.
References FromInteger(), and FS.
|
related |
Definition at line 959 of file nstime.h.
|
related |
Definition at line 50 of file time.cc.
Referenced by Clear(), ClearMarkedTimes(), ConvertTimes(), Mark(), and StaticInit().
|
related |
create ns3::Time instances in units of hours (equal to 60 minutes).
For example:
hours | hours value |
Definition at line 880 of file nstime.h.
References FromDouble(), and H.
|
related |
|
related |
create ns3::Time instances in units of microseconds.
For example:
us | microseconds value |
Definition at line 805 of file nstime.h.
References FromInteger(), and US.
|
related |
Definition at line 935 of file nstime.h.
|
related |
create ns3::Time instances in units of milliseconds.
For example:
ms | milliseconds value |
Definition at line 790 of file nstime.h.
References FromInteger(), and MS.
Referenced by main(), and operator<<().
|
related |
Definition at line 927 of file nstime.h.
|
related |
create ns3::Time instances in units of minutes (equal to 60 seconds).
For example:
minutes | mintues value |
Definition at line 865 of file nstime.h.
References FromDouble(), and MIN.
|
related |
|
related |
create ns3::Time instances in units of nanoseconds.
For example:
ns | nanoseconds value |
Definition at line 820 of file nstime.h.
References FromInteger(), and NS.
|
related |
Definition at line 943 of file nstime.h.
|
related |
|
related |
Time input streamer.
Uses the Time::Time (const std::string &) constructor
|
related |
create ns3::Time instances in units of picoseconds.
For example:
ps | picoseconds value |
Definition at line 835 of file nstime.h.
References FromInteger(), and PS.
|
related |
Definition at line 951 of file nstime.h.
|
related |
create ns3::Time instances in units of seconds.
For example:
seconds | seconds value |
Definition at line 774 of file nstime.h.
References FromDouble(), and S.
Referenced by AttributeTestCase< T >::DoRun(), and main().
|
related |
Definition at line 919 of file nstime.h.
|
related |
create ns3::Time instances in units of years (equal to 365 days).
For example:
years | years value |
Definition at line 910 of file nstime.h.
References FromDouble(), and Y.
|
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 576 of file nstime.h.
Referenced by Clear(), ClearMarkedTimes(), ConvertTimes(), Mark(), StaticInit(), Time(), and ~Time().
|
private |
Virtual time value, in the current unit.
Definition at line 627 of file nstime.h.
Referenced by ns3::Abs(), Compare(), ConvertTimes(), GetDouble(), GetTimeStep(), IsNegative(), IsPositive(), IsStrictlyNegative(), IsStrictlyPositive(), IsZero(), ns3::Max(), ns3::Min(), operator int64x64_t(), ns3::operator!=(), ns3::operator*(), ns3::operator+(), ns3::operator+=(), ns3::operator-(), ns3::operator-=(), ns3::operator/(), ns3::operator<(), ns3::operator<=(), operator=(), ns3::operator==(), ns3::operator>(), ns3::operator>=(), To(), and ToInteger().