54template <
typename MEM,
typename OBJ>
55EventImpl*
MakeEvent(MEM mem_ptr, OBJ obj);
67template <
typename MEM,
typename OBJ,
typename T1>
68EventImpl*
MakeEvent(MEM mem_ptr, OBJ obj, T1 a1);
82template <
typename MEM,
typename OBJ,
typename T1,
typename T2>
83EventImpl*
MakeEvent(MEM mem_ptr, OBJ obj, T1 a1, T2 a2);
99template <
typename MEM,
typename OBJ,
typename T1,
typename T2,
typename T3>
100EventImpl*
MakeEvent(MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3);
118template <
typename MEM,
typename OBJ,
typename T1,
typename T2,
typename T3,
typename T4>
119EventImpl*
MakeEvent(MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3, T4 a4);
139template <
typename MEM,
146EventImpl*
MakeEvent(MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
168template <
typename MEM,
176EventImpl*
MakeEvent(MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6);
206template <
typename U1,
typename T1>
220template <
typename U1,
typename U2,
typename T1,
typename T2>
221EventImpl*
MakeEvent(
void (*
f)(U1, U2), T1 a1, T2 a2);
237template <
typename U1,
typename U2,
typename U3,
typename T1,
typename T2,
typename T3>
238EventImpl*
MakeEvent(
void (*
f)(U1, U2, U3), T1 a1, T2 a2, T3 a3);
257template <
typename U1,
265EventImpl*
MakeEvent(
void (*
f)(U1, U2, U3, U4), T1 a1, T2 a2, T3 a3, T4 a4);
287template <
typename U1,
297EventImpl*
MakeEvent(
void (*
f)(U1, U2, U3, U4, U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
322template <
typename U1,
334EventImpl*
MakeEvent(
void (*
f)(U1, U2, U3, U4, U5, U6), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6);
395template <
typename MEM,
typename OBJ>
400 class EventMemberImpl0 :
public EventImpl
403 EventMemberImpl0(OBJ obj, MEM function)
409 ~EventMemberImpl0()
override
414 void Notify()
override
421 }* ev =
new EventMemberImpl0(obj, mem_ptr);
426template <
typename MEM,
typename OBJ,
typename T1>
431 class EventMemberImpl1 :
public EventImpl
434 EventMemberImpl1(OBJ obj, MEM function, T1 a1)
436 m_function(function),
442 ~EventMemberImpl1()
override
447 void Notify()
override
455 }* ev =
new EventMemberImpl1(obj, mem_ptr, a1);
460template <
typename MEM,
typename OBJ,
typename T1,
typename T2>
465 class EventMemberImpl2 :
public EventImpl
468 EventMemberImpl2(OBJ obj, MEM function, T1 a1, T2 a2)
470 m_function(function),
477 ~EventMemberImpl2()
override
482 void Notify()
override
491 }* ev =
new EventMemberImpl2(obj, mem_ptr, a1, a2);
496template <
typename MEM,
typename OBJ,
typename T1,
typename T2,
typename T3>
501 class EventMemberImpl3 :
public EventImpl
504 EventMemberImpl3(OBJ obj, MEM function, T1 a1, T2 a2, T3 a3)
506 m_function(function),
514 ~EventMemberImpl3()
override
519 void Notify()
override
529 }* ev =
new EventMemberImpl3(obj, mem_ptr, a1, a2, a3);
534template <
typename MEM,
typename OBJ,
typename T1,
typename T2,
typename T3,
typename T4>
536MakeEvent(MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3, T4 a4)
539 class EventMemberImpl4 :
public EventImpl
542 EventMemberImpl4(OBJ obj, MEM function, T1 a1, T2 a2, T3 a3, T4 a4)
544 m_function(function),
553 ~EventMemberImpl4()
override
558 void Notify()
override
561 m_function)(m_a1, m_a2, m_a3, m_a4);
570 }* ev =
new EventMemberImpl4(obj, mem_ptr, a1, a2, a3, a4);
575template <
typename MEM,
583MakeEvent(MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
586 class EventMemberImpl5 :
public EventImpl
589 EventMemberImpl5(OBJ obj, MEM function, T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
591 m_function(function),
601 ~EventMemberImpl5()
override
606 void Notify()
override
609 m_function)(m_a1, m_a2, m_a3, m_a4, m_a5);
619 }* ev =
new EventMemberImpl5(obj, mem_ptr, a1, a2, a3, a4, a5);
624template <
typename MEM,
633MakeEvent(MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
636 class EventMemberImpl6 :
public EventImpl
639 EventMemberImpl6(OBJ obj, MEM function, T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
641 m_function(function),
652 ~EventMemberImpl6()
override
657 void Notify()
override
660 m_function)(m_a1, m_a2, m_a3, m_a4, m_a5, m_a6);
671 }* ev =
new EventMemberImpl6(obj, mem_ptr, a1, a2, a3, a4, a5, a6);
676template <
typename U1,
typename T1>
681 class EventFunctionImpl1 :
public EventImpl
684 [[maybe_unused]]
typedef void (*F)(U1);
686 EventFunctionImpl1(F function, T1 a1)
687 : m_function(function),
693 ~EventFunctionImpl1()
override
698 void Notify()
override
705 }* ev =
new EventFunctionImpl1(
f, a1);
710template <
typename U1,
typename U2,
typename T1,
typename T2>
715 class EventFunctionImpl2 :
public EventImpl
718 [[maybe_unused]]
typedef void (*F)(U1, U2);
720 EventFunctionImpl2(F function, T1 a1, T2 a2)
721 : m_function(function),
728 ~EventFunctionImpl2()
override
733 void Notify()
override
735 (*m_function)(m_a1, m_a2);
741 }* ev =
new EventFunctionImpl2(
f, a1, a2);
746template <
typename U1,
typename U2,
typename U3,
typename T1,
typename T2,
typename T3>
751 class EventFunctionImpl3 :
public EventImpl
754 [[maybe_unused]]
typedef void (*F)(U1, U2, U3);
756 EventFunctionImpl3(F function, T1 a1, T2 a2, T3 a3)
757 : m_function(function),
765 ~EventFunctionImpl3()
override
770 void Notify()
override
772 (*m_function)(m_a1, m_a2, m_a3);
779 }* ev =
new EventFunctionImpl3(
f, a1, a2, a3);
784template <
typename U1,
793MakeEvent(
void (*
f)(U1, U2, U3, U4), T1 a1, T2 a2, T3 a3, T4 a4)
796 class EventFunctionImpl4 :
public EventImpl
799 [[maybe_unused]]
typedef void (*F)(U1, U2, U3, U4);
801 EventFunctionImpl4(F function, T1 a1, T2 a2, T3 a3, T4 a4)
802 : m_function(function),
811 ~EventFunctionImpl4()
override
816 void Notify()
override
818 (*m_function)(m_a1, m_a2, m_a3, m_a4);
826 }* ev =
new EventFunctionImpl4(
f, a1, a2, a3, a4);
831template <
typename U1,
842MakeEvent(
void (*
f)(U1, U2, U3, U4, U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
845 class EventFunctionImpl5 :
public EventImpl
848 [[maybe_unused]]
typedef void (*F)(U1, U2, U3, U4, U5);
850 EventFunctionImpl5(F function, T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
851 : m_function(function),
861 ~EventFunctionImpl5()
override
866 void Notify()
override
868 (*m_function)(m_a1, m_a2, m_a3, m_a4, m_a5);
877 }* ev =
new EventFunctionImpl5(
f, a1, a2, a3, a4, a5);
882template <
typename U1,
895MakeEvent(
void (*
f)(U1, U2, U3, U4, U5, U6), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
898 class EventFunctionImpl6 :
public EventImpl
901 [[maybe_unused]]
typedef void (*F)(U1, U2, U3, U4, U5, U6);
903 EventFunctionImpl6(F function, T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
904 : m_function(function),
915 ~EventFunctionImpl6()
override
920 void Notify()
override
922 (*m_function)(m_a1, m_a2, m_a3, m_a4, m_a5, m_a6);
932 }* ev =
new EventFunctionImpl6(
f, a1, a2, a3, a4, a5, a6);
941 class EventImplFunctional :
public EventImpl
944 EventImplFunctional(T function)
945 : m_function(function)
949 ~EventImplFunctional()
override
954 void Notify()
override
960 }* ev =
new EventImplFunctional(function);
double f(double x, void *params)
ns3::EventImpl declarations.
EventImpl * MakeEvent(void(*f)())
Make an EventImpl from a function pointer taking varying numbers of arguments.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
static T & GetReference(T *p)
Helper for the MakeEvent functions which take a class method.
ReferenceTraits< T >::ReferencedType ReferencedType
Referenced type.
ns3::TypeTraits introspection declaration and template implementation.