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>
555template <
typename FUNC,
556 std::enable_if_t<!std::is_convertible_v<FUNC, Ptr<EventImpl>>,
int>,
557 std::enable_if_t<!std::is_function_v<std::remove_pointer_t<FUNC>>,
int>,
565template <
typename... Us,
typename... Ts>
572template <
typename FUNC,
573 std::enable_if_t<!std::is_convertible_v<FUNC, Ptr<EventImpl>>,
int>,
574 std::enable_if_t<!std::is_function_v<std::remove_pointer_t<FUNC>>,
int>,
582template <
typename... Us,
typename... Ts>
589template <
typename FUNC,
590 std::enable_if_t<!std::is_convertible_v<FUNC, Ptr<EventImpl>>,
int>,
591 std::enable_if_t<!std::is_function_v<std::remove_pointer_t<FUNC>>,
int>,
599template <
typename... Us,
typename... Ts>
606template <
typename FUNC,
607 std::enable_if_t<!std::is_convertible_v<FUNC, Ptr<EventImpl>>,
int>,
608 std::enable_if_t<!std::is_function_v<std::remove_pointer_t<FUNC>>,
int>,
616template <
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.