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);
175 template <
typename U1,
177 EventImpl *
MakeEvent (
void (*f)(U1), T1 a1);
190 template <
typename U1,
typename U2,
191 typename T1,
typename T2>
192 EventImpl *
MakeEvent (
void (*f)(U1,U2), T1 a1, T2 a2);
208 template <
typename U1,
typename U2,
typename U3,
209 typename T1,
typename T2,
typename T3>
210 EventImpl *
MakeEvent (
void (*f)(U1,U2,U3), T1 a1, T2 a2, T3 a3);
229 template <
typename U1,
typename U2,
typename U3,
typename U4,
230 typename T1,
typename T2,
typename T3,
typename T4>
231 EventImpl *
MakeEvent (
void (*f)(U1,U2,U3,U4), T1 a1, T2 a2, T3 a3, T4 a4);
253 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
254 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
255 EventImpl *
MakeEvent (
void (*f)(U1,U2,U3,U4,U5), T1 a1, T2 a2, T3 a3, T4 a4, T5 a5);
279 template <
typename T>
292 template <
typename T>
305 template <
typename MEM,
typename OBJ>
309 class EventMemberImpl0 :
public EventImpl
312 EventMemberImpl0 (OBJ obj, MEM
function)
314 m_function (
function)
317 virtual ~EventMemberImpl0 ()
321 virtual void Notify (
void)
327 } *ev =
new EventMemberImpl0 (obj, mem_ptr);
332 template <
typename MEM,
typename OBJ,
337 class EventMemberImpl1 :
public EventImpl
340 EventMemberImpl1 (OBJ obj, MEM
function, T1 a1)
342 m_function (
function),
347 virtual ~EventMemberImpl1 ()
351 virtual void Notify (
void)
358 } *ev =
new EventMemberImpl1 (obj, mem_ptr, a1);
362 template <
typename MEM,
typename OBJ,
363 typename T1,
typename T2>
367 class EventMemberImpl2 :
public EventImpl
370 EventMemberImpl2 (OBJ obj, MEM
function, T1 a1, T2 a2)
372 m_function (
function),
378 virtual ~EventMemberImpl2 ()
382 virtual void Notify (
void)
390 } *ev =
new EventMemberImpl2 (obj, mem_ptr, a1, a2);
394 template <
typename MEM,
typename OBJ,
395 typename T1,
typename T2,
typename T3>
399 class EventMemberImpl3 :
public EventImpl
402 EventMemberImpl3 (OBJ obj, MEM
function, T1 a1, T2 a2, T3 a3)
404 m_function (
function),
411 virtual ~EventMemberImpl3 ()
415 virtual void Notify (
void)
424 } *ev =
new EventMemberImpl3 (obj, mem_ptr, a1, a2, a3);
428 template <
typename MEM,
typename OBJ,
429 typename T1,
typename T2,
typename T3,
typename T4>
433 class EventMemberImpl4 :
public EventImpl
436 EventMemberImpl4 (OBJ obj, MEM
function, T1 a1, T2 a2, T3 a3, T4 a4)
438 m_function (
function),
446 virtual ~EventMemberImpl4 ()
450 virtual void Notify (
void)
460 } *ev =
new EventMemberImpl4 (obj, mem_ptr, a1, a2, a3, a4);
464 template <
typename MEM,
typename OBJ,
465 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
467 T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
470 class EventMemberImpl5 :
public EventImpl
473 EventMemberImpl5 (OBJ obj, MEM
function, T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
475 m_function (
function),
484 virtual ~EventMemberImpl5 ()
488 virtual void Notify (
void)
499 } *ev =
new EventMemberImpl5 (obj, mem_ptr, a1, a2, a3, a4, a5);
503 template <
typename U1,
typename T1>
507 class EventFunctionImpl1 :
public EventImpl
510 typedef void (*F)(U1);
512 EventFunctionImpl1 (F
function, T1 a1)
513 : m_function (
function),
518 virtual ~EventFunctionImpl1 ()
522 virtual void Notify (
void)
528 } *ev =
new EventFunctionImpl1 (f, a1);
532 template <
typename U1,
typename U2,
typename T1,
typename T2>
536 class EventFunctionImpl2 :
public EventImpl
539 typedef void (*F)(U1, U2);
541 EventFunctionImpl2 (F
function, T1 a1, T2 a2)
542 : m_function (
function),
548 virtual ~EventFunctionImpl2 ()
552 virtual void Notify (
void)
554 (*m_function)(m_a1, m_a2);
559 } *ev =
new EventFunctionImpl2 (f, a1, a2);
563 template <
typename U1,
typename U2,
typename U3,
564 typename T1,
typename T2,
typename T3>
568 class EventFunctionImpl3 :
public EventImpl
571 typedef void (*F)(U1, U2, U3);
573 EventFunctionImpl3 (F
function, T1 a1, T2 a2, T3 a3)
574 : m_function (
function),
581 virtual ~EventFunctionImpl3 ()
585 virtual void Notify (
void)
587 (*m_function)(m_a1, m_a2, m_a3);
593 } *ev =
new EventFunctionImpl3 (f, a1, a2, a3);
597 template <
typename U1,
typename U2,
typename U3,
typename U4,
598 typename T1,
typename T2,
typename T3,
typename T4>
602 class EventFunctionImpl4 :
public EventImpl
605 typedef void (*F)(U1, U2, U3, U4);
607 EventFunctionImpl4 (F
function, T1 a1, T2 a2, T3 a3, T4 a4)
608 : m_function (
function),
616 virtual ~EventFunctionImpl4 ()
620 virtual void Notify (
void)
622 (*m_function)(m_a1, m_a2, m_a3, m_a4);
629 } *ev =
new EventFunctionImpl4 (f, a1, a2, a3, a4);
633 template <
typename U1,
typename U2,
typename U3,
typename U4,
typename U5,
634 typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
638 class EventFunctionImpl5 :
public EventImpl
641 typedef void (*F)(U1,U2,U3,U4,U5);
643 EventFunctionImpl5 (F
function, T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
644 : m_function (
function),
653 virtual ~EventFunctionImpl5 ()
657 virtual void Notify (
void)
659 (*m_function)(m_a1, m_a2, m_a3, m_a4, m_a5);
667 } *ev =
new EventFunctionImpl5 (f, a1, a2, a3, a4, a5);
ns3::EventImpl declarations.
Helper for the MakeEvent functions which take a class method.
static T & GetReference(T *p)
ReferenceTraits< T >::ReferencedType ReferencedType
Referenced type.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
EventImpl * MakeEvent(void(*f)(void))
Make an EventImpl from a function pointer taking varying numbers of arguments.