20 #include "ns3/core-config.h"
49 "The object class to use as the simulator implementation",
51 MakeStringChecker ());
54 "The object class to use as the scheduler implementation",
56 MakeTypeIdChecker ());
104 (*pimpl)->SetScheduler (factory);
137 (*pimpl)->Destroy ();
326 NS_FATAL_ERROR (
"It is not possible to set the implementation after calling any Simulator:: function. Call Simulator::SetImplementation earlier or after Simulator::Destroy.");
334 impl->SetScheduler (factory);
static Time GetDelayLeft(const EventId &id)
keep track of time values and allow control of global simulation resolution
virtual void ScheduleWithContext(uint32_t context, Time const &time, EventImpl *event)=0
smart pointer class similar to boost::intrusive_ptr
#define NS_LOG_FUNCTION(parameters)
void LogSetNodePrinter(LogNodePrinter printer)
std::string Get(void) const
static void SetImplementation(Ptr< SimulatorImpl > impl)
virtual bool IsExpired(const EventId &ev) const =0
hold variables of type string
static EventId DoScheduleDestroy(EventImpl *event)
static Ptr< SimulatorImpl > GetImplementation(void)
static uint32_t GetSystemId(void)
virtual Time Now(void) const =0
static uint32_t GetContext(void)
#define NS_LOG_COMPONENT_DEFINE(name)
static EventId DoSchedule(Time const &time, EventImpl *event)
virtual EventId ScheduleNow(EventImpl *event)=0
void SetTypeId(TypeId tid)
T * GetPointer(const Ptr< T > &p)
static void Cancel(const EventId &id)
#define NS_LOG_FUNCTION_NOARGS()
GlobalValue g_simTypeImpl
void LogSetTimePrinter(LogTimePrinter printer)
virtual void SetScheduler(ObjectFactory schedulerFactory)=0
static EventId Schedule(Time const &time, MEM mem_ptr, OBJ obj)
hold a so-called 'global value'.
#define NS_FATAL_ERROR(msg)
fatal error handling
virtual Time GetMaximumSimulationTime(void) const =0
virtual bool IsFinished(void) const =0
double GetSeconds(void) const
static void TimePrinter(std::ostream &os)
GlobalValue g_schedTypeImpl
Ptr< Object > Create(void) const
virtual Time GetDelayLeft(const EventId &id) const =0
hold objects of type ns3::TypeId
static void ScheduleWithContext(uint32_t context, Time const &time, MEM mem_ptr, OBJ obj)
virtual EventId ScheduleDestroy(EventImpl *event)=0
#define NS_LOG_LOGIC(msg)
static void Destroy(void)
static void Remove(const EventId &id)
virtual void Cancel(const EventId &ev)=0
static bool IsExpired(const EventId &id)
static EventId ScheduleNow(MEM mem_ptr, OBJ obj)
static void SetScheduler(ObjectFactory schedulerFactory)
static SimulatorImpl ** PeekImpl(void)
static SimulatorImpl * GetImpl(void)
virtual EventId Schedule(Time const &time, EventImpl *event)=0
instantiate subclasses of ns3::Object.
static EventId DoScheduleNow(EventImpl *event)
virtual void Remove(const EventId &ev)=0
an identifier for simulation events.
Time Now(void)
create an ns3::Time instance which contains the current simulation time.
virtual void Stop(void)=0
static bool IsFinished(void)
EventImpl * MakeEvent(void(*f)(void))
static EventId ScheduleDestroy(MEM mem_ptr, OBJ obj)
virtual uint32_t GetSystemId() const =0
static void ClearMarkedTimes()
virtual uint32_t GetContext(void) const =0
static void NodePrinter(std::ostream &os)
static Time GetMaximumSimulationTime(void)
void GetValue(AttributeValue &value) const
static TypeId GetTypeId(void)