146 static void Run (
void);
156 static void Stop (
void);
167 static void Stop (
const Time &delay);
215 template <
typename MEM,
typename OBJ>
229 template <
typename MEM,
typename OBJ,
typename T1>
245 template <
typename MEM,
typename OBJ,
typename T1,
typename T2>
263 template <
typename MEM,
typename OBJ,
264 typename T1,
typename T2,
typename T3>
284 template <
typename MEM,
typename OBJ,
285 typename T1,
typename T2,
typename T3,
typename T4>
286 static EventId Schedule (
Time const &delay, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3, T4 a4);
307 template <
typename MEM,
typename OBJ,
308 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
310 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
324 template <
typename MEM,
typename OBJ,
325 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
327 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6);
352 template <
typename U1,
typename T1>
367 template <
typename U1,
typename U2,
368 typename T1,
typename T2>
386 template <
typename U1,
typename U2,
typename U3,
387 typename T1,
typename T2,
typename T3>
408 template <
typename U1,
typename U2,
typename U3,
typename U4,
409 typename T1,
typename T2,
typename T3,
typename T4>
410 static EventId Schedule (
Time const &delay,
void (*
f)(U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4);
433 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
434 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
435 static EventId Schedule (
Time const &delay,
void (*
f)(U1,U2,U3,U4,U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
448 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
449 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
450 static EventId Schedule (
Time const &time,
void (*
f)(U1,U2,U3,U4,U5,U6), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6);
474 template <
typename MEM,
typename OBJ>
488 template <
typename MEM,
typename OBJ,
typename T1>
504 template <
typename MEM,
typename OBJ,
typename T1,
typename T2>
522 template <
typename MEM,
typename OBJ,
523 typename T1,
typename T2,
typename T3>
524 static void ScheduleWithContext (uint32_t context,
Time const &delay, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3);
543 template <
typename MEM,
typename OBJ,
544 typename T1,
typename T2,
typename T3,
typename T4>
545 static void ScheduleWithContext (uint32_t context,
Time const &delay, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3, T4 a4);
566 template <
typename MEM,
typename OBJ,
567 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
569 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
585 template <
typename MEM,
typename OBJ,
586 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
588 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6);
614 template <
typename U1,
630 template <
typename U1,
typename U2,
631 typename T1,
typename T2>
649 template <
typename U1,
typename U2,
typename U3,
650 typename T1,
typename T2,
typename T3>
671 template <
typename U1,
typename U2,
typename U3,
typename U4,
672 typename T1,
typename T2,
typename T3,
typename T4>
673 static void ScheduleWithContext (uint32_t context,
Time const &delay,
void (*
f)(U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4);
696 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
697 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
698 static void ScheduleWithContext (uint32_t context,
Time const &delay,
void (*
f)(U1,U2,U3,U4,U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
713 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
714 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
715 static void ScheduleWithContext (uint32_t context,
Time const &time,
void (*
f)(U1,U2,U3,U4,U5,U6), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6);
734 template <
typename MEM,
typename OBJ>
747 template <
typename MEM,
typename OBJ,
763 template <
typename MEM,
typename OBJ,
764 typename T1,
typename T2>
781 template <
typename MEM,
typename OBJ,
782 typename T1,
typename T2,
typename T3>
801 template <
typename MEM,
typename OBJ,
802 typename T1,
typename T2,
typename T3,
typename T4>
804 T1 a1, T2 a2, T3 a3, T4 a4);
823 template <
typename MEM,
typename OBJ,
824 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
826 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
839 template <
typename MEM,
typename OBJ,
840 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
842 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6);
862 template <
typename U1,
877 template <
typename U1,
typename U2,
878 typename T1,
typename T2>
895 template <
typename U1,
typename U2,
typename U3,
896 typename T1,
typename T2,
typename T3>
916 template <
typename U1,
typename U2,
typename U3,
typename U4,
917 typename T1,
typename T2,
typename T3,
typename T4>
940 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
941 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
954 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
955 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
956 static EventId ScheduleNow (
void (*
f)(U1,U2,U3,U4,U5,U6), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6);
976 template <
typename MEM,
typename OBJ>
989 template <
typename MEM,
typename OBJ,
1005 template <
typename MEM,
typename OBJ,
1006 typename T1,
typename T2>
1023 template <
typename MEM,
typename OBJ,
1024 typename T1,
typename T2,
typename T3>
1043 template <
typename MEM,
typename OBJ,
1044 typename T1,
typename T2,
typename T3,
typename T4>
1046 T1 a1, T2 a2, T3 a3, T4 a4);
1065 template <
typename MEM,
typename OBJ,
1066 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1068 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
1081 template <
typename MEM,
typename OBJ,
1082 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1084 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6);
1103 template <
typename U1,
1118 template <
typename U1,
typename U2,
1119 typename T1,
typename T2>
1136 template <
typename U1,
typename U2,
typename U3,
1137 typename T1,
typename T2,
typename T3>
1157 template <
typename U1,
typename U2,
typename U3,
typename U4,
1158 typename T1,
typename T2,
typename T3,
typename T4>
1181 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
1182 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1195 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
1196 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1197 static EventId ScheduleDestroy (
void (*
f)(U1,U2,U3,U4,U5,U6), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6);
1374 template <
typename MEM,
typename OBJ>
1381 template <
typename MEM,
typename OBJ,
1388 template <
typename MEM,
typename OBJ,
1389 typename T1,
typename T2>
1395 template <
typename MEM,
typename OBJ,
1396 typename T1,
typename T2,
typename T3>
1402 template <
typename MEM,
typename OBJ,
1403 typename T1,
typename T2,
typename T3,
typename T4>
1409 template <
typename MEM,
typename OBJ,
1410 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1412 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
1417 template <
typename MEM,
typename OBJ,
1418 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1420 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
1425 template <
typename U1,
1432 template <
typename U1,
typename U2,
1433 typename T1,
typename T2>
1439 template <
typename U1,
typename U2,
typename U3,
1440 typename T1,
typename T2,
typename T3>
1446 template <
typename U1,
typename U2,
typename U3,
typename U4,
1447 typename T1,
typename T2,
typename T3,
typename T4>
1453 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
1454 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1455 EventId Simulator::Schedule (
Time const &delay,
void (*
f)(U1,U2,U3,U4,U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
1460 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
1461 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1462 EventId Simulator::Schedule (
Time const &time,
void (*
f)(U1,U2,U3,U4,U5,U6), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
1468 template <
typename MEM,
typename OBJ>
1475 template <
typename MEM,
typename OBJ,
1482 template <
typename MEM,
typename OBJ,
1483 typename T1,
typename T2>
1489 template <
typename MEM,
typename OBJ,
1490 typename T1,
typename T2,
typename T3>
1496 template <
typename MEM,
typename OBJ,
1497 typename T1,
typename T2,
typename T3,
typename T4>
1503 template <
typename MEM,
typename OBJ,
1504 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1506 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
1511 template <
typename MEM,
typename OBJ,
1512 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1514 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
1519 template <
typename U1,
1526 template <
typename U1,
typename U2,
1527 typename T1,
typename T2>
1533 template <
typename U1,
typename U2,
typename U3,
1534 typename T1,
typename T2,
typename T3>
1540 template <
typename U1,
typename U2,
typename U3,
typename U4,
1541 typename T1,
typename T2,
typename T3,
typename T4>
1547 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
1548 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1549 void Simulator::ScheduleWithContext (uint32_t context,
Time const &delay,
void (*
f)(U1,U2,U3,U4,U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
1554 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
1555 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1556 void Simulator::ScheduleWithContext (uint32_t context,
Time const &time,
void (*
f)(U1,U2,U3,U4,U5,U6), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
1562 template <
typename MEM,
typename OBJ>
1570 template <
typename MEM,
typename OBJ,
1578 template <
typename MEM,
typename OBJ,
1579 typename T1,
typename T2>
1586 template <
typename MEM,
typename OBJ,
1587 typename T1,
typename T2,
typename T3>
1594 template <
typename MEM,
typename OBJ,
1595 typename T1,
typename T2,
typename T3,
typename T4>
1602 template <
typename MEM,
typename OBJ,
1603 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1606 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
1611 template <
typename MEM,
typename OBJ,
1612 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1615 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
1620 template <
typename U1,
1628 template <
typename U1,
typename U2,
1629 typename T1,
typename T2>
1636 template <
typename U1,
typename U2,
typename U3,
1637 typename T1,
typename T2,
typename T3>
1644 template <
typename U1,
typename U2,
typename U3,
typename U4,
1645 typename T1,
typename T2,
typename T3,
typename T4>
1652 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
1653 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1660 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
1661 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1663 Simulator::ScheduleNow (
void (*
f)(U1,U2,U3,U4,U5,U6), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
1669 template <
typename MEM,
typename OBJ>
1677 template <
typename MEM,
typename OBJ,
1685 template <
typename MEM,
typename OBJ,
1686 typename T1,
typename T2>
1693 template <
typename MEM,
typename OBJ,
1694 typename T1,
typename T2,
typename T3>
1701 template <
typename MEM,
typename OBJ,
1702 typename T1,
typename T2,
typename T3,
typename T4>
1709 template <
typename MEM,
typename OBJ,
1710 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1713 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
1718 template <
typename MEM,
typename OBJ,
1719 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1722 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
1727 template <
typename U1,
1735 template <
typename U1,
typename U2,
1736 typename T1,
typename T2>
1743 template <
typename U1,
typename U2,
typename U3,
1744 typename T1,
typename T2,
typename T3>
1751 template <
typename U1,
typename U2,
typename U3,
typename U4,
1752 typename T1,
typename T2,
typename T3,
typename T4>
1759 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
1760 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1767 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
1768 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1770 Simulator::ScheduleDestroy (
void (*
f)(U1,U2,U3,U4,U5,U6), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
static Time GetDelayLeft(const EventId &id)
Get the remaining time until this event will execute.
Simulation virtual time values and global simulation resolution.
Smart pointer class similar to boost::intrusive_ptr.
Control the scheduling of simulation events.
ns3::EventImpl declarations.
static void SetImplementation(Ptr< SimulatorImpl > impl)
static EventId DoScheduleDestroy(EventImpl *event)
Implementation of the various ScheduleDestroy methods.
static Ptr< SimulatorImpl > GetImplementation(void)
Get the SimulatorImpl singleton.
static uint32_t GetSystemId(void)
Get the system id of this simulator.
static uint32_t GetContext(void)
Get the current simulation context.
ns3::ObjectFactory class declaration.
static void Run(void)
Run the simulation.
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...
void(* Time)(Time oldValue, Time newValue)
TracedValue callback signature for Time.
static EventId Schedule(Time const &delay, MEM mem_ptr, OBJ obj)
Schedule an event to expire after delay.
ns3::MakeEvent function declarations and template implementation.
Declaration of classes ns3::Time and ns3::TimeWithUnit, and the TimeValue implementation classes...
static EventId DoSchedule(Time const &delay, EventImpl *event)
Implementation of the various Schedule methods.
static void Destroy(void)
Execute the events scheduled with ScheduleDestroy().
double f(double x, void *params)
static void Remove(const EventId &id)
Remove an event from the event list.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
static bool IsExpired(const EventId &id)
Check if an event has already run or been cancelled.
Simulator()
Default constructor.
static EventId ScheduleNow(MEM mem_ptr, OBJ obj)
Schedule an event to expire Now.
static void SetScheduler(ObjectFactory schedulerFactory)
Set the scheduler type with an ObjectFactory.
static Time Now(void)
Return the current simulation virtual time.
Flag for events not associated with any particular context.
Instantiate subclasses of ns3::Object.
static void ScheduleWithContext(uint32_t context, Time const &delay, MEM mem_ptr, OBJ obj)
Schedule an event with the given context.
static EventId DoScheduleNow(EventImpl *event)
Implementation of the various ScheduleNow methods.
An identifier for simulation events.
static void Stop(void)
Tell the Simulator the calling event should be the last one executed.
static bool IsFinished(void)
Check if the simulation should finish.
static EventId ScheduleDestroy(MEM mem_ptr, OBJ obj)
Schedule an event to expire when Simulator::Destroy is called.
Time Now(void)
create an ns3::Time instance which contains the current simulation time.
ns3::EventId declarations.
static Time GetMaximumSimulationTime(void)
Get the maximum representable simulation time.
EventImpl * MakeEvent(void(*f)(void))
Make an EventImpl from a function pointer taking varying numbers of arguments.