54 template <
typename MEM,
typename OBJ>
55 EventImpl *
MakeEvent (MEM mem_ptr, OBJ obj);
67 template <
typename MEM,
typename OBJ,
69 EventImpl *
MakeEvent (MEM mem_ptr, OBJ obj, T1 a1);
83 template <
typename MEM,
typename OBJ,
84 typename T1,
typename T2>
85 EventImpl *
MakeEvent (MEM mem_ptr, OBJ obj, T1 a1, T2 a2);
101 template <
typename MEM,
typename OBJ,
102 typename T1,
typename T2,
typename T3>
103 EventImpl *
MakeEvent (MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3);
121 template <
typename MEM,
typename OBJ,
122 typename T1,
typename T2,
typename T3,
typename T4>
123 EventImpl *
MakeEvent (MEM mem_ptr, OBJ obj, T1 a1, T2 a2, T3 a3, T4 a4);
143 template <
typename MEM,
typename OBJ,
144 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
145 EventImpl *
MakeEvent (MEM mem_ptr, OBJ obj,
146 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
168 template <
typename MEM,
typename OBJ,
169 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
170 EventImpl *
MakeEvent (MEM mem_ptr, OBJ obj,
171 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6);
201 template <
typename U1,
216 template <
typename U1,
typename U2,
217 typename T1,
typename T2>
218 EventImpl *
MakeEvent (
void (*
f)(U1,U2), T1 a1, T2 a2);
234 template <
typename U1,
typename U2,
typename U3,
235 typename T1,
typename T2,
typename T3>
236 EventImpl *
MakeEvent (
void (*
f)(U1,U2,U3), T1 a1, T2 a2, T3 a3);
255 template <
typename U1,
typename U2,
typename U3,
typename U4,
256 typename T1,
typename T2,
typename T3,
typename T4>
257 EventImpl *
MakeEvent (
void (*
f)(U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4);
279 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
280 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
281 EventImpl *
MakeEvent (
void (*
f)(U1,U2,U3,U4,U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
306 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
307 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
308 EventImpl *
MakeEvent (
void (*
f)(U1,U2,U3,U4,U5,U6), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6);
316 template <
typename T>
343 template <
typename T>
356 template <
typename T>
369 template <
typename MEM,
typename OBJ>
373 class EventMemberImpl0 :
public EventImpl
376 EventMemberImpl0 (OBJ obj, MEM
function)
378 m_function (
function)
380 virtual ~EventMemberImpl0 ()
384 virtual void Notify (
void)
390 } *ev =
new EventMemberImpl0 (obj, mem_ptr);
395 template <
typename MEM,
typename OBJ,
400 class EventMemberImpl1 :
public EventImpl
403 EventMemberImpl1 (OBJ obj, MEM
function, T1 a1)
405 m_function (
function),
410 virtual ~EventMemberImpl1 ()
414 virtual void Notify (
void)
421 } *ev =
new EventMemberImpl1 (obj, mem_ptr, a1);
425 template <
typename MEM,
typename OBJ,
426 typename T1,
typename T2>
430 class EventMemberImpl2 :
public EventImpl
433 EventMemberImpl2 (OBJ obj, MEM
function, T1 a1, T2 a2)
435 m_function (
function),
441 virtual ~EventMemberImpl2 ()
445 virtual void Notify (
void)
453 } *ev =
new EventMemberImpl2 (obj, mem_ptr, a1, a2);
457 template <
typename MEM,
typename OBJ,
458 typename T1,
typename T2,
typename T3>
462 class EventMemberImpl3 :
public EventImpl
465 EventMemberImpl3 (OBJ obj, MEM
function, T1 a1, T2 a2, T3 a3)
467 m_function (
function),
474 virtual ~EventMemberImpl3 ()
478 virtual void Notify (
void)
487 } *ev =
new EventMemberImpl3 (obj, mem_ptr, a1, a2, a3);
491 template <
typename MEM,
typename OBJ,
492 typename T1,
typename T2,
typename T3,
typename T4>
496 class EventMemberImpl4 :
public EventImpl
499 EventMemberImpl4 (OBJ obj, MEM
function, T1 a1, T2 a2, T3 a3, T4 a4)
501 m_function (
function),
509 virtual ~EventMemberImpl4 ()
513 virtual void Notify (
void)
523 } *ev =
new EventMemberImpl4 (obj, mem_ptr, a1, a2, a3, a4);
527 template <
typename MEM,
typename OBJ,
528 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
530 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
533 class EventMemberImpl5 :
public EventImpl
536 EventMemberImpl5 (OBJ obj, MEM
function, T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
538 m_function (
function),
547 virtual ~EventMemberImpl5 ()
551 virtual void Notify (
void)
562 } *ev =
new EventMemberImpl5 (obj, mem_ptr, a1, a2, a3, a4, a5);
566 template <
typename MEM,
typename OBJ,
567 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
569 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
572 class EventMemberImpl6 :
public EventImpl
575 EventMemberImpl6 (OBJ obj, MEM
function, T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
577 m_function (
function),
587 virtual ~EventMemberImpl6 ()
591 virtual void Notify (
void)
603 } *ev =
new EventMemberImpl6 (obj, mem_ptr, a1, a2, a3, a4, a5, a6);
607 template <
typename U1,
typename T1>
611 class EventFunctionImpl1 :
public EventImpl
615 typedef void (*F)(U1);
617 EventFunctionImpl1 (F
function, T1 a1)
618 : m_function (
function),
623 virtual ~EventFunctionImpl1 ()
627 virtual void Notify (
void)
633 } *ev =
new EventFunctionImpl1 (
f, a1);
637 template <
typename U1,
typename U2,
typename T1,
typename T2>
641 class EventFunctionImpl2 :
public EventImpl
645 typedef void (*F)(U1, U2);
647 EventFunctionImpl2 (F
function, T1 a1, T2 a2)
648 : m_function (
function),
654 virtual ~EventFunctionImpl2 ()
658 virtual void Notify (
void)
660 (*m_function)(m_a1, m_a2);
665 } *ev =
new EventFunctionImpl2 (
f, a1, a2);
669 template <
typename U1,
typename U2,
typename U3,
670 typename T1,
typename T2,
typename T3>
674 class EventFunctionImpl3 :
public EventImpl
678 typedef void (*F)(U1, U2, U3);
680 EventFunctionImpl3 (F
function, T1 a1, T2 a2, T3 a3)
681 : m_function (
function),
688 virtual ~EventFunctionImpl3 ()
692 virtual void Notify (
void)
694 (*m_function)(m_a1, m_a2, m_a3);
700 } *ev =
new EventFunctionImpl3 (
f, a1, a2, a3);
704 template <
typename U1,
typename U2,
typename U3,
typename U4,
705 typename T1,
typename T2,
typename T3,
typename T4>
709 class EventFunctionImpl4 :
public EventImpl
713 typedef void (*F)(U1, U2, U3, U4);
715 EventFunctionImpl4 (F
function, T1 a1, T2 a2, T3 a3, T4 a4)
716 : m_function (
function),
724 virtual ~EventFunctionImpl4 ()
728 virtual void Notify (
void)
730 (*m_function)(m_a1, m_a2, m_a3, m_a4);
737 } *ev =
new EventFunctionImpl4 (
f, a1, a2, a3, a4);
741 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
742 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
746 class EventFunctionImpl5 :
public EventImpl
750 typedef void (*F)(U1,U2,U3,U4,U5);
752 EventFunctionImpl5 (F
function, T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
753 : m_function (
function),
762 virtual ~EventFunctionImpl5 ()
766 virtual void Notify (
void)
768 (*m_function)(m_a1, m_a2, m_a3, m_a4, m_a5);
776 } *ev =
new EventFunctionImpl5 (
f, a1, a2, a3, a4, a5);
780 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
781 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
782 EventImpl *
MakeEvent (
void (*
f)(U1,U2,U3,U4,U5,U6), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
785 class EventFunctionImpl6 :
public EventImpl
789 typedef void (*F)(U1,U2,U3,U4,U5,U6);
791 EventFunctionImpl6 (F
function, T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
792 : m_function (
function),
802 virtual ~EventFunctionImpl6 ()
806 virtual void Notify (
void)
808 (*m_function)(m_a1, m_a2, m_a3, m_a4, m_a5, m_a6);
817 } *ev =
new EventFunctionImpl6 (
f, a1, a2, a3, a4, a5, a6);
821 template <
typename T>
824 class EventImplFunctional :
public EventImpl
827 EventImplFunctional (T
function)
828 : m_function (
function)
831 virtual ~EventImplFunctional ()
835 virtual void Notify (
void)
840 } *ev =
new EventImplFunctional (
function);
double f(double x, void *params)
ns3::EventImpl declarations.
EventImpl * MakeEvent(void(*f)(void))
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.