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);
332 template <
typename T>
345 template <
typename T>
358 template <
typename MEM,
typename OBJ>
362 class EventMemberImpl0 :
public EventImpl
365 EventMemberImpl0 (OBJ obj, MEM
function)
367 m_function (
function)
369 virtual ~EventMemberImpl0 ()
373 virtual void Notify (
void)
379 } *ev =
new EventMemberImpl0 (obj, mem_ptr);
384 template <
typename MEM,
typename OBJ,
389 class EventMemberImpl1 :
public EventImpl
392 EventMemberImpl1 (OBJ obj, MEM
function, T1 a1)
394 m_function (
function),
399 virtual ~EventMemberImpl1 ()
403 virtual void Notify (
void)
410 } *ev =
new EventMemberImpl1 (obj, mem_ptr, a1);
414 template <
typename MEM,
typename OBJ,
415 typename T1,
typename T2>
419 class EventMemberImpl2 :
public EventImpl
422 EventMemberImpl2 (OBJ obj, MEM
function, T1 a1, T2 a2)
424 m_function (
function),
430 virtual ~EventMemberImpl2 ()
434 virtual void Notify (
void)
442 } *ev =
new EventMemberImpl2 (obj, mem_ptr, a1, a2);
446 template <
typename MEM,
typename OBJ,
447 typename T1,
typename T2,
typename T3>
451 class EventMemberImpl3 :
public EventImpl
454 EventMemberImpl3 (OBJ obj, MEM
function, T1 a1, T2 a2, T3 a3)
456 m_function (
function),
463 virtual ~EventMemberImpl3 ()
467 virtual void Notify (
void)
476 } *ev =
new EventMemberImpl3 (obj, mem_ptr, a1, a2, a3);
480 template <
typename MEM,
typename OBJ,
481 typename T1,
typename T2,
typename T3,
typename T4>
485 class EventMemberImpl4 :
public EventImpl
488 EventMemberImpl4 (OBJ obj, MEM
function, T1 a1, T2 a2, T3 a3, T4 a4)
490 m_function (
function),
498 virtual ~EventMemberImpl4 ()
502 virtual void Notify (
void)
512 } *ev =
new EventMemberImpl4 (obj, mem_ptr, a1, a2, a3, a4);
516 template <
typename MEM,
typename OBJ,
517 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
519 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
522 class EventMemberImpl5 :
public EventImpl
525 EventMemberImpl5 (OBJ obj, MEM
function, T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
527 m_function (
function),
536 virtual ~EventMemberImpl5 ()
540 virtual void Notify (
void)
551 } *ev =
new EventMemberImpl5 (obj, mem_ptr, a1, a2, a3, a4, a5);
555 template <
typename MEM,
typename OBJ,
556 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
558 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
561 class EventMemberImpl6 :
public EventImpl
564 EventMemberImpl6 (OBJ obj, MEM
function, T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
566 m_function (
function),
576 virtual ~EventMemberImpl6 ()
580 virtual void Notify (
void)
592 } *ev =
new EventMemberImpl6 (obj, mem_ptr, a1, a2, a3, a4, a5, a6);
596 template <
typename U1,
typename T1>
600 class EventFunctionImpl1 :
public EventImpl
603 typedef void (*F)(U1);
605 EventFunctionImpl1 (F
function, T1 a1)
606 : m_function (
function),
611 virtual ~EventFunctionImpl1 ()
615 virtual void Notify (
void)
621 } *ev =
new EventFunctionImpl1 (
f, a1);
625 template <
typename U1,
typename U2,
typename T1,
typename T2>
629 class EventFunctionImpl2 :
public EventImpl
632 typedef void (*F)(U1, U2);
634 EventFunctionImpl2 (F
function, T1 a1, T2 a2)
635 : m_function (
function),
641 virtual ~EventFunctionImpl2 ()
645 virtual void Notify (
void)
647 (*m_function)(m_a1, m_a2);
652 } *ev =
new EventFunctionImpl2 (
f, a1, a2);
656 template <
typename U1,
typename U2,
typename U3,
657 typename T1,
typename T2,
typename T3>
661 class EventFunctionImpl3 :
public EventImpl
664 typedef void (*F)(U1, U2, U3);
666 EventFunctionImpl3 (F
function, T1 a1, T2 a2, T3 a3)
667 : m_function (
function),
674 virtual ~EventFunctionImpl3 ()
678 virtual void Notify (
void)
680 (*m_function)(m_a1, m_a2, m_a3);
686 } *ev =
new EventFunctionImpl3 (
f, a1, a2, a3);
690 template <
typename U1,
typename U2,
typename U3,
typename U4,
691 typename T1,
typename T2,
typename T3,
typename T4>
695 class EventFunctionImpl4 :
public EventImpl
698 typedef void (*F)(U1, U2, U3, U4);
700 EventFunctionImpl4 (F
function, T1 a1, T2 a2, T3 a3, T4 a4)
701 : m_function (
function),
709 virtual ~EventFunctionImpl4 ()
713 virtual void Notify (
void)
715 (*m_function)(m_a1, m_a2, m_a3, m_a4);
722 } *ev =
new EventFunctionImpl4 (
f, a1, a2, a3, a4);
726 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
727 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
731 class EventFunctionImpl5 :
public EventImpl
734 typedef void (*F)(U1,U2,U3,U4,U5);
736 EventFunctionImpl5 (F
function, T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
737 : m_function (
function),
746 virtual ~EventFunctionImpl5 ()
750 virtual void Notify (
void)
752 (*m_function)(m_a1, m_a2, m_a3, m_a4, m_a5);
760 } *ev =
new EventFunctionImpl5 (
f, a1, a2, a3, a4, a5);
764 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
typename U6,
765 typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
766 EventImpl *
MakeEvent (
void (*
f)(U1,U2,U3,U4,U5,U6), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
769 class EventFunctionImpl6 :
public EventImpl
772 typedef void (*F)(U1,U2,U3,U4,U5,U6);
774 EventFunctionImpl6 (F
function, T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
775 : m_function (
function),
785 virtual ~EventFunctionImpl6 ()
789 virtual void Notify (
void)
791 (*m_function)(m_a1, m_a2, m_a3, m_a4, m_a5, m_a6);
800 } *ev =
new EventFunctionImpl6 (
f, a1, a2, a3, a4, a5, a6);
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.
Inspect a type to deduce its features.
ReferenceTraits< T >::ReferencedType ReferencedType
Referenced type.
ns3::TypeTraits introspection declaration and template implementation.