146 static void Run (
void);
156 static void Stop (
void);
167 static void Stop (
const Time &delay);
228 template <
typename MEM,
typename OBJ>
242 template <
typename MEM,
typename OBJ,
typename T1>
258 template <
typename MEM,
typename OBJ,
typename T1,
typename T2>
276 template <
typename MEM,
typename OBJ,
277 typename T1,
typename T2,
typename T3>
297 template <
typename MEM,
typename OBJ,
298 typename T1,
typename T2,
typename T3,
typename T4>
299 static EventId Schedule (
Time const &delay, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3, T4 a4);
320 template <
typename MEM,
typename OBJ,
321 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
323 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
337 template <
typename MEM,
typename OBJ,
338 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
340 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6);
365 template <
typename U1,
typename T1>
380 template <
typename U1,
typename U2,
381 typename T1,
typename T2>
399 template <
typename U1,
typename U2,
typename U3,
400 typename T1,
typename T2,
typename T3>
421 template <
typename U1,
typename U2,
typename U3,
typename U4,
422 typename T1,
typename T2,
typename T3,
typename T4>
423 static EventId Schedule (
Time const &delay,
void (*
f)(U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4);
446 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
447 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
448 static EventId Schedule (
Time const &delay,
void (*
f)(U1,U2,U3,U4,U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
461 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
462 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
463 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);
487 template <
typename MEM,
typename OBJ>
501 template <
typename MEM,
typename OBJ,
typename T1>
517 template <
typename MEM,
typename OBJ,
typename T1,
typename T2>
535 template <
typename MEM,
typename OBJ,
536 typename T1,
typename T2,
typename T3>
537 static void ScheduleWithContext (uint32_t context,
Time const &delay, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3);
556 template <
typename MEM,
typename OBJ,
557 typename T1,
typename T2,
typename T3,
typename T4>
558 static void ScheduleWithContext (uint32_t context,
Time const &delay, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3, T4 a4);
579 template <
typename MEM,
typename OBJ,
580 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
582 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
598 template <
typename MEM,
typename OBJ,
599 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
601 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6);
627 template <
typename U1,
643 template <
typename U1,
typename U2,
644 typename T1,
typename T2>
662 template <
typename U1,
typename U2,
typename U3,
663 typename T1,
typename T2,
typename T3>
684 template <
typename U1,
typename U2,
typename U3,
typename U4,
685 typename T1,
typename T2,
typename T3,
typename T4>
686 static void ScheduleWithContext (uint32_t context,
Time const &delay,
void (*
f)(U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4);
709 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
710 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
711 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);
726 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
727 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
728 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);
747 template <
typename MEM,
typename OBJ>
760 template <
typename MEM,
typename OBJ,
776 template <
typename MEM,
typename OBJ,
777 typename T1,
typename T2>
794 template <
typename MEM,
typename OBJ,
795 typename T1,
typename T2,
typename T3>
814 template <
typename MEM,
typename OBJ,
815 typename T1,
typename T2,
typename T3,
typename T4>
817 T1 a1, T2 a2, T3 a3, T4 a4);
836 template <
typename MEM,
typename OBJ,
837 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
839 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
852 template <
typename MEM,
typename OBJ,
853 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
855 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6);
875 template <
typename U1,
890 template <
typename U1,
typename U2,
891 typename T1,
typename T2>
908 template <
typename U1,
typename U2,
typename U3,
909 typename T1,
typename T2,
typename T3>
929 template <
typename U1,
typename U2,
typename U3,
typename U4,
930 typename T1,
typename T2,
typename T3,
typename T4>
953 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
954 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
967 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
968 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
969 static EventId ScheduleNow (
void (*
f)(U1,U2,U3,U4,U5,U6), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6);
989 template <
typename MEM,
typename OBJ>
1002 template <
typename MEM,
typename OBJ,
1018 template <
typename MEM,
typename OBJ,
1019 typename T1,
typename T2>
1036 template <
typename MEM,
typename OBJ,
1037 typename T1,
typename T2,
typename T3>
1056 template <
typename MEM,
typename OBJ,
1057 typename T1,
typename T2,
typename T3,
typename T4>
1059 T1 a1, T2 a2, T3 a3, T4 a4);
1078 template <
typename MEM,
typename OBJ,
1079 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1081 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
1094 template <
typename MEM,
typename OBJ,
1095 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1097 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6);
1116 template <
typename U1,
1131 template <
typename U1,
typename U2,
1132 typename T1,
typename T2>
1149 template <
typename U1,
typename U2,
typename U3,
1150 typename T1,
typename T2,
typename T3>
1170 template <
typename U1,
typename U2,
typename U3,
typename U4,
1171 typename T1,
typename T2,
typename T3,
typename T4>
1194 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
1195 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1208 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
1209 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1210 static EventId ScheduleDestroy (
void (*
f)(U1,U2,U3,U4,U5,U6), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6);
1388 template <
typename MEM,
typename OBJ>
1395 template <
typename MEM,
typename OBJ,
1402 template <
typename MEM,
typename OBJ,
1403 typename T1,
typename T2>
1409 template <
typename MEM,
typename OBJ,
1410 typename T1,
typename T2,
typename T3>
1416 template <
typename MEM,
typename OBJ,
1417 typename T1,
typename T2,
typename T3,
typename T4>
1423 template <
typename MEM,
typename OBJ,
1424 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1426 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
1431 template <
typename MEM,
typename OBJ,
1432 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1434 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
1439 template <
typename U1,
1446 template <
typename U1,
typename U2,
1447 typename T1,
typename T2>
1453 template <
typename U1,
typename U2,
typename U3,
1454 typename T1,
typename T2,
typename T3>
1460 template <
typename U1,
typename U2,
typename U3,
typename U4,
1461 typename T1,
typename T2,
typename T3,
typename T4>
1467 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
1468 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1469 EventId Simulator::Schedule (
Time const &delay,
void (*
f)(U1,U2,U3,U4,U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
1474 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
1475 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1476 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)
1482 template <
typename MEM,
typename OBJ>
1489 template <
typename MEM,
typename OBJ,
1496 template <
typename MEM,
typename OBJ,
1497 typename T1,
typename T2>
1503 template <
typename MEM,
typename OBJ,
1504 typename T1,
typename T2,
typename T3>
1510 template <
typename MEM,
typename OBJ,
1511 typename T1,
typename T2,
typename T3,
typename T4>
1517 template <
typename MEM,
typename OBJ,
1518 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1520 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
1525 template <
typename MEM,
typename OBJ,
1526 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1528 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
1533 template <
typename U1,
1540 template <
typename U1,
typename U2,
1541 typename T1,
typename T2>
1547 template <
typename U1,
typename U2,
typename U3,
1548 typename T1,
typename T2,
typename T3>
1554 template <
typename U1,
typename U2,
typename U3,
typename U4,
1555 typename T1,
typename T2,
typename T3,
typename T4>
1561 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
1562 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1563 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)
1568 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
1569 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1570 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)
1576 template <
typename MEM,
typename OBJ>
1584 template <
typename MEM,
typename OBJ,
1592 template <
typename MEM,
typename OBJ,
1593 typename T1,
typename T2>
1600 template <
typename MEM,
typename OBJ,
1601 typename T1,
typename T2,
typename T3>
1608 template <
typename MEM,
typename OBJ,
1609 typename T1,
typename T2,
typename T3,
typename T4>
1616 template <
typename MEM,
typename OBJ,
1617 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1620 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
1625 template <
typename MEM,
typename OBJ,
1626 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1629 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
1634 template <
typename U1,
1642 template <
typename U1,
typename U2,
1643 typename T1,
typename T2>
1650 template <
typename U1,
typename U2,
typename U3,
1651 typename T1,
typename T2,
typename T3>
1658 template <
typename U1,
typename U2,
typename U3,
typename U4,
1659 typename T1,
typename T2,
typename T3,
typename T4>
1666 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
1667 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1674 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
1675 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1677 Simulator::ScheduleNow (
void (*
f)(U1,U2,U3,U4,U5,U6), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
1683 template <
typename MEM,
typename OBJ>
1691 template <
typename MEM,
typename OBJ,
1699 template <
typename MEM,
typename OBJ,
1700 typename T1,
typename T2>
1707 template <
typename MEM,
typename OBJ,
1708 typename T1,
typename T2,
typename T3>
1715 template <
typename MEM,
typename OBJ,
1716 typename T1,
typename T2,
typename T3,
typename T4>
1723 template <
typename MEM,
typename OBJ,
1724 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1727 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
1732 template <
typename MEM,
typename OBJ,
1733 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1736 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
1741 template <
typename U1,
1749 template <
typename U1,
typename U2,
1750 typename T1,
typename T2>
1757 template <
typename U1,
typename U2,
typename U3,
1758 typename T1,
typename T2,
typename T3>
1765 template <
typename U1,
typename U2,
typename U3,
typename U4,
1766 typename T1,
typename T2,
typename T3,
typename T4>
1773 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
1774 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1781 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
1782 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1784 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 uint64_t GetEventCount(void)
Get the number of events executed.
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.
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.
Flag for events not associated with any particular context.
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.