A Discrete-Event Network Simulator
API
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...
 
bool 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

bool 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...
 
- 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; -*- */
/*
* Copyright (c) 2006 INRIA
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation;
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#include "ns3/callback.h"
#include "ns3/assert.h"
#include "ns3/command-line.h"
#include <iostream>
using namespace ns3;
namespace {
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;
}
};
} // unnamed namespace
int main (int argc, char *argv[])
{
CommandLine cmd (__FILE__);
cmd.Parse (argc, 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=)
three.Assign (MakeCallback (&CbOne));
#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.

See also
Callback Attribute
Template Parameters
R[explicit] The return type of the Callback. The remaining template arguments are the types of any arguments to the Callback.

Definition at line 1278 of file callback.h.

Constructor & Destructor Documentation

◆ Callback() [1/4]

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 1281 of file callback.h.

◆ Callback() [2/4]

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
[in]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.
Template Parameters
FUNCTOR[deduced] The actual type of the functor.

Definition at line 1295 of file callback.h.

◆ Callback() [3/4]

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.

Template Parameters
OBJ_PTR[deduced] Type of the target object, as a pointer.
MEM_PTR[deduced] Type of the class member function.
Parameters
[in]objPtrPointer to the object
[in]memPtrPointer to the member function

Definition at line 1308 of file callback.h.

◆ Callback() [4/4]

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
[in]implThe CallbackImpl Ptr

Definition at line 1317 of file callback.h.

Member Function Documentation

◆ Assign()

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 >::Assign ( const CallbackBase other)
inline

Adopt the other's implementation, if type compatible.

Parameters
[in]otherCallback
Returns
true if other was type-compatible and could be adopted.

Definition at line 1542 of file callback.h.

◆ Bind()

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.

Template Parameters
T[deduced] The type of the bound argument.
Parameters
[in]aArgument to bind
Returns
The bound callback

Definition at line 1329 of file callback.h.

Referenced by ns3::TracedCallback< uint32_t, uint32_t >::Connect(), ns3::TracedCallback< uint32_t, uint32_t >::Disconnect(), and ns3::Txop::SetDroppedMpduCallback().

+ Here is the caller graph for this function:

◆ CheckType()

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
[in]otherCallback Ptr
Returns
true if other can be dynamic_cast to my type

Definition at line 1532 of file callback.h.

◆ DoAssign()

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 >::DoAssign ( Ptr< const CallbackImplBase other)
inlineprivate

Adopt the other's implementation, if type compatible.

Parameters
[in]otherCallback
Returns
true if other was type-compatible and could be adopted.

Definition at line 1576 of file callback.h.

Referenced by ns3::Callback< void, int8_t >::Assign().

+ Here is the caller graph for this function:

◆ DoCheckType()

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
[in]otherCallback Ptr
Returns
true if other can be dynamic_cast to my type

Definition at line 1559 of file callback.h.

Referenced by ns3::Callback< void, int8_t >::CheckType(), and ns3::Callback< void, int8_t >::DoAssign().

+ Here is the caller graph for this function:

◆ DoPeekImpl()

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
Returns
The pimpl pointer

Definition at line 1549 of file callback.h.

Referenced by ns3::Callback< void, int8_t >::IsNull(), and ns3::Callback< void, int8_t >::operator()().

+ Here is the caller graph for this function:

◆ IsEqual()

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
[in]otherCallback
Returns
true if we are equal

Definition at line 1521 of file callback.h.

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

+ Here is the caller graph for this function:

◆ IsNull()

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 1386 of file callback.h.

Referenced by ns3::LrWpanPhy::CancelEd(), ns3::LrWpanCsmaCa::CanProceed(), ns3::WifiPhyStateHelper::ContinueRxNextMpdu(), ns3::TcpTxBuffer::DiscardUpTo(), ns3::WifiRadioEnergyModelHelper::DoInstall(), NullifyCallbackTestCase::DoRun(), ns3::LrWpanPhy::EndCca(), ns3::LrWpanPhy::EndEd(), ns3::HalfDuplexIdealPhy::EndRx(), ns3::LrWpanPhy::EndRx(), ns3::LteSpectrumPhy::EndRxData(), ns3::LteSpectrumPhy::EndRxDlCtrl(), ns3::LrWpanPhy::EndSetTRXState(), ns3::HalfDuplexIdealPhy::EndTx(), ns3::LrWpanPhy::EndTx(), ns3::WifiTxTimer::FeedTraceSource(), ns3::dsr::DsrRouting::ForwardErrPacket(), ns3::dsr::DsrRouting::ForwardPacket(), ns3::WifiNetDevice::ForwardUp(), ns3::FdNetDevice::ForwardUp(), ns3::WaveNetDevice::ForwardUp(), ns3::WifiMode::GetNonHtReferenceRate(), ns3::AcousticModemEnergyModel::HandleEnergyDepletion(), ns3::WifiRadioEnergyModel::HandleEnergyDepletion(), ns3::AcousticModemEnergyModel::HandleEnergyRecharged(), ns3::WifiRadioEnergyModel::HandleEnergyRecharged(), RandomVariableStreamAttributeTestCase::InvokeCbValue(), CallbackValueTestCase::InvokeCbValue(), ns3::WimaxNetDevice::IsPromisc(), ns3::LrWpanMac::McpsDataRequest(), ns3::LrWpanMac::MlmeStartRequest(), ns3::HePhy::NotifyEndOfHeSigA(), ns3::BlockAckManager::NotifyGotBlockAck(), ns3::QosTxop::NotifyInternalCollision(), ns3::WifiRadioEnergyModelPhyListener::NotifyMaybeCcaBusyStart(), ns3::Icmpv6L4Protocol::NotifyNewAggregate(), ns3::Icmpv4L4Protocol::NotifyNewAggregate(), ns3::NscTcpL4Protocol::NotifyNewAggregate(), ns3::UdpL4Protocol::NotifyNewAggregate(), ns3::TcpL4Protocol::NotifyNewAggregate(), ns3::WifiRadioEnergyModelPhyListener::NotifyOff(), ns3::WifiRadioEnergyModelPhyListener::NotifyOn(), ns3::FrameExchangeManager::NotifyPacketDiscarded(), ns3::FrameExchangeManager::NotifyReceivedNormalAck(), ns3::AlohaNoackNetDevice::NotifyReceptionEndOk(), ns3::WifiRadioEnergyModelPhyListener::NotifyRxEndError(), ns3::WifiRadioEnergyModelPhyListener::NotifyRxEndOk(), ns3::WifiRadioEnergyModelPhyListener::NotifyRxStart(), ns3::WifiRadioEnergyModelPhyListener::NotifySleep(), ns3::WifiRadioEnergyModelPhyListener::NotifySwitchingStart(), ns3::NetDeviceQueue::NotifyTransmittedBytes(), ns3::WifiRadioEnergyModelPhyListener::NotifyTxStart(), ns3::WifiRadioEnergyModelPhyListener::NotifyWakeup(), ns3::LrWpanMac::PdDataConfirm(), ns3::LrWpanMac::PdDataIndication(), ns3::LrWpanPhy::PdDataRequest(), ns3::LrWpanCsmaCa::PlmeCcaConfirm(), ns3::LrWpanPhy::PlmeCcaRequest(), ns3::LrWpanPhy::PlmeEdRequest(), ns3::LrWpanPhy::PlmeGetAttributeRequest(), ns3::LrWpanPhy::PlmeSetAttributeRequest(), ns3::LrWpanPhy::PlmeSetTRXStateRequest(), ns3::LrWpanMac::PrepareRetransmission(), ns3::Packet::PrintByteTags(), ns3::MpiReceiver::Receive(), ns3::MockNetDevice::Receive(), ns3::SimpleNetDevice::Receive(), ns3::LoopbackNetDevice::Receive(), ns3::VirtualNetDevice::Receive(), ns3::PointToPointNetDevice::Receive(), ns3::CsmaNetDevice::Receive(), ns3::OcbWifiMac::Receive(), ns3::StaWifiMac::Receive(), ns3::TcpSocketMsgBase::ReceivedAck(), ns3::BridgeNetDevice::ReceiveFromDevice(), ns3::MeshPointDevice::ReceiveFromDevice(), ns3::SixLowPanNetDevice::ReceiveFromDevice(), ns3::aodv::RoutingProtocol::RouteInput(), ns3::Ipv4StaticRouting::RouteInput(), ns3::dsdv::RoutingProtocol::RouteInput(), ns3::Ipv4GlobalRouting::RouteInput(), ns3::Rip::RouteInput(), ns3::RipNg::RouteInput(), ns3::Ipv4NixVectorRouting::RouteInput(), ns3::Ipv6StaticRouting::RouteInput(), ns3::olsr::RoutingProtocol::RouteInput(), ns3::UanPhyGen::RxEndEvent(), ns3::dsr::DsrRouting::Send(), ns3::dsr::DsrRouting::SendAck(), ns3::dsr::DsrRouting::SendErrorRequest(), ns3::MockNetDevice::SendFrom(), ns3::dsr::DsrRouting::SendInitialRequest(), ns3::dsr::DsrRouting::SendPacketFromBuffer(), ns3::dsr::DsrRouting::SendReply(), ns3::dsr::DsrRouting::SendRequest(), ns3::TcpSocketMsgBase::SetAfterRetransmitCb(), ns3::SubscriberStationNetDevice::SetBasicConnection(), ns3::TcpSocketMsgBase::SetBeforeRetransmitCb(), ns3::WifiRadioEnergyModelPhyListener::SetChangeStateCallback(), ns3::AcousticModemEnergyModel::SetEnergyDepletionCallback(), ns3::WifiRadioEnergyModel::SetEnergyDepletionCallback(), ns3::AcousticModemEnergyModel::SetEnergyRechargeCallback(), ns3::WifiRadioEnergyModel::SetEnergyRechargedCallback(), TcpSocketAdvertisedWindowProxy::SetInvalidAwndCb(), ns3::LrWpanMac::SetLrWpanMacState(), ns3::WifiPhy::SetMaxSupportedRxSpatialStreams(), ns3::WifiPhy::SetMaxSupportedTxSpatialStreams(), ns3::WifiPhy::SetOperatingChannel(), ns3::SubscriberStationNetDevice::SetPrimaryConnection(), ns3::TcpSocketMsgBase::SetProcessedAckCb(), ns3::TcpSocketMsgBase::SetRcvAckCb(), ns3::UanPhyGen::SetSleepMode(), ns3::TcpSocketMsgBase::SetUpdateRttHistoryCb(), ns3::WifiRadioEnergyModelPhyListener::SetUpdateTxCurrentCallback(), ns3::HalfDuplexIdealPhy::StartRx(), ns3::LteSpectrumPhy::StartRxDlCtrl(), ns3::WifiPhyStateHelper::SwitchFromRxEndError(), ns3::WifiPhyStateHelper::SwitchFromRxEndOk(), ns3::WifiRadioEnergyModelPhyListener::SwitchToIdle(), ns3::TcpSocketBase::TcpSocketBase(), ns3::TcpTxBuffer::Update(), ns3::UanPhyGen::UpdatePowerConsumption(), ns3::TcpSocketMsgBase::UpdateRttHistory(), ns3::NetDeviceQueue::Wake(), ns3::Ipv4EndPoint::~Ipv4EndPoint(), and ns3::Ipv6EndPoint::~Ipv6EndPoint().

◆ Nullify()

◆ operator()() [1/10]

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 1401 of file callback.h.

◆ operator()() [2/10]

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
[in]a1First argument
Returns
Callback value

Definition at line 1409 of file callback.h.

◆ operator()() [3/10]

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
[in]a1First argument
[in]a2Second argument
Returns
Callback value

Definition at line 1418 of file callback.h.

◆ operator()() [4/10]

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
[in]a1First argument
[in]a2Second argument
[in]a3Third argument
Returns
Callback value

Definition at line 1428 of file callback.h.

◆ operator()() [5/10]

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
[in]a1First argument
[in]a2Second argument
[in]a3Third argument
[in]a4Fourth argument
Returns
Callback value

Definition at line 1439 of file callback.h.

◆ operator()() [6/10]

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
[in]a1First argument
[in]a2Second argument
[in]a3Third argument
[in]a4Fourth argument
[in]a5Fifth argument
Returns
Callback value

Definition at line 1451 of file callback.h.

◆ operator()() [7/10]

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
[in]a1First argument
[in]a2Second argument
[in]a3Third argument
[in]a4Fourth argument
[in]a5Fifth argument
[in]a6Sixth argument
Returns
Callback value

Definition at line 1464 of file callback.h.

◆ operator()() [8/10]

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
[in]a1First argument
[in]a2Second argument
[in]a3Third argument
[in]a4Fourth argument
[in]a5Fifth argument
[in]a6Sixth argument
[in]a7Seventh argument
Returns
Callback value

Definition at line 1478 of file callback.h.

◆ operator()() [9/10]

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
[in]a1First argument
[in]a2Second argument
[in]a3Third argument
[in]a4Fourth argument
[in]a5Fifth argument
[in]a6Sixth argument
[in]a7Seventh argument
[in]a8Eighth argument
Returns
Callback value

Definition at line 1493 of file callback.h.

◆ operator()() [10/10]

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
[in]a1First argument
[in]a2Second argument
[in]a3Third argument
[in]a4Fourth argument
[in]a5Fifth argument
[in]a6Sixth argument
[in]a7Seventh argument
[in]a8Eighth argument
[in]a9Ninth argument
Returns
Callback value

Definition at line 1509 of file callback.h.

◆ ThreeBind()

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.

Template Parameters
TX1[deduced] The actual type of the first bound argument.
TX2[deduced] The actual type of the second bound argument.
TX3[deduced] The actual type of the third bound argument.
Parameters
[in]a1First argument to bind
[in]a2Second argument to bind
[in]a3Third argument to bind
Returns
The bound callback

Definition at line 1371 of file callback.h.

◆ TwoBind()

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.

Template Parameters
TX1[deduced] Type of the first bound argument.
TX2[deduced] Type of the second bound argument.
Parameters
[in]a1First argument to bind
[in]a2Second argument to bind
Returns
The bound callback

Definition at line 1349 of file callback.h.


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