A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Virtual Time

Management of virtual time in real world units. More...

+ Collaboration diagram for Virtual Time:

Modules

 Standard time units.
 Convenience constructors in standard units.
 

Classes

class  ns3::Time
 Simulation virtual time values and global simulation resolution. More...
 
class  ns3::TimeValue
 Attribute for objects of type ns3::Time. More...
 
class  ns3::TimeWithUnit
 A Time with attached unit, to facilitate output in that unit. More...
 

Functions

Ptr< const AttributeChecker > ns3::MakeTimeChecker (const Time min, const Time max)
 Helper to make a Time checker with bounded range. More...
 
Ptr< const AttributeChecker > ns3::MakeTimeChecker (void)
 Helper to make an unbounded Time checker. More...
 
Ptr< const AttributeChecker > ns3::MakeTimeChecker (const Time min)
 Helper to make a Time checker with a lower bound. More...
 
std::ostream & ns3::operator<< (std::ostream &os, const Time &time)
 Time output streamer. More...
 
std::istream & ns3::operator>> (std::istream &is, Time &time)
 Time input streamer. More...
 
Time ns3::TimeStep (uint64_t ts)
 

Detailed Description

Management of virtual time in real world units.

The underlying simulator is unit agnostic, just dealing with dimensionless virtual time. Models usually need to handle time in real world units, such as seconds, and conversions/scaling between different units, between minutes and seconds, for example.

The convenience constructors in the Standard Units module make it easy to create Times in specific units.

The Time::SetResolution() function allows a one-time change of the base resolution, before Simulator::Run().

Function Documentation

Ptr< const AttributeChecker > ns3::MakeTimeChecker ( const Time  min,
const Time  max 
)

Helper to make a Time checker with bounded range.

Both limits are inclusive

Parameters
[in]minMinimum allowed value.
[in]maxMaximum allowed value.
Returns
the AttributeChecker

Definition at line 444 of file time.cc.

References ns3::Copy(), ns3::Create(), ns3::TimeValue::Get(), NS_LOG_FUNCTION, and NS_LOG_FUNCTION_NOARGS.

Referenced by ns3::BasicEnergySource::GetTypeId(), ns3::LteRlcAm::GetTypeId(), ns3::LteFfrDistributedAlgorithm::GetTypeId(), ns3::RraaWifiManager::GetTypeId(), ns3::DelayJitterEstimationTimestampTag::GetTypeId(), ns3::AmrrWifiManager::GetTypeId(), ns3::ApWifiMac::GetTypeId(), ns3::RealtimeSimulatorImpl::GetTypeId(), ns3::OnoeWifiManager::GetTypeId(), ns3::UdpEchoClient::GetTypeId(), ns3::StaWifiMac::GetTypeId(), ns3::Probe::GetTypeId(), ns3::WifiMac::GetTypeId(), ns3::dot11s::PeerLink::GetTypeId(), ns3::RandomWalk2dMobilityModel::GetTypeId(), ns3::UdpClient::GetTypeId(), ns3::TraceFadingLossModel::GetTypeId(), ns3::dot11s::HwmpProtocol::GetTypeId(), ns3::PointToPointChannel::GetTypeId(), ns3::V4Ping::GetTypeId(), ns3::BasicEnergyHarvester::GetTypeId(), ns3::Ping6::GetTypeId(), ns3::SimpleChannel::GetTypeId(), ns3::WifiMacQueue::GetTypeId(), ns3::RvBatteryModel::GetTypeId(), ns3::Ipv6PmtuCache::GetTypeId(), ns3::SpectrumAnalyzer::GetTypeId(), ns3::EmuNetDevice::GetTypeId(), ns3::aodv::RoutingProtocol::GetTypeId(), ns3::dsdv::RoutingProtocol::GetTypeId(), ns3::MeshWifiInterfaceMac::GetTypeId(), ns3::CoDelTimestampTag::GetTypeId(), ns3::UanMacCw::GetTypeId(), ns3::PacketSocketClient::GetTypeId(), ns3::WaveformGenerator::GetTypeId(), ns3::PointToPointNetDevice::GetTypeId(), ns3::CoDelQueue::GetTypeId(), ns3::BaseStationNetDevice::GetTypeId(), ns3::WimaxPhy::GetTypeId(), ns3::SubscriberStationNetDevice::GetTypeId(), ns3::PointToPointEpcHelper::GetTypeId(), ns3::flame::FlameRtable::GetTypeId(), ns3::Application::GetTypeId(), ns3::YansWifiPhy::GetTypeId(), ns3::UanMacRcGw::GetTypeId(), ns3::BridgeNetDevice::GetTypeId(), EpsBearerTagUdpClient::GetTypeId(), ns3::ArpCache::GetTypeId(), ns3::TcpSocket::GetTypeId(), ns3::RttEstimator::GetTypeId(), ns3::LiIonEnergySource::GetTypeId(), ns3::UplinkSchedulerMBQoS::GetTypeId(), ns3::A3RsrpHandoverAlgorithm::GetTypeId(), ns3::CsmaChannel::GetTypeId(), ns3::SixLowPanNetDevice::GetTypeId(), ns3::olsr::RoutingProtocol::GetTypeId(), ns3::RadioBearerStatsCalculator::GetTypeId(), ns3::LteUePhy::GetTypeId(), ns3::flame::FlameProtocol::GetTypeId(), ns3::GaussMarkovMobilityModel::GetTypeId(), ns3::AthstatsWifiTraceSink::GetTypeId(), ns3::FdNetDevice::GetTypeId(), AttributeObjectTest::GetTypeId(), ns3::Ipv4L3Protocol::GetTypeId(), ns3::RedQueue::GetTypeId(), ns3::MinstrelWifiManager::GetTypeId(), ns3::dsr::DsrRouting::GetTypeId(), ns3::TapBridge::GetTypeId(), TimestampTag::GetTypeId(), ns3::LteUeRrc::GetTypeId(), ns3::FlowMonitor::GetTypeId(), ns3::UanMacRc::GetTypeId(), ns3::RipNg::GetTypeId(), ns3::LteEnbRrc::GetTypeId(), and ns3::MakeTimeChecker().

+ Here is the call graph for this function:

Ptr<const AttributeChecker> ns3::MakeTimeChecker ( void  )
inline

Helper to make an unbounded Time checker.

Returns
the AttributeChecker

Definition at line 939 of file nstime.h.

References ns3::MakeTimeChecker(), ns3::Time::Max(), and ns3::Time::Min().

+ Here is the call graph for this function:

Ptr<const AttributeChecker> ns3::MakeTimeChecker ( const Time  min)
inline

Helper to make a Time checker with a lower bound.

Parameters
[in]minMinimum allowed value.
Returns
the AttributeChecker

Definition at line 952 of file nstime.h.

References ns3::MakeTimeChecker(), and ns3::Time::Max().

+ Here is the call graph for this function:

std::ostream & ns3::operator<< ( std::ostream &  os,
const Time &  time 
)

Time output streamer.

Generates output such as "3.96ns". Times are printed with the following format flags (independent of the stream flags):

  • showpos
  • fixed
  • left The stream width and precision are ignored; Time output always includes ".0".
Parameters
[in]osThe output stream.
[in]timeThe Time to put on the stream.
Returns
The stream.

Definition at line 393 of file time.cc.

References ns3::Time::As(), and ns3::Time::GetResolution().

+ Here is the call graph for this function:

std::istream & ns3::operator>> ( std::istream &  is,
Time &  time 
)

Time input streamer.

Uses the Time::Time (const std::string &) constructor

Parameters
[in]isThe input stream.
[out]timeThe Time variable to set from the stream data.
Returns
The stream.

Definition at line 433 of file time.cc.

Time ns3::TimeStep ( uint64_t  ts)
inline
Internal: Scheduler interface
Parameters
[in]tsThe time value, in the current unit.
Returns
A Time.

Definition at line 902 of file nstime.h.

Referenced by ns3::BuildingListPriv::Add(), ns3::NodeListPriv::Add(), ns3::Application::DoInitialize(), TimeSimpleTestCase::DoRun(), ns3::DefaultSimulatorImpl::GetDelayLeft(), ns3::NullMessageSimulatorImpl::GetDelayLeft(), ns3::RealtimeSimulatorImpl::GetDelayLeft(), ns3::DistributedSimulatorImpl::GetDelayLeft(), ns3::Timer::GetDelayLeft(), ns3::DefaultSimulatorImpl::GetMaximumSimulationTime(), ns3::NullMessageSimulatorImpl::GetMaximumSimulationTime(), ns3::RealtimeSimulatorImpl::GetMaximumSimulationTime(), ns3::DistributedSimulatorImpl::GetMaximumSimulationTime(), ns3::SeqTsHeader::GetTs(), ns3::DelayJitterEstimationTimestampTag::GetTxTime(), ns3::CoDelTimestampTag::GetTxTime(), ns3::Application::GetTypeId(), ns3::NullMessageSimulatorImpl::Next(), ns3::DistributedSimulatorImpl::Next(), ns3::DefaultSimulatorImpl::Now(), ns3::NullMessageSimulatorImpl::Now(), ns3::RealtimeSimulatorImpl::Now(), ns3::DistributedSimulatorImpl::Now(), ns3::SeqTsHeader::Print(), ns3::RealtimeSimulatorImpl::RealtimeNow(), ns3::DefaultSimulatorImpl::Schedule(), ns3::NullMessageSimulatorImpl::Schedule(), ns3::RealtimeSimulatorImpl::Schedule(), ns3::DistributedSimulatorImpl::Schedule(), ns3::DefaultSimulatorImpl::ScheduleWithContext(), ns3::NullMessageSimulatorImpl::ScheduleWithContext(), and ns3::Synchronizer::TimeStepToNanosecond().

+ Here is the caller graph for this function: