A Discrete-Event Network Simulator
API
Simulator

Control the virtual time and the execution of simulation events. More...

+ Collaboration diagram for Simulator:

Files

file  sample-simulator.cc
 Example program demonstrating use of various Schedule functions.
 
file  simulator.cc
 ns3::Simulator implementation, as well as implementation pointer, global scheduler implementation, and default ns3::NodePrinter and ns3::TimePrinter.
 
file  simulator.h
 ns3::Simulator declaration.
 

Classes

class  ns3::DefaultSimulatorImpl
 The default single process simulator implementation. More...
 
class  ns3::DistributedSimulatorImpl
 Distributed simulator implementation using lookahead. More...
 
struct  ns3::DefaultSimulatorImpl::EventWithContext
 
class  ns3::RealtimeSimulatorImpl
 Introspection did not find any typical Config paths. More...
 
class  ns3::Simulator
 Control the scheduling of simulation events. More...
 
class  ns3::SimulatorImpl
 The SimulatorImpl base class. More...
 
class  ns3::VisualSimulatorImpl
 A replacement simulator that starts the visualizer. More...
 

Enumerations

enum  ns3::RealtimeSimulatorImpl::SynchronizationMode { ns3::RealtimeSimulatorImpl::SYNC_BEST_EFFORT, ns3::RealtimeSimulatorImpl::SYNC_HARD_LIMIT }
 Enumeration of the types of packets supported in the class. More...
 

Functions

static SimulatorImpl * ns3::GetImpl (void)
 Get the SimulatorImpl singleton. More...
 
Time ns3::Now (void)
 create an ns3::Time instance which contains the current simulation time. More...
 
static SimulatorImpl ** ns3::PeekImpl (void)
 Get the static SimulatorImpl instance. More...
 

Variables

static GlobalValue ns3::g_simTypeImpl
 The specific simulator implementation to use. More...
 

Detailed Description

Control the virtual time and the execution of simulation events.

Enumeration Type Documentation

Enumeration of the types of packets supported in the class.

Enumerator
SYNC_BEST_EFFORT 
SYNC_HARD_LIMIT 

Make a best effort to keep synced to real-time.

Definition at line 50 of file realtime-simulator-impl.h.

Function Documentation

Time ns3::Now ( void  )

create an ns3::Time instance which contains the current simulation time.

This is really a shortcut for the ns3::Simulator::Now method. It is typically used as shown below to schedule an event which expires at the absolute time "2 seconds":

Simulator::Schedule (Seconds (2.0) - Now (), &my_function);
Returns
The current simulation time.

Definition at line 330 of file simulator.cc.

References ns3::Simulator::Now().

Referenced by DcfManagerTest::AddAccessRequestWithAckTimeout(), DcfManagerTest::AddAccessRequestWithSuccessfullAck(), DcfManagerTest::AddAckTimeoutReset(), DcfManagerTest::AddCcaBusyEvt(), DcfManagerTest::AddNavReset(), DcfManagerTest::AddNavStart(), DcfManagerTest::AddRxErrorEvt(), DcfManagerTest::AddRxInsideSifsEvt(), DcfManagerTest::AddRxOkEvt(), DcfManagerTest::AddRxStartEvt(), DcfManagerTest::AddSwitchingEvt(), DcfManagerTest::AddTxEvt(), DsdvManetExample::CheckThroughput(), RoutingExperiment::CheckThroughput(), Experiment::CheckThroughput(), VanetRoutingExperiment::CheckThroughput(), ns3::SpectrumInterference::ConditionallyEvaluateChunk(), ns3::LteInterference::ConditionallyEvaluateChunk(), LteDownlinkPowerControlRrcConnectionReconfigurationTestCase::ConnectionReconfigurationEnb(), LteDownlinkPowerControlRrcConnectionReconfigurationTestCase::ConnectionReconfigurationUe(), VanetRoutingExperiment::CourseChange(), WaypointLazyNotifyFalse::CourseChangeCallback(), WaypointLazyNotifyTrue::CourseChangeCallback(), CwndChange(), Ns3TcpLossTestCase::CwndTracer(), LrWpanAckTestCase::DataConfirm(), LrWpanAckTestCase::DataIndication(), CoDelQueueBasicDrop::Dequeue(), LteFrAreaTestCase::DlDataRxStart(), LteCqiGenerationTestCase::DlScheduling(), LteInterferenceTestCase::DlScheduling(), LteLinkAdaptationTestCase::DlScheduling(), LtePathlossModelSystemTestCase::DlScheduling(), LteCqiGenerationDlPowerControlTestCase::DlScheduling(), ns3::SpectrumInterference::DoAddSignal(), EventGarbageCollectorTestCase::DoRun(), LiIonEnergyTestCase::DoRun(), BasicEnergyHarvesterTestCase::DoRun(), LrWpanAckTestCase::DoRun(), ns3::SpectrumInterference::DoSubtractSignal(), WatchdogTestCase::Expire(), ns3::Watchdog::Expire(), ns3::JakesProcess::GetComplexGain(), ns3::ChannelCoordinator::GetIntervalTime(), LenaMimoTestCase::GetRlcBufferSample(), Ipv4DynamicGlobalRoutingTestCase::HandleRead(), LteHandoverTargetTestCase::HandoverStartCallback(), Ns3TcpStateTestCase::Ipv4L3Tx(), Ns3TcpLossTestCase::Ipv4L3Tx(), Ns3TcpInteroperabilityTestCase::Ipv4L3Tx(), OcbWifiMacTestCase::MacAssoc(), JakesPropagationExample::Next(), DcfManagerTest::NotifyAccessGranted(), ChannelCoordinationTestCase::NotifyCchStartNow(), DcfManagerTest::NotifyChannelSwitching(), DcfManagerTest::NotifyCollision(), ChannelCoordinationTestCase::NotifyGuardStartNow(), DcfManagerTest::NotifyInternalCollision(), Bug555TestCase::NotifyPhyTxBegin(), ChannelCoordinationTestCase::NotifySchStartNow(), SimulatorEventsTestCase::NowUs(), LrWpanCcaTestCase::PhyRxBegin(), LrWpanCcaTestCase::PhyRxDrop(), LrWpanCcaTestCase::PhyRxEnd(), OcbWifiMacTestCase::PhyRxOkTrace(), LrWpanCcaTestCase::PhyTxBegin(), LrWpanCcaTestCase::PhyTxEnd(), OcbWifiMacTestCase::PhyTxTrace(), ns3::Watchdog::Ping(), LrWpanCcaTestCase::PlmeCcaConfirm(), PrintReceivedPacket(), PrintReceivedRoutingPacket(), LteUplinkPowerControlTestCase::PucchTxPowerTrace(), LteUplinkPowerControlTestCase::PuschTxPowerTrace(), WaveNetDeviceExample::Receive(), Receiver::Receive(), AnnexC_TestCase::Receive(), DsdvManetExample::ReceivePacket(), LrWpanPlmeAndPdInterfaceTestCase::ReceivePdDataInndication(), WaveNetDeviceExample::ReceiveVsa(), LteUeMeasurementsTestCase::RecvMeasurementReport(), LteUeMeasurementsPiecewiseTestCase1::RecvMeasurementReportCallback(), LteUeMeasurementsPiecewiseTestCase2::RecvMeasurementReportCallback(), LteUeMeasurementsHandoverTestCase::RecvMeasurementReportCallback(), LteUeMeasurementsTestCase::ReportUeMeasurements(), NetAnimExperiment::ResetData(), Experiment::ResetData(), RxDrop(), EpsBearerTagUdpClient::Send(), LteUplinkPowerControlTestCase::SetTpcConfiguration(), LteFrAreaTestCase::SimpleTeleportUe(), LteUplinkPowerControlTestCase::SrsTxPowerTrace(), ns3::WaveformGenerator::Start(), ns3::ChannelCoordinator::StartChannelCoordination(), Ns3TcpStateTestCase::StartFlow(), Ns3TcpLossTestCase::StartFlow(), ns3::SpectrumInterference::StartRx(), ns3::LteInterference::StartRx(), LteUplinkPowerControlTestCase::TeleportUe(), LteFrAreaTestCase::TeleportUe(), LteFrAreaTestCase::TeleportUe2(), ChannelAccessTestCase::TestAlternating(), ChannelAccessTestCase::TestAlternatingAfter(), ChannelAccessTestCase::TestContinuous(), ChannelAccessTestCase::TestContinuousAfter(), ChannelAccessTestCase::TestExtended(), ChannelAccessTestCase::TestExtendedAfter(), ChannelCoordinationTestCase::TestIntervalAfter(), ProbeTestCase1::TraceSink(), WaveformGeneratorTestCase::TraceWave(), LteFrAreaTestCase::UlDataRxStart(), LteCqiGenerationTestCase::UlScheduling(), LteInterferenceTestCase::UlScheduling(), LteCqiGenerationDlPowerControlTestCase::UlScheduling(), ns3::SpectrumAnalyzer::UpdateEnergyReceivedSoFar(), NetAnimExperiment::UpdatePositions(), Experiment::UpdatePositions(), ns3::WriteAveragePowerSpectralDensityReport(), ns3::AthstatsWifiTraceSink::WriteStats(), Ns3TcpStateTestCase::WriteUntilBufferFull(), and Ns3TcpLossTestCase::WriteUntilBufferFull().

+ Here is the call graph for this function:

static SimulatorImpl** ns3::PeekImpl ( void  )
static

Get the static SimulatorImpl instance.

Returns
The SimulatorImpl instance pointer.

Definition at line 114 of file simulator.cc.

Referenced by ns3::Simulator::Cancel(), ns3::Simulator::Destroy(), ns3::GetImpl(), ns3::Simulator::GetSystemId(), ns3::Simulator::IsExpired(), ns3::Simulator::Remove(), and ns3::Simulator::SetImplementation().

+ Here is the caller graph for this function:

Variable Documentation

GlobalValue ns3::g_simTypeImpl
static
Initial value:
= GlobalValue
("SimulatorImplementationType",
"The object class to use as the simulator implementation",
StringValue ("ns3::DefaultSimulatorImpl"),
Ptr< const AttributeChecker > MakeStringChecker(void)
Definition: string.cc:30

The specific simulator implementation to use.

Must be derived from SimulatorImpl.

Definition at line 61 of file simulator.cc.