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.