Public Member Functions |
| Callback () |
template<typename FUNCTOR > |
| Callback (FUNCTOR const &functor, bool, bool) |
template<typename OBJ_PTR , typename MEM_PTR > |
| Callback (OBJ_PTR const &objPtr, MEM_PTR mem_ptr) |
| Callback (Ptr< CallbackImpl< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 > > const &impl) |
void | Assign (const CallbackBase &other) |
template<typename T > |
Callback< R, T2, T3, T4, T5,
T6, T7, T8, T9 > | Bind (T a) |
bool | CheckType (const CallbackBase &other) const |
bool | IsEqual (const CallbackBase &other) const |
bool | IsNull (void) const |
void | Nullify (void) |
R | operator() (void) const |
R | operator() (T1 a1) const |
R | operator() (T1 a1, T2 a2) const |
R | operator() (T1 a1, T2 a2, T3 a3) const |
R | operator() (T1 a1, T2 a2, T3 a3, T4 a4) const |
R | operator() (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5) const |
R | operator() (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6) const |
R | operator() (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7) const |
R | operator() (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7, T8 a8) const |
R | operator() (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7, T8 a8, T9 a9) const |
| CallbackBase () |
Ptr< CallbackImplBase > | GetImpl (void) const |
template<typename R, typename T1 = empty, typename T2 = empty, typename T3 = empty, typename T4 = empty, typename T5 = empty, typename T6 = empty, typename T7 = empty, typename T8 = empty, typename T9 = empty>
class ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >
Callback template class.
This class template implements the Functor Design Pattern. It is used to declare the type of a Callback:
- the first non-optional template argument represents the return type of the callback.
- the second optional template argument represents the type of the first argument to the callback.
- the third optional template argument represents the type of the second argument to the callback.
- the fourth optional template argument represents the type of the third argument to the callback.
- the fifth optional template argument represents the type of the fourth argument to the callback.
- the sixth optional template argument represents the type of the fifth argument to the callback.
Callback instances are built with the MakeCallback template functions. Callback instances have POD semantics: the memory they allocate is managed automatically, without user intervention which allows you to pass around Callback instances by value.
Sample code which shows how to use this class template as well as the function templates MakeCallback :
#include "ns3/callback.h"
#include "ns3/assert.h"
#include <iostream>
using namespace ns3;
static double
CbOne (
double a,
double b)
{
std::cout << "invoke cbOne a=" << a << ", b=" << b << std::endl;
return a;
}
public:
int CbTwo (double a) {
std::cout << "invoke cbTwo a=" << a << std::endl;
return -5;
}
};
int main (
int argc,
char *argv[])
{
double retOne;
retOne = one (10.0, 20.0);
int retTwo;
retTwo = two (10.0);
two = MakeNullCallback<int, double> ();
#if 0
#endif
#if 0
#endif
return 0;
}
Definition at line 369 of file callback.h.
template<typename R, typename T1 = empty, typename T2 = empty, typename T3 = empty, typename T4 = empty, typename T5 = empty, typename T6 = empty, typename T7 = empty, typename T8 = empty, typename T9 = empty>
template<typename R, typename T1 = empty, typename T2 = empty, typename T3 = empty, typename T4 = empty, typename T5 = empty, typename T6 = empty, typename T7 = empty, typename T8 = empty, typename T9 = empty>
template<typename FUNCTOR >
ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Callback |
( |
FUNCTOR const & |
functor, |
|
|
bool |
, |
|
|
bool |
|
|
) |
| |
|
inline |
template<typename R, typename T1 = empty, typename T2 = empty, typename T3 = empty, typename T4 = empty, typename T5 = empty, typename T6 = empty, typename T7 = empty, typename T8 = empty, typename T9 = empty>
template<typename OBJ_PTR , typename MEM_PTR >
ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Callback |
( |
OBJ_PTR const & |
objPtr, |
|
|
MEM_PTR |
mem_ptr |
|
) |
| |
|
inline |
template<typename R, typename T1 = empty, typename T2 = empty, typename T3 = empty, typename T4 = empty, typename T5 = empty, typename T6 = empty, typename T7 = empty, typename T8 = empty, typename T9 = empty>
ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Callback |
( |
Ptr< CallbackImpl< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 > > const & |
impl | ) |
|
|
inline |
template<typename R, typename T1 = empty, typename T2 = empty, typename T3 = empty, typename T4 = empty, typename T5 = empty, typename T6 = empty, typename T7 = empty, typename T8 = empty, typename T9 = empty>
Definition at line 444 of file callback.h.
Referenced by ns3::TracedCallback< T1, T2, T3, T4, T5, T6, T7, T8 >::Connect(), ns3::TracedCallback< T1, T2, T3, T4, T5, T6, T7, T8 >::ConnectWithoutContext(), ns3::TracedCallback< T1, T2, T3, T4, T5, T6, T7, T8 >::Disconnect(), and main().
template<typename R, typename T1 = empty, typename T2 = empty, typename T3 = empty, typename T4 = empty, typename T5 = empty, typename T6 = empty, typename T7 = empty, typename T8 = empty, typename T9 = empty>
template<typename T >
Callback<R,T2,T3,T4,T5,T6,T7,T8,T9> ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Bind |
( |
T |
a | ) |
|
|
inline |
Definition at line 390 of file callback.h.
Referenced by ns3::TracedCallback< T1, T2, T3, T4, T5, T6, T7, T8 >::Connect(), and ns3::TracedCallback< T1, T2, T3, T4, T5, T6, T7, T8 >::Disconnect().
template<typename R, typename T1 = empty, typename T2 = empty, typename T3 = empty, typename T4 = empty, typename T5 = empty, typename T6 = empty, typename T7 = empty, typename T8 = empty, typename T9 = empty>
template<typename R, typename T1 = empty, typename T2 = empty, typename T3 = empty, typename T4 = empty, typename T5 = empty, typename T6 = empty, typename T7 = empty, typename T8 = empty, typename T9 = empty>
template<typename R, typename T1 = empty, typename T2 = empty, typename T3 = empty, typename T4 = empty, typename T5 = empty, typename T6 = empty, typename T7 = empty, typename T8 = empty, typename T9 = empty>
template<typename R, typename T1 = empty, typename T2 = empty, typename T3 = empty, typename T4 = empty, typename T5 = empty, typename T6 = empty, typename T7 = empty, typename T8 = empty, typename T9 = empty>
CallbackImpl<R,T1,T2,T3,T4,T5,T6,T7,T8,T9>* ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::DoPeekImpl |
( |
void |
| ) |
const |
|
inlineprivate |
template<typename R, typename T1 = empty, typename T2 = empty, typename T3 = empty, typename T4 = empty, typename T5 = empty, typename T6 = empty, typename T7 = empty, typename T8 = empty, typename T9 = empty>
template<typename R, typename T1 = empty, typename T2 = empty, typename T3 = empty, typename T4 = empty, typename T5 = empty, typename T6 = empty, typename T7 = empty, typename T8 = empty, typename T9 = empty>
R ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::operator() |
( |
void |
| ) |
const |
|
inline |
template<typename R, typename T1 = empty, typename T2 = empty, typename T3 = empty, typename T4 = empty, typename T5 = empty, typename T6 = empty, typename T7 = empty, typename T8 = empty, typename T9 = empty>
R ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::operator() |
( |
T1 |
a1 | ) |
const |
|
inline |
template<typename R, typename T1 = empty, typename T2 = empty, typename T3 = empty, typename T4 = empty, typename T5 = empty, typename T6 = empty, typename T7 = empty, typename T8 = empty, typename T9 = empty>
R ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::operator() |
( |
T1 |
a1, |
|
|
T2 |
a2 |
|
) |
| const |
|
inline |
template<typename R, typename T1 = empty, typename T2 = empty, typename T3 = empty, typename T4 = empty, typename T5 = empty, typename T6 = empty, typename T7 = empty, typename T8 = empty, typename T9 = empty>
R ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::operator() |
( |
T1 |
a1, |
|
|
T2 |
a2, |
|
|
T3 |
a3 |
|
) |
| const |
|
inline |
template<typename R, typename T1 = empty, typename T2 = empty, typename T3 = empty, typename T4 = empty, typename T5 = empty, typename T6 = empty, typename T7 = empty, typename T8 = empty, typename T9 = empty>
R ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::operator() |
( |
T1 |
a1, |
|
|
T2 |
a2, |
|
|
T3 |
a3, |
|
|
T4 |
a4 |
|
) |
| const |
|
inline |
template<typename R, typename T1 = empty, typename T2 = empty, typename T3 = empty, typename T4 = empty, typename T5 = empty, typename T6 = empty, typename T7 = empty, typename T8 = empty, typename T9 = empty>
R ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::operator() |
( |
T1 |
a1, |
|
|
T2 |
a2, |
|
|
T3 |
a3, |
|
|
T4 |
a4, |
|
|
T5 |
a5 |
|
) |
| const |
|
inline |
template<typename R, typename T1 = empty, typename T2 = empty, typename T3 = empty, typename T4 = empty, typename T5 = empty, typename T6 = empty, typename T7 = empty, typename T8 = empty, typename T9 = empty>
R ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::operator() |
( |
T1 |
a1, |
|
|
T2 |
a2, |
|
|
T3 |
a3, |
|
|
T4 |
a4, |
|
|
T5 |
a5, |
|
|
T6 |
a6 |
|
) |
| const |
|
inline |
template<typename R, typename T1 = empty, typename T2 = empty, typename T3 = empty, typename T4 = empty, typename T5 = empty, typename T6 = empty, typename T7 = empty, typename T8 = empty, typename T9 = empty>
R ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::operator() |
( |
T1 |
a1, |
|
|
T2 |
a2, |
|
|
T3 |
a3, |
|
|
T4 |
a4, |
|
|
T5 |
a5, |
|
|
T6 |
a6, |
|
|
T7 |
a7 |
|
) |
| const |
|
inline |
template<typename R, typename T1 = empty, typename T2 = empty, typename T3 = empty, typename T4 = empty, typename T5 = empty, typename T6 = empty, typename T7 = empty, typename T8 = empty, typename T9 = empty>
R ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::operator() |
( |
T1 |
a1, |
|
|
T2 |
a2, |
|
|
T3 |
a3, |
|
|
T4 |
a4, |
|
|
T5 |
a5, |
|
|
T6 |
a6, |
|
|
T7 |
a7, |
|
|
T8 |
a8 |
|
) |
| const |
|
inline |
template<typename R, typename T1 = empty, typename T2 = empty, typename T3 = empty, typename T4 = empty, typename T5 = empty, typename T6 = empty, typename T7 = empty, typename T8 = empty, typename T9 = empty>
R ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::operator() |
( |
T1 |
a1, |
|
|
T2 |
a2, |
|
|
T3 |
a3, |
|
|
T4 |
a4, |
|
|
T5 |
a5, |
|
|
T6 |
a6, |
|
|
T7 |
a7, |
|
|
T8 |
a8, |
|
|
T9 |
a9 |
|
) |
| const |
|
inline |