A Discrete-Event Network Simulator
API
Classes | Namespaces | Functions
callback.h File Reference

Declaration of the various callback functions. More...

#include "ptr.h"
#include "fatal-error.h"
#include "empty.h"
#include "type-traits.h"
#include "attribute.h"
#include "attribute-helper.h"
#include "simple-ref-count.h"
#include <typeinfo>

Go to the source code of this file.

Classes

class  ns3::BoundFunctorCallbackImpl< T, R, TX, T1, T2, T3, T4, T5, T6, T7, T8 >
 CallbackImpl for functors with first argument bound at construction. More...
 
class  ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >
 Callback template class. More...
 
class  ns3::CallbackBase
 Base class for Callback class. More...
 
class  ns3::CallbackChecker
 
AttributeChecker implementation for CallbackValue. More...
 
class  ns3::CallbackImpl< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >
 The unqualified CallbackImpl class. More...
 
class  ns3::CallbackImpl< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >
 The unqualified CallbackImpl class. More...
 
class  ns3::CallbackImpl< R, empty, empty, empty, empty, empty, empty, empty, empty, empty >
 CallbackImpl classes with varying numbers of argument types. More...
 
class  ns3::CallbackImpl< R, T1, empty, empty, empty, empty, empty, empty, empty, empty >
 CallbackImpl class with one argument. More...
 
class  ns3::CallbackImpl< R, T1, T2, empty, empty, empty, empty, empty, empty, empty >
 CallbackImpl class with two arguments. More...
 
class  ns3::CallbackImpl< R, T1, T2, T3, empty, empty, empty, empty, empty, empty >
 CallbackImpl class with three arguments. More...
 
class  ns3::CallbackImpl< R, T1, T2, T3, T4, empty, empty, empty, empty, empty >
 CallbackImpl class with four arguments. More...
 
class  ns3::CallbackImpl< R, T1, T2, T3, T4, T5, empty, empty, empty, empty >
 CallbackImpl class with five arguments. More...
 
class  ns3::CallbackImpl< R, T1, T2, T3, T4, T5, T6, empty, empty, empty >
 CallbackImpl class with six arguments. More...
 
class  ns3::CallbackImpl< R, T1, T2, T3, T4, T5, T6, T7, empty, empty >
 CallbackImpl class with seven arguments. More...
 
class  ns3::CallbackImpl< R, T1, T2, T3, T4, T5, T6, T7, T8, empty >
 CallbackImpl class with eight arguments. More...
 
class  ns3::CallbackImplBase
 Abstract base class for CallbackImpl Provides reference counting and equality test. More...
 
struct  ns3::CallbackTraits< T >
 Trait class to convert a pointer into a reference, used by MemPtrCallBackImpl. More...
 
struct  ns3::CallbackTraits< T * >
 Trait class to convert a pointer into a reference, used by MemPtrCallBackImpl. More...
 
class  ns3::CallbackValue
 
AttributeValue implementation for Callback. More...
 
class  ns3::FunctorCallbackImpl< T, R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >
 CallbackImpl with functors. More...
 
class  ns3::MemPtrCallbackImpl< OBJ_PTR, MEM_PTR, R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >
 CallbackImpl for pointer to member functions. More...
 
class  ns3::ThreeBoundFunctorCallbackImpl< T, R, TX1, TX2, TX3, T1, T2, T3, T4, T5, T6 >
 CallbackImpl for functors with first three arguments bound at construction. More...
 
class  ns3::TwoBoundFunctorCallbackImpl< T, R, TX1, TX2, T1, T2, T3, T4, T5, T6, T7 >
 CallbackImpl for functors with first two arguments bound at construction. More...
 

Namespaces

 ns3
 Every class exported by the ns3 library is enclosed in the ns3 namespace.
 

Functions

template<typename T1 >
Ptr< const AttributeAccessor > ns3::MakeCallbackAccessor (T1 a1)
 
Create an AttributeAccessor for a class data member, or a lone class get functor or set method. More...
 
template<typename T1 , typename T2 >
Ptr< const AttributeAccessor > ns3::MakeCallbackAccessor (T1 a1, T2 a2)
 
Create an AttributeAccessor using a pair of get functor and set methods from a class. More...
 
Ptr< const AttributeChecker > ns3::MakeCallbackChecker (void)
 
More...
 
template<typename R , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
bool ns3::operator!= (Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 > a, Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 > b)
 Inequality test. More...
 
template<typename T , typename OBJ , typename R >
Callback< R > ns3::MakeCallback (R(T::*memPtr)(void), OBJ objPtr)
 
template<typename T , typename OBJ , typename R >
Callback< R > ns3::MakeCallback (R(T::*memPtr)() const, OBJ objPtr)
 
template<typename T , typename OBJ , typename R , typename T1 >
Callback< R, T1 > ns3::MakeCallback (R(T::*memPtr)(T1), OBJ objPtr)
 
template<typename T , typename OBJ , typename R , typename T1 , typename T2 >
Callback< R, T1, T2 > ns3::MakeCallback (R(T::*memPtr)(T1, T2), OBJ objPtr)
 
template<typename T , typename OBJ , typename R , typename T1 , typename T2 , typename T3 >
Callback< R, T1, T2, T3 > ns3::MakeCallback (R(T::*memPtr)(T1, T2, T3), OBJ objPtr)
 
template<typename T , typename OBJ , typename R , typename T1 , typename T2 , typename T3 , typename T4 >
Callback< R, T1, T2, T3, T4 > ns3::MakeCallback (R(T::*memPtr)(T1, T2, T3, T4), OBJ objPtr)
 
template<typename T , typename OBJ , typename R , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
Callback< R, T1, T2, T3, T4, T5 > ns3::MakeCallback (R(T::*memPtr)(T1, T2, T3, T4, T5), OBJ objPtr)
 
template<typename T , typename OBJ , typename R , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
Callback< R, T1, T2, T3, T4, T5, T6 > ns3::MakeCallback (R(T::*memPtr)(T1, T2, T3, T4, T5, T6), OBJ objPtr)
 
template<typename T , typename OBJ , typename R , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
Callback< R, T1, T2, T3, T4, T5, T6, T7 > ns3::MakeCallback (R(T::*memPtr)(T1, T2, T3, T4, T5, T6, T7), OBJ objPtr)
 
template<typename T , typename OBJ , typename R , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
Callback< R, T1, T2, T3, T4, T5, T6, T7, T8 > ns3::MakeCallback (R(T::*memPtr)(T1, T2, T3, T4, T5, T6, T7, T8), OBJ objPtr)
 
template<typename T , typename OBJ , typename R , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 > ns3::MakeCallback (R(T::*memPtr)(T1, T2, T3, T4, T5, T6, T7, T8, T9), OBJ objPtr)
 
template<typename R >
Callback< R > ns3::MakeCallback (R(*fnPtr)())
 
template<typename R , typename T1 >
Callback< R, T1 > ns3::MakeCallback (R(*fnPtr)(T1))
 
template<typename R , typename T1 , typename T2 >
Callback< R, T1, T2 > ns3::MakeCallback (R(*fnPtr)(T1, T2))
 
template<typename R , typename T1 , typename T2 , typename T3 >
Callback< R, T1, T2, T3 > ns3::MakeCallback (R(*fnPtr)(T1, T2, T3))
 
template<typename R , typename T1 , typename T2 , typename T3 , typename T4 >
Callback< R, T1, T2, T3, T4 > ns3::MakeCallback (R(*fnPtr)(T1, T2, T3, T4))
 
template<typename R , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
Callback< R, T1, T2, T3, T4, T5 > ns3::MakeCallback (R(*fnPtr)(T1, T2, T3, T4, T5))
 
template<typename R , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
Callback< R, T1, T2, T3, T4, T5, T6 > ns3::MakeCallback (R(*fnPtr)(T1, T2, T3, T4, T5, T6))
 
template<typename R , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
Callback< R, T1, T2, T3, T4, T5, T6, T7 > ns3::MakeCallback (R(*fnPtr)(T1, T2, T3, T4, T5, T6, T7))
 
template<typename R , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
Callback< R, T1, T2, T3, T4, T5, T6, T7, T8 > ns3::MakeCallback (R(*fnPtr)(T1, T2, T3, T4, T5, T6, T7, T8))
 
template<typename R , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 > ns3::MakeCallback (R(*fnPtr)(T1, T2, T3, T4, T5, T6, T7, T8, T9))
 
template<typename R >
Callback< R > ns3::MakeNullCallback (void)
 
template<typename R , typename T1 >
Callback< R, T1 > ns3::MakeNullCallback (void)
 
template<typename R , typename T1 , typename T2 >
Callback< R, T1, T2 > ns3::MakeNullCallback (void)
 
template<typename R , typename T1 , typename T2 , typename T3 >
Callback< R, T1, T2, T3 > ns3::MakeNullCallback (void)
 
template<typename R , typename T1 , typename T2 , typename T3 , typename T4 >
Callback< R, T1, T2, T3, T4 > ns3::MakeNullCallback (void)
 
template<typename R , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
Callback< R, T1, T2, T3, T4, T5 > ns3::MakeNullCallback (void)
 
template<typename R , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
Callback< R, T1, T2, T3, T4, T5, T6 > ns3::MakeNullCallback (void)
 
template<typename R , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
Callback< R, T1, T2, T3, T4, T5, T6, T7 > ns3::MakeNullCallback (void)
 
template<typename R , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
Callback< R, T1, T2, T3, T4, T5, T6, T7, T8 > ns3::MakeNullCallback (void)
 
template<typename R , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 > ns3::MakeNullCallback (void)
 
template<typename R , typename TX , typename ARG >
Callback< R > ns3::MakeBoundCallback (R(*fnPtr)(TX), ARG a1)
 Make Callbacks with one bound argument. More...
 
template<typename R , typename TX , typename ARG , typename T1 >
Callback< R, T1 > ns3::MakeBoundCallback (R(*fnPtr)(TX, T1), ARG a1)
 Make Callbacks with one bound argument. More...
 
template<typename R , typename TX , typename ARG , typename T1 , typename T2 >
Callback< R, T1, T2 > ns3::MakeBoundCallback (R(*fnPtr)(TX, T1, T2), ARG a1)
 Make Callbacks with one bound argument. More...
 
template<typename R , typename TX , typename ARG , typename T1 , typename T2 , typename T3 >
Callback< R, T1, T2, T3 > ns3::MakeBoundCallback (R(*fnPtr)(TX, T1, T2, T3), ARG a1)
 Make Callbacks with one bound argument. More...
 
template<typename R , typename TX , typename ARG , typename T1 , typename T2 , typename T3 , typename T4 >
Callback< R, T1, T2, T3, T4 > ns3::MakeBoundCallback (R(*fnPtr)(TX, T1, T2, T3, T4), ARG a1)
 Make Callbacks with one bound argument. More...
 
template<typename R , typename TX , typename ARG , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
Callback< R, T1, T2, T3, T4, T5 > ns3::MakeBoundCallback (R(*fnPtr)(TX, T1, T2, T3, T4, T5), ARG a1)
 Make Callbacks with one bound argument. More...
 
template<typename R , typename TX , typename ARG , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
Callback< R, T1, T2, T3, T4, T5, T6 > ns3::MakeBoundCallback (R(*fnPtr)(TX, T1, T2, T3, T4, T5, T6), ARG a1)
 Make Callbacks with one bound argument. More...
 
template<typename R , typename TX , typename ARG , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
Callback< R, T1, T2, T3, T4, T5, T6, T7 > ns3::MakeBoundCallback (R(*fnPtr)(TX, T1, T2, T3, T4, T5, T6, T7), ARG a1)
 Make Callbacks with one bound argument. More...
 
template<typename R , typename TX , typename ARG , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
Callback< R, T1, T2, T3, T4, T5, T6, T7, T8 > ns3::MakeBoundCallback (R(*fnPtr)(TX, T1, T2, T3, T4, T5, T6, T7, T8), ARG a1)
 Make Callbacks with one bound argument. More...
 
template<typename R , typename TX1 , typename TX2 , typename ARG1 , typename ARG2 >
Callback< R > ns3::MakeBoundCallback (R(*fnPtr)(TX1, TX2), ARG1 a1, ARG2 a2)
 Make Callbacks with two bound arguments. More...
 
template<typename R , typename TX1 , typename TX2 , typename ARG1 , typename ARG2 , typename T1 >
Callback< R, T1 > ns3::MakeBoundCallback (R(*fnPtr)(TX1, TX2, T1), ARG1 a1, ARG2 a2)
 Make Callbacks with two bound arguments. More...
 
template<typename R , typename TX1 , typename TX2 , typename ARG1 , typename ARG2 , typename T1 , typename T2 >
Callback< R, T1, T2 > ns3::MakeBoundCallback (R(*fnPtr)(TX1, TX2, T1, T2), ARG1 a1, ARG2 a2)
 Make Callbacks with two bound arguments. More...
 
template<typename R , typename TX1 , typename TX2 , typename ARG1 , typename ARG2 , typename T1 , typename T2 , typename T3 >
Callback< R, T1, T2, T3 > ns3::MakeBoundCallback (R(*fnPtr)(TX1, TX2, T1, T2, T3), ARG1 a1, ARG2 a2)
 Make Callbacks with two bound arguments. More...
 
template<typename R , typename TX1 , typename TX2 , typename ARG1 , typename ARG2 , typename T1 , typename T2 , typename T3 , typename T4 >
Callback< R, T1, T2, T3, T4 > ns3::MakeBoundCallback (R(*fnPtr)(TX1, TX2, T1, T2, T3, T4), ARG1 a1, ARG2 a2)
 Make Callbacks with two bound arguments. More...
 
template<typename R , typename TX1 , typename TX2 , typename ARG1 , typename ARG2 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
Callback< R, T1, T2, T3, T4, T5 > ns3::MakeBoundCallback (R(*fnPtr)(TX1, TX2, T1, T2, T3, T4, T5), ARG1 a1, ARG2 a2)
 Make Callbacks with two bound arguments. More...
 
template<typename R , typename TX1 , typename TX2 , typename ARG1 , typename ARG2 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
Callback< R, T1, T2, T3, T4, T5, T6 > ns3::MakeBoundCallback (R(*fnPtr)(TX1, TX2, T1, T2, T3, T4, T5, T6), ARG1 a1, ARG2 a2)
 Make Callbacks with two bound arguments. More...
 
template<typename R , typename TX1 , typename TX2 , typename ARG1 , typename ARG2 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
Callback< R, T1, T2, T3, T4, T5, T6, T7 > ns3::MakeBoundCallback (R(*fnPtr)(TX1, TX2, T1, T2, T3, T4, T5, T6, T7), ARG1 a1, ARG2 a2)
 Make Callbacks with two bound arguments. More...
 
template<typename R , typename TX1 , typename TX2 , typename TX3 , typename ARG1 , typename ARG2 , typename ARG3 >
Callback< R > ns3::MakeBoundCallback (R(*fnPtr)(TX1, TX2, TX3), ARG1 a1, ARG2 a2, ARG3 a3)
 Make Callbacks with three bound arguments. More...
 
template<typename R , typename TX1 , typename TX2 , typename TX3 , typename ARG1 , typename ARG2 , typename ARG3 , typename T1 >
Callback< R, T1 > ns3::MakeBoundCallback (R(*fnPtr)(TX1, TX2, TX3, T1), ARG1 a1, ARG2 a2, ARG3 a3)
 Make Callbacks with three bound arguments. More...
 
template<typename R , typename TX1 , typename TX2 , typename TX3 , typename ARG1 , typename ARG2 , typename ARG3 , typename T1 , typename T2 >
Callback< R, T1, T2 > ns3::MakeBoundCallback (R(*fnPtr)(TX1, TX2, TX3, T1, T2), ARG1 a1, ARG2 a2, ARG3 a3)
 Make Callbacks with three bound arguments. More...
 
template<typename R , typename TX1 , typename TX2 , typename TX3 , typename ARG1 , typename ARG2 , typename ARG3 , typename T1 , typename T2 , typename T3 >
Callback< R, T1, T2, T3 > ns3::MakeBoundCallback (R(*fnPtr)(TX1, TX2, TX3, T1, T2, T3), ARG1 a1, ARG2 a2, ARG3 a3)
 Make Callbacks with three bound arguments. More...
 
template<typename R , typename TX1 , typename TX2 , typename TX3 , typename ARG1 , typename ARG2 , typename ARG3 , typename T1 , typename T2 , typename T3 , typename T4 >
Callback< R, T1, T2, T3, T4 > ns3::MakeBoundCallback (R(*fnPtr)(TX1, TX2, TX3, T1, T2, T3, T4), ARG1 a1, ARG2 a2, ARG3 a3)
 Make Callbacks with three bound arguments. More...
 
template<typename R , typename TX1 , typename TX2 , typename TX3 , typename ARG1 , typename ARG2 , typename ARG3 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
Callback< R, T1, T2, T3, T4, T5 > ns3::MakeBoundCallback (R(*fnPtr)(TX1, TX2, TX3, T1, T2, T3, T4, T5), ARG1 a1, ARG2 a2, ARG3 a3)
 Make Callbacks with three bound arguments. More...
 
template<typename R , typename TX1 , typename TX2 , typename TX3 , typename ARG1 , typename ARG2 , typename ARG3 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
Callback< R, T1, T2, T3, T4, T5, T6 > ns3::MakeBoundCallback (R(*fnPtr)(TX1, TX2, TX3, T1, T2, T3, T4, T5, T6), ARG1 a1, ARG2 a2, ARG3 a3)
 Make Callbacks with three bound arguments. More...
 

Detailed Description

Declaration of the various callback functions.

Definition in file callback.h.