146 static void Run (
void);
156 static void Stop (
void);
167 static void Stop (
const Time &delay);
221 template <
typename MEM,
typename OBJ>
235 template <
typename MEM,
typename OBJ,
typename T1>
251 template <
typename MEM,
typename OBJ,
typename T1,
typename T2>
269 template <
typename MEM,
typename OBJ,
270 typename T1,
typename T2,
typename T3>
290 template <
typename MEM,
typename OBJ,
291 typename T1,
typename T2,
typename T3,
typename T4>
292 static EventId Schedule (
Time const &delay, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3, T4 a4);
313 template <
typename MEM,
typename OBJ,
314 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
316 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
330 template <
typename MEM,
typename OBJ,
331 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
333 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6);
358 template <
typename U1,
typename T1>
373 template <
typename U1,
typename U2,
374 typename T1,
typename T2>
392 template <
typename U1,
typename U2,
typename U3,
393 typename T1,
typename T2,
typename T3>
414 template <
typename U1,
typename U2,
typename U3,
typename U4,
415 typename T1,
typename T2,
typename T3,
typename T4>
416 static EventId Schedule (
Time const &delay,
void (*
f)(U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4);
439 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
440 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
441 static EventId Schedule (
Time const &delay,
void (*
f)(U1,U2,U3,U4,U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
454 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
455 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
456 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);
480 template <
typename MEM,
typename OBJ>
494 template <
typename MEM,
typename OBJ,
typename T1>
510 template <
typename MEM,
typename OBJ,
typename T1,
typename T2>
528 template <
typename MEM,
typename OBJ,
529 typename T1,
typename T2,
typename T3>
530 static void ScheduleWithContext (uint32_t context,
Time const &delay, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3);
549 template <
typename MEM,
typename OBJ,
550 typename T1,
typename T2,
typename T3,
typename T4>
551 static void ScheduleWithContext (uint32_t context,
Time const &delay, MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3, T4 a4);
572 template <
typename MEM,
typename OBJ,
573 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
575 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
591 template <
typename MEM,
typename OBJ,
592 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
594 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6);
620 template <
typename U1,
636 template <
typename U1,
typename U2,
637 typename T1,
typename T2>
655 template <
typename U1,
typename U2,
typename U3,
656 typename T1,
typename T2,
typename T3>
677 template <
typename U1,
typename U2,
typename U3,
typename U4,
678 typename T1,
typename T2,
typename T3,
typename T4>
679 static void ScheduleWithContext (uint32_t context,
Time const &delay,
void (*
f)(U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4);
702 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
703 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
704 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);
719 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
720 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
721 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);
740 template <
typename MEM,
typename OBJ>
753 template <
typename MEM,
typename OBJ,
769 template <
typename MEM,
typename OBJ,
770 typename T1,
typename T2>
787 template <
typename MEM,
typename OBJ,
788 typename T1,
typename T2,
typename T3>
807 template <
typename MEM,
typename OBJ,
808 typename T1,
typename T2,
typename T3,
typename T4>
810 T1 a1, T2 a2, T3 a3, T4 a4);
829 template <
typename MEM,
typename OBJ,
830 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
832 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
845 template <
typename MEM,
typename OBJ,
846 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
848 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6);
868 template <
typename U1,
883 template <
typename U1,
typename U2,
884 typename T1,
typename T2>
901 template <
typename U1,
typename U2,
typename U3,
902 typename T1,
typename T2,
typename T3>
922 template <
typename U1,
typename U2,
typename U3,
typename U4,
923 typename T1,
typename T2,
typename T3,
typename T4>
946 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
947 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
960 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
961 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
962 static EventId ScheduleNow (
void (*
f)(U1,U2,U3,U4,U5,U6), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6);
982 template <
typename MEM,
typename OBJ>
995 template <
typename MEM,
typename OBJ,
1011 template <
typename MEM,
typename OBJ,
1012 typename T1,
typename T2>
1029 template <
typename MEM,
typename OBJ,
1030 typename T1,
typename T2,
typename T3>
1049 template <
typename MEM,
typename OBJ,
1050 typename T1,
typename T2,
typename T3,
typename T4>
1052 T1 a1, T2 a2, T3 a3, T4 a4);
1071 template <
typename MEM,
typename OBJ,
1072 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1074 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
1087 template <
typename MEM,
typename OBJ,
1088 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1090 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6);
1109 template <
typename U1,
1124 template <
typename U1,
typename U2,
1125 typename T1,
typename T2>
1142 template <
typename U1,
typename U2,
typename U3,
1143 typename T1,
typename T2,
typename T3>
1163 template <
typename U1,
typename U2,
typename U3,
typename U4,
1164 typename T1,
typename T2,
typename T3,
typename T4>
1187 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
1188 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1201 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
1202 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1203 static EventId ScheduleDestroy (
void (*
f)(U1,U2,U3,U4,U5,U6), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6);
1380 template <
typename MEM,
typename OBJ>
1387 template <
typename MEM,
typename OBJ,
1394 template <
typename MEM,
typename OBJ,
1395 typename T1,
typename T2>
1401 template <
typename MEM,
typename OBJ,
1402 typename T1,
typename T2,
typename T3>
1408 template <
typename MEM,
typename OBJ,
1409 typename T1,
typename T2,
typename T3,
typename T4>
1415 template <
typename MEM,
typename OBJ,
1416 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1418 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
1423 template <
typename MEM,
typename OBJ,
1424 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1426 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
1431 template <
typename U1,
1438 template <
typename U1,
typename U2,
1439 typename T1,
typename T2>
1445 template <
typename U1,
typename U2,
typename U3,
1446 typename T1,
typename T2,
typename T3>
1452 template <
typename U1,
typename U2,
typename U3,
typename U4,
1453 typename T1,
typename T2,
typename T3,
typename T4>
1459 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
1460 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1461 EventId Simulator::Schedule (
Time const &delay,
void (*
f)(U1,U2,U3,U4,U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
1466 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
1467 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1468 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)
1474 template <
typename MEM,
typename OBJ>
1481 template <
typename MEM,
typename OBJ,
1488 template <
typename MEM,
typename OBJ,
1489 typename T1,
typename T2>
1495 template <
typename MEM,
typename OBJ,
1496 typename T1,
typename T2,
typename T3>
1502 template <
typename MEM,
typename OBJ,
1503 typename T1,
typename T2,
typename T3,
typename T4>
1509 template <
typename MEM,
typename OBJ,
1510 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1512 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
1517 template <
typename MEM,
typename OBJ,
1518 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1520 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
1525 template <
typename U1,
1532 template <
typename U1,
typename U2,
1533 typename T1,
typename T2>
1539 template <
typename U1,
typename U2,
typename U3,
1540 typename T1,
typename T2,
typename T3>
1546 template <
typename U1,
typename U2,
typename U3,
typename U4,
1547 typename T1,
typename T2,
typename T3,
typename T4>
1553 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
1554 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1555 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)
1560 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
1561 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1562 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)
1568 template <
typename MEM,
typename OBJ>
1576 template <
typename MEM,
typename OBJ,
1584 template <
typename MEM,
typename OBJ,
1585 typename T1,
typename T2>
1592 template <
typename MEM,
typename OBJ,
1593 typename T1,
typename T2,
typename T3>
1600 template <
typename MEM,
typename OBJ,
1601 typename T1,
typename T2,
typename T3,
typename T4>
1608 template <
typename MEM,
typename OBJ,
1609 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1612 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
1617 template <
typename MEM,
typename OBJ,
1618 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1621 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
1626 template <
typename U1,
1634 template <
typename U1,
typename U2,
1635 typename T1,
typename T2>
1642 template <
typename U1,
typename U2,
typename U3,
1643 typename T1,
typename T2,
typename T3>
1650 template <
typename U1,
typename U2,
typename U3,
typename U4,
1651 typename T1,
typename T2,
typename T3,
typename T4>
1658 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
1659 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1666 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
1667 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1669 Simulator::ScheduleNow (
void (*
f)(U1,U2,U3,U4,U5,U6), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
1675 template <
typename MEM,
typename OBJ>
1683 template <
typename MEM,
typename OBJ,
1691 template <
typename MEM,
typename OBJ,
1692 typename T1,
typename T2>
1699 template <
typename MEM,
typename OBJ,
1700 typename T1,
typename T2,
typename T3>
1707 template <
typename MEM,
typename OBJ,
1708 typename T1,
typename T2,
typename T3,
typename T4>
1715 template <
typename MEM,
typename OBJ,
1716 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1719 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
1724 template <
typename MEM,
typename OBJ,
1725 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1728 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
1733 template <
typename U1,
1741 template <
typename U1,
typename U2,
1742 typename T1,
typename T2>
1749 template <
typename U1,
typename U2,
typename U3,
1750 typename T1,
typename T2,
typename T3>
1757 template <
typename U1,
typename U2,
typename U3,
typename U4,
1758 typename T1,
typename T2,
typename T3,
typename T4>
1765 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
1766 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1773 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
1774 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
1776 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.
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.