A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 > Class Template Reference

Callback template class. More...

#include <callback.h>

Inherits ns3::CallbackBase.

+ Collaboration diagram for ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >:

Public Member Functions

 Callback ()
 
template<typename FUNCTOR >
 Callback (FUNCTOR const &functor, bool, bool)
 Construct a functor call back, supporting operator() calls. More...
 
template<typename OBJ_PTR , typename MEM_PTR >
 Callback (OBJ_PTR const &objPtr, MEM_PTR memPtr)
 Construct a member function pointer call back. More...
 
 Callback (Ptr< CallbackImpl< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 > > const &impl)
 Construct from a CallbackImpl pointer. More...
 
void Assign (const CallbackBase &other)
 Adopt the other's implementation, if type compatible. More...
 
template<typename T >
Callback< R, T2, T3, T4, T5,
T6, T7, T8, T9 > 
Bind (T a)
 Bind the first arguments. More...
 
bool CheckType (const CallbackBase &other) const
 Check for compatible types. More...
 
bool IsEqual (const CallbackBase &other) const
 Equality test. More...
 
bool IsNull (void) const
 Check for null implementation. More...
 
void Nullify (void)
 Discard the implementation, set it to null. More...
 
template<typename TX1 , typename TX2 , typename TX3 >
Callback< R, T4, T5, T6, T7,
T8, T9 > 
ThreeBind (TX1 a1, TX2 a2, TX3 a3)
 Bind the first three arguments. More...
 
template<typename TX1 , typename TX2 >
Callback< R, T3, T4, T5, T6,
T7, T8, T9 > 
TwoBind (TX1 a1, TX2 a2)
 Bind the first two arguments. More...
 
operator() (void) const
 Functor with varying numbers of arguments. More...
 
operator() (T1 a1) const
 
operator() (T1 a1, T2 a2) const
 
operator() (T1 a1, T2 a2, T3 a3) const
 
operator() (T1 a1, T2 a2, T3 a3, T4 a4) const
 
operator() (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5) const
 
operator() (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6) const
 
operator() (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7) const
 
operator() (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7, T8 a8) const
 
operator() (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7, T8 a8, T9 a9) const
 
- Public Member Functions inherited from ns3::CallbackBase
 CallbackBase ()
 
Ptr< CallbackImplBaseGetImpl (void) const
 

Private Member Functions

void DoAssign (Ptr< const CallbackImplBase > other)
 Adopt the other's implementation, if type compatible. More...
 
bool DoCheckType (Ptr< const CallbackImplBase > other) const
 Check for compatible types. More...
 
CallbackImpl< R, T1, T2, T3,
T4, T5, T6, T7, T8, T9 > * 
DoPeekImpl (void) const
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::CallbackBase
 CallbackBase (Ptr< CallbackImplBase > impl)
 Construct from a pimpl. More...
 
- Static Protected Member Functions inherited from ns3::CallbackBase
static std::string Demangle (const std::string &mangled)
 
- Protected Attributes inherited from ns3::CallbackBase
Ptr< CallbackImplBasem_impl
 the pimpl More...
 

Detailed Description

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 remaining (optional) template arguments represent the type of the subsequent arguments to the callback.
  • up to nine arguments are supported.

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 :

/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
#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;
}
class MyCb {
public:
int CbTwo (double a) {
std::cout << "invoke cbTwo a=" << a << std::endl;
return -5;
}
};
int main (int argc, char *argv[])
{
// return type: double
// first arg type: double
// second arg type: double
// build callback instance which points to cbOne function
one = MakeCallback (&CbOne);
// this is not a null callback
NS_ASSERT (!one.IsNull ());
// invoke cbOne function through callback instance
double retOne;
retOne = one (10.0, 20.0);
// callback returned expected value
NS_ASSERT (retOne == 10.0);
// return type: int
// first arg type: double
MyCb cb;
// build callback instance which points to MyCb::cbTwo
two = MakeCallback (&MyCb::CbTwo, &cb);
// this is not a null callback
NS_ASSERT (!two.IsNull ());
// invoke MyCb::cbTwo through callback instance
int retTwo;
retTwo = two (10.0);
// callback returned expected value
NS_ASSERT (retTwo == -5);
two = MakeNullCallback<int, double> ();
// invoking a null callback is just like
// invoking a null function pointer:
// it will crash.
//int retTwoNull = two (20.0);
NS_ASSERT (two.IsNull ());
#if 0
// The below type mismatch between CbOne() and callback two will fail to
// compile if enabled in this program.
two = MakeCallback (&CbOne);
#endif
#if 0
// This is a slightly different example, in which the code will compile
// but because callbacks are type-safe, will cause a fatal error at runtime
// (the difference here is that Assign() is called instead of operator=)
#endif
return 0;
}
Internal:
This code was originally written based on the techniques described in http://www.codeproject.com/cpp/TTLFunction.asp It was subsequently rewritten to follow the architecture outlined in "Modern C++ Design" by Andrei Alexandrescu in chapter 5, "Generalized Functors".

This code uses:

  • default template parameters to saves users from having to specify empty parameters when the number of parameters is smaller than the maximum supported number
  • the pimpl idiom: the Callback class is passed around by value and delegates the crux of the work to its pimpl pointer.
  • two pimpl implementations which derive from CallbackImpl FunctorCallbackImpl can be used with any functor-type while MemPtrCallbackImpl can be used with pointers to member functions.
  • a reference list implementation to implement the Callback's value semantics.

This code most notably departs from the alexandrescu implementation in that it does not use type lists to specify and pass around the types of the callback arguments. Of course, it also does not use copy-destruction semantics and relies on a reference list rather than autoPtr to hold the pointer.

Definition at line 920 of file callback.h.

Constructor & Destructor Documentation

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 ( )
inline

Definition at line 922 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 FUNCTOR >
ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Callback ( FUNCTOR const &  functor,
bool  ,
bool   
)
inline

Construct a functor call back, supporting operator() calls.

Parameters
functorthe functor to run on this callback
Internal:
There are two dummy args below to ensure that this constructor is always properly disambiguated by the c++ compiler.

Definition at line 934 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 OBJ_PTR , typename MEM_PTR >
ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Callback ( OBJ_PTR const &  objPtr,
MEM_PTR  memPtr 
)
inline

Construct a member function pointer call back.

Parameters
objPtrpointer to the object
memPtrpointer to the member function

Definition at line 945 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>
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

Construct from a CallbackImpl pointer.

Parameters
implthe CallbackImpl Ptr

Definition at line 954 of file callback.h.

Member Function Documentation

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>
void ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Assign ( const CallbackBase other)
inline

Adopt the other's implementation, if type compatible.

Parameters
otherCallback

Definition at line 1155 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().

+ Here is the caller graph for this function:

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 ( a)
inline

Bind the first arguments.

Parameters
aargument to bind
Returns
the bound callback

Definition at line 965 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().

+ Here is the caller graph for this function:

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>
bool ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::CheckType ( const CallbackBase other) const
inline

Check for compatible types.

Parameters
otherCallback Ptr
Returns
true if other can be dynamic_cast to my type

Definition at line 1147 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>
void ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::DoAssign ( Ptr< const CallbackImplBase other)
inlineprivate

Adopt the other's implementation, if type compatible.

Parameters
otherCallback Ptr to adopt from

Definition at line 1188 of file callback.h.

Referenced by ns3::Callback< void, ns3::Ptr< const ns3::Packet >, ns3::UanTxMode, T3, T4, T5, T6, T7, T8 >::Assign().

+ Here is the caller graph for this function:

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>
bool ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::DoCheckType ( Ptr< const CallbackImplBase other) const
inlineprivate

Check for compatible types.

Parameters
otherCallback Ptr
Returns
true if other can be dynamic_cast to my type

Definition at line 1169 of file callback.h.

Referenced by ns3::Callback< void, ns3::Ptr< const ns3::Packet >, ns3::UanTxMode, T3, T4, T5, T6, T7, T8 >::CheckType(), and ns3::Callback< void, ns3::Ptr< const ns3::Packet >, ns3::UanTxMode, T3, T4, T5, T6, T7, T8 >::DoAssign().

+ Here is the caller graph for this function:

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>
bool ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsEqual ( const CallbackBase other) const
inline

Equality test.

Parameters
otherCallback
Returns
true if we are equal

Definition at line 1137 of file callback.h.

Referenced by ns3::aodv::QueueEntryTest::DoRun(), and ns3::operator!=().

+ Here is the caller graph for this function:

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>
bool ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::IsNull ( void  ) const
inline

Check for null implementation.

Returns
true if I don't have an implementation

Definition at line 1014 of file callback.h.

Referenced by NullifyCallbackTestCase::DoRun(), ns3::HalfDuplexIdealPhy::EndRx(), ns3::LteSpectrumPhy::EndRxData(), ns3::LteSpectrumPhy::EndRxDlCtrl(), ns3::HalfDuplexIdealPhy::EndTx(), ns3::LteSpectrumPhy::EndTx(), ns3::dsr::DsrRouting::ForwardErrPacket(), ns3::dsr::DsrRouting::ForwardPacket(), ns3::WifiNetDevice::ForwardUp(), ns3::FdNetDevice::ForwardUp(), ns3::EmuNetDevice::ForwardUp(), ns3::EdcaTxopN::GotAck(), ns3::DcaTxop::GotAck(), ns3::AcousticModemEnergyModel::HandleEnergyDepletion(), ns3::WifiRadioEnergyModel::HandleEnergyDepletion(), RandomVariableStreamAttributeTestCase::InvokeCbValue(), CallbackValueTestCase::InvokeCbValue(), ns3::WimaxNetDevice::IsPromisc(), main(), ns3::DcaTxop::MissedAck(), ns3::EdcaTxopN::MissedAck(), ns3::EdcaTxopN::MissedCts(), ns3::DcaTxop::MissedCts(), ns3::WifiRadioEnergyModelPhyListener::NotifyMaybeCcaBusyStart(), ns3::Icmpv4L4Protocol::NotifyNewAggregate(), ns3::NscTcpL4Protocol::NotifyNewAggregate(), ns3::Icmpv6L4Protocol::NotifyNewAggregate(), ns3::TcpL4Protocol::NotifyNewAggregate(), ns3::UdpL4Protocol::NotifyNewAggregate(), ns3::AlohaNoackNetDevice::NotifyReceptionEndOk(), ns3::WifiRadioEnergyModelPhyListener::NotifyRxEndError(), ns3::WifiRadioEnergyModelPhyListener::NotifyRxEndOk(), ns3::WifiRadioEnergyModelPhyListener::NotifyRxStart(), ns3::WifiRadioEnergyModelPhyListener::NotifySwitchingStart(), ns3::WifiRadioEnergyModelPhyListener::NotifyTxStart(), ns3::Packet::PrintByteTags(), ns3::MpiReceiver::Receive(), ns3::SimpleNetDevice::Receive(), ns3::LoopbackNetDevice::Receive(), ns3::StaWifiMac::Receive(), ns3::VirtualNetDevice::Receive(), ns3::OcbWifiMac::Receive(), ns3::PointToPointNetDevice::Receive(), ns3::CsmaNetDevice::Receive(), ns3::BridgeNetDevice::ReceiveFromDevice(), ns3::MeshPointDevice::ReceiveFromDevice(), ns3::SixLowPanNetDevice::ReceiveFromDevice(), ns3::aodv::RoutingProtocol::RouteInput(), ns3::dsdv::RoutingProtocol::RouteInput(), ns3::olsr::RoutingProtocol::RouteInput(), ns3::UanPhyGen::RxEndEvent(), ns3::dsr::DsrRouting::Send(), ns3::dsr::DsrRouting::SendAck(), ns3::dsr::DsrRouting::SendErrorRequest(), ns3::dsr::DsrRouting::SendInitialRequest(), ns3::dsr::DsrRouting::SendPacketFromBuffer(), ns3::dsr::DsrRouting::SendReply(), ns3::dsr::DsrRouting::SendRequest(), ns3::WifiRadioEnergyModelPhyListener::SetChangeStateCallback(), ns3::AcousticModemEnergyModel::SetEnergyDepletionCallback(), ns3::WifiRadioEnergyModel::SetEnergyDepletionCallback(), ns3::UanPhyGen::SetSleepMode(), ns3::HalfDuplexIdealPhy::StartRx(), ns3::LteSpectrumPhy::StartRxCtrl(), ns3::WifiPhyStateHelper::SwitchFromRxEndError(), ns3::WifiPhyStateHelper::SwitchFromRxEndOk(), ns3::WifiRadioEnergyModelPhyListener::SwitchToIdle(), ns3::UanPhyGen::UpdatePowerConsumption(), ns3::Ipv4EndPoint::~Ipv4EndPoint(), and ns3::Ipv6EndPoint::~Ipv6EndPoint().

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

Functor with varying numbers of arguments.

Returns
Callback value

Definition at line 1027 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>
R ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::operator() ( T1  a1) const
inline
Parameters
a1first argument
Returns
Callback value

Definition at line 1034 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>
R ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::operator() ( T1  a1,
T2  a2 
) const
inline
Parameters
a1first argument
a2second argument
Returns
Callback value

Definition at line 1042 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>
R ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::operator() ( T1  a1,
T2  a2,
T3  a3 
) const
inline
Parameters
a1first argument
a2second argument
a3third argument
Returns
Callback value

Definition at line 1051 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>
R ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::operator() ( T1  a1,
T2  a2,
T3  a3,
T4  a4 
) const
inline
Parameters
a1first argument
a2second argument
a3third argument
a4fourth argument
Returns
Callback value

Definition at line 1061 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>
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
Parameters
a1first argument
a2second argument
a3third argument
a4fourth argument
a5fifth argument
Returns
Callback value

Definition at line 1072 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>
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
Parameters
a1first argument
a2second argument
a3third argument
a4fourth argument
a5fifth argument
a6sixth argument
Returns
Callback value

Definition at line 1084 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>
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
Parameters
a1first argument
a2second argument
a3third argument
a4fourth argument
a5fifth argument
a6sixth argument
a7seventh argument
Returns
Callback value

Definition at line 1097 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>
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
Parameters
a1first argument
a2second argument
a3third argument
a4fourth argument
a5fifth argument
a6sixth argument
a7seventh argument
a8seventh argument
Returns
Callback value

Definition at line 1111 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>
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
Parameters
a1first argument
a2second argument
a3third argument
a4fourth argument
a5fifth argument
a6sixth argument
a7seventh argument
a8eighth argument
a9ninth argument
Returns
Callback value

Definition at line 1126 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 TX1 , typename TX2 , typename TX3 >
Callback<R,T4,T5,T6,T7,T8,T9> ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::ThreeBind ( TX1  a1,
TX2  a2,
TX3  a3 
)
inline

Bind the first three arguments.

Parameters
a1first argument to bind
a2second argument to bind
a3third argument to bind
Returns
the bound callback

Definition at line 1000 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 TX1 , typename TX2 >
Callback<R,T3,T4,T5,T6,T7,T8,T9> ns3::Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::TwoBind ( TX1  a1,
TX2  a2 
)
inline

Bind the first two arguments.

Parameters
a1first argument to bind
a2second argument to bind
Returns
the bound callback

Definition at line 982 of file callback.h.


The documentation for this class was generated from the following file: