228    template <
typename FUNC,
 
  229              std::enable_if_t<!std::is_convertible_v<FUNC, Ptr<EventImpl>>, 
int> = 0,
 
  230              std::enable_if_t<!std::is_function_v<std::remove_pointer_t<FUNC>>, 
int> = 0,
 
  249    template <
typename... Us, 
typename... Ts>
 
  274    template <
typename FUNC,
 
  275              std::enable_if_t<!std::is_convertible_v<FUNC, Ptr<EventImpl>>, 
int> = 0,
 
  276              std::enable_if_t<!std::is_function_v<std::remove_pointer_t<FUNC>>, 
int> = 0,
 
  292    template <
typename... Us, 
typename... Ts>
 
  317    template <
typename FUNC,
 
  318              std::enable_if_t<!std::is_convertible_v<FUNC, Ptr<EventImpl>>, 
int> = 0,
 
  319              std::enable_if_t<!std::is_function_v<std::remove_pointer_t<FUNC>>, 
int> = 0,
 
  334    template <
typename... Us, 
typename... Ts>
 
  359    template <
typename FUNC,
 
  360              std::enable_if_t<!std::is_convertible_v<FUNC, Ptr<EventImpl>>, 
int> = 0,
 
  361              std::enable_if_t<!std::is_function_v<std::remove_pointer_t<FUNC>>, 
int> = 0,
 
  377    template <
typename... Us, 
typename... Ts>
 
 
  556template <
typename FUNC,
 
  557          std::enable_if_t<!std::is_convertible_v<FUNC, Ptr<EventImpl>>, 
int>,
 
  558          std::enable_if_t<!std::is_function_v<std::remove_pointer_t<FUNC>>, 
int>,
 
  566template <
typename... Us, 
typename... Ts>
 
  573template <
typename FUNC,
 
  574          std::enable_if_t<!std::is_convertible_v<FUNC, Ptr<EventImpl>>, 
int>,
 
  575          std::enable_if_t<!std::is_function_v<std::remove_pointer_t<FUNC>>, 
int>,
 
  583template <
typename... Us, 
typename... Ts>
 
  590template <
typename FUNC,
 
  591          std::enable_if_t<!std::is_convertible_v<FUNC, Ptr<EventImpl>>, 
int>,
 
  592          std::enable_if_t<!std::is_function_v<std::remove_pointer_t<FUNC>>, 
int>,
 
  600template <
typename... Us, 
typename... Ts>
 
  607template <
typename FUNC,
 
  608          std::enable_if_t<!std::is_convertible_v<FUNC, Ptr<EventImpl>>, 
int>,
 
  609          std::enable_if_t<!std::is_function_v<std::remove_pointer_t<FUNC>>, 
int>,
 
  617template <
typename... Us, 
typename... Ts>
 
An identifier for simulation events.
Instantiate subclasses of ns3::Object.
Smart pointer class similar to boost::intrusive_ptr.
Control the scheduling of simulation events.
static EventId DoScheduleDestroy(EventImpl *event)
Implementation of the various ScheduleDestroy methods.
static EventId Schedule(const Time &delay, FUNC f, Ts &&... args)
Schedule an event to expire after delay.
static Ptr< SimulatorImpl > GetImplementation()
Get the SimulatorImpl singleton.
static void Cancel(const EventId &id)
Set the cancel bit on this event: the event's associated function will not be invoked when it expires...
static void Destroy()
Execute the events scheduled with ScheduleDestroy().
static void ScheduleWithContext(uint32_t context, const Time &delay, FUNC f, Ts &&... args)
Schedule an event with the given context.
static EventId m_stopEvent
Stop event (if present)
static bool IsFinished()
Check if the simulation should finish.
static uint32_t GetSystemId()
Get the system id of this simulator.
@ NO_CONTEXT
Flag for events not associated with any particular context.
static Time Now()
Return the current simulation virtual time.
static void Run()
Run the simulation.
static bool IsExpired(const EventId &id)
Check if an event has already run or been cancelled.
static EventId ScheduleDestroy(FUNC f, Ts &&... args)
Schedule an event to run at the end of the simulation, when Simulator::Destroy() is called.
static void SetScheduler(ObjectFactory schedulerFactory)
Set the scheduler type with an ObjectFactory.
static EventId DoScheduleNow(EventImpl *event)
Implementation of the various ScheduleNow methods.
static uint64_t GetEventCount()
Get the number of events executed.
static EventId ScheduleNow(FUNC f, Ts &&... args)
Schedule an event to expire Now.
static EventId DoSchedule(const Time &delay, EventImpl *event)
Implementation of the various Schedule methods.
static Time GetMaximumSimulationTime()
Get the maximum representable simulation time.
static void Remove(const EventId &id)
Remove an event from the event list.
static EventId GetStopEvent()
Returns the Stop Event, or an invalid event if the simulation does not have a scheduled stop time.
static void Stop()
Tell the Simulator the calling event should be the last one executed.
static void SetImplementation(Ptr< SimulatorImpl > impl)
static uint32_t GetContext()
Get the current simulation context.
static Time GetDelayLeft(const EventId &id)
Get the remaining time until this event will execute.
Simulation virtual time values and global simulation resolution.
ns3::EventId declarations.
ns3::EventImpl declarations.
std::enable_if_t< std::is_member_pointer_v< MEM >, EventImpl * > MakeEvent(MEM mem_ptr, OBJ obj, Ts... args)
Make an EventImpl from class method members which take varying numbers of arguments.
Time Now()
create an ns3::Time instance which contains the current simulation time.
ns3::MakeEvent function declarations and template implementation.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Declaration of classes ns3::Time and ns3::TimeWithUnit, and the TimeValue implementation classes.
ns3::ObjectFactory class declaration.