A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
MakeCallback from member function pointer

Build Callbacks for class method members which take varying numbers of arguments and potentially returning a value. More...

+ Collaboration diagram for MakeCallback from member function pointer:

Classes

struct  ns3::CallbackTraits< T >
 Trait class to convert a pointer into a reference, used by MemPtrCallBackImpl. 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...
 
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)
 

Detailed Description

Build Callbacks for class method members which take varying numbers of arguments and potentially returning a value.

Generally the MakeCallback functions are invoked with the method function address first, followed by the this pointer:

MakeCallback ( & MyClass::Handler, this);

There is not a version with bound arguments. You may be able to get the same result by using MakeBoundCallback with a static member function, as in:

MakeBoundCallback ( & MyClass::StaticHandler, this);

This still leaves two argument slots available for binding.

Function Documentation

template<typename T , typename OBJ , typename R >
Callback<R> ns3::MakeCallback ( R(T::*)(void)  memPtr,
OBJ  objPtr 
)
Parameters
memPtrclass method member pointer
objPtrclass instance
Returns
a wrapper Callback

Build Callbacks for class method members which take varying numbers of arguments and potentially returning a value.

Definition at line 1283 of file callback.h.

Referenced by ns3::BridgeNetDevice::AddBridgePort(), ns3::TypeId::AddConstructor(), ns3::Node::AddDevice(), ns3::MeshPointDevice::AddInterface(), ns3::Ipv6L3Protocol::AddInterface(), ns3::Ipv4L3Protocol::AddInterface(), ns3::EpcX2::AddX2Interface(), ns3::UanMacAloha::AttachPhy(), ns3::UanMacRcGw::AttachPhy(), ns3::UanMacCw::AttachPhy(), ns3::UanMacRc::AttachPhy(), CallbackTestClass::CheckParentalRights(), ns3::aodv::AodvRqueueTest::CheckSizeLimit(), ns3::PacketSocket::Close(), ns3::WifiNetDevice::CompleteConfig(), ns3::LrWpanNetDevice::CompleteConfig(), ns3::EdcaTxopN::CompleteConfig(), ns3::NscTcpSocketImpl::CompleteFork(), ns3::Uinteger16Probe::ConnectByObject(), ns3::Uinteger32Probe::ConnectByObject(), ns3::Uinteger8Probe::ConnectByObject(), ns3::PacketProbe::ConnectByObject(), ns3::DoubleProbe::ConnectByObject(), ns3::BooleanProbe::ConnectByObject(), ns3::Ipv4PacketProbe::ConnectByObject(), ns3::ApplicationPacketProbe::ConnectByObject(), ns3::Ipv6PacketProbe::ConnectByObject(), ns3::Uinteger16Probe::ConnectByPath(), ns3::Uinteger32Probe::ConnectByPath(), ns3::Uinteger8Probe::ConnectByPath(), ns3::PacketProbe::ConnectByPath(), ns3::BooleanProbe::ConnectByPath(), ns3::DoubleProbe::ConnectByPath(), ns3::Ipv4PacketProbe::ConnectByPath(), ns3::Ipv6PacketProbe::ConnectByPath(), ns3::ApplicationPacketProbe::ConnectByPath(), ns3::dsr::DsrRouting::ConnectCallbacks(), ns3::AnimationInterface::ConnectCallbacks(), ns3::AnimationInterface::ConnectLteEnb(), ns3::AnimationInterface::ConnectLteUe(), ns3::GnuplotHelper::ConnectProbeToAggregator(), ns3::FileHelper::ConnectProbeToAggregator(), ns3::DsrHelper::Create(), ns3::ArpL3Protocol::CreateCache(), ns3::Icmpv6L4Protocol::CreateCache(), BasicEnergyDepletionTest::DepletionTestCase(), CoDelQueueBasicDrop::Dequeue(), ns3::PacketSocket::DoBind(), ns3::EmuEpcHelper::DoInitialize(), ns3::olsr::RoutingProtocol::DoInitialize(), ns3::RipNg::DoInitialize(), ns3::AcousticModemEnergyModelHelper::DoInstall(), ns3::WifiRadioEnergyModelHelper::DoInstall(), UanTest::DoOnePhyTest(), BasicTracedCallbackTestCase::DoRun(), ns3::aodv::NeighborTest::DoRun(), LrWpanPlmeAndPdInterfaceTestCase::DoRun(), ns3::aodv::LoopbackTestCase::DoRun(), PacketSocketAppsTest::DoRun(), LrWpanCollisionTestCase::DoRun(), LrWpanEdTestCase::DoRun(), LteRlcAmE2eTestCase::DoRun(), LteRlcUmE2eTestCase::DoRun(), WaypointMobilityModelNotifyTest::DoRun(), LrWpanErrorDistanceTestCase::DoRun(), AcousticModemEnergyTestCase::DoRun(), Ipv4DynamicGlobalRoutingTestCase::DoRun(), Ipv4StaticRoutingSlash32TestCase::DoRun(), Ns3TcpNoDelayTestCase::DoRun(), Ns3TcpSocketTestCase1::DoRun(), Ipv6ForwardingTest::DoRun(), LteEnbAntennaTestCase::DoRun(), NscTcpLossTestCase1::DoRun(), DualStackTestCase::DoRun(), LteRrcConnectionEstablishmentTestCase::DoRun(), CsmaBridgeTestCase::DoRun(), Ipv6RipngTest::DoRun(), Ipv6RawSocketImplTest::DoRun(), Ipv4RawSocketImplTest::DoRun(), UdpSocketLoopbackTest::DoRun(), Ns3TcpLossTestCase::DoRun(), Ns3TcpStateTestCase::DoRun(), ProbeTestCase1::DoRun(), LteHandoverDelayTestCase::DoRun(), ErrorModelSimple::DoRun(), Ipv4ForwardingTest::DoRun(), Ipv6PacketInfoTagTest::DoRun(), SequenceNumberTestCase::DoRun(), SixlowpanHc1ImplTest::DoRun(), SixlowpanIphcImplTest::DoRun(), SpectrumIdealPhyTestCase::DoRun(), Ipv4HeaderTest::DoRun(), Ipv4PacketInfoTagTest::DoRun(), Ns3TcpInteroperabilityTestCase::DoRun(), LteCellSelectionTestCase::DoRun(), Udp6SocketLoopbackTest::DoRun(), LteHandoverTargetTestCase::DoRun(), LteUeMeasurementsPiecewiseTestCase1::DoRun(), BurstErrorModelSimple::DoRun(), UdpSocketImplTest::DoRun(), Ns3TcpSocketTestCase2::DoRun(), CsmaBroadcastTestCase::DoRun(), NscTcpLossTestCase2::DoRun(), MakeCallbackTestCase::DoRun(), Ns3TcpCwndTestCase1::DoRun(), AcousticModemEnergyDepletionTestCase::DoRun(), LteUeMeasurementsPiecewiseTestCase2::DoRun(), Ns2MobilityHelperTest::DoRun(), ns3::aodv::QueueEntryTest::DoRun(), Ipv6RipngCountToInfinityTest::DoRun(), CsmaMulticastTestCase::DoRun(), ns3::aodv::AodvRqueueTest::DoRun(), Ipv4GlobalRoutingSlash32TestCase::DoRun(), Udp6SocketImplTest::DoRun(), LteUeMeasurementsHandoverTestCase::DoRun(), Bug555TestCase::DoRun(), Ns3TcpCwndTestCase2::DoRun(), CsmaOneSubnetTestCase::DoRun(), Ipv6RipngSplitHorizonStrategyTest::DoRun(), LteRrcConnectionEstablishmentErrorTestCase::DoRun(), NullifyCallbackTestCase::DoRun(), ObjectVectorTraceConfigTestCase::DoRun(), MakeCallbackTemplatesTestCase::DoRun(), CsmaPacketSocketTestCase::DoRun(), CsmaPingTestCase::DoRun(), CsmaRawIpSocketTestCase::DoRun(), CsmaStarTestCase::DoRun(), IntegerTraceSourceTestCase::DoRun(), TracedCallbackTestCase::DoRun(), CallbackValueTestCase::DoRun(), ns3::EdcaTxopN::EdcaTxopN(), ns3::AthstatsHelper::EnableAthstats(), ns3::InternetStackHelper::EnablePcapIpv4Internal(), ns3::InternetStackHelper::EnablePcapIpv6Internal(), ns3::EpcEnbApplication::EpcEnbApplication(), ns3::EpcSgwPgwApplication::EpcSgwPgwApplication(), ns3::NscTcpSocketImpl::FinishBind(), ns3::UdpSocketImpl::FinishBind(), ns3::MeshPointDevice::Forward(), ns3::PacketSink::HandleAccept(), ns3::dot11s::PeerManagementProtocol::InitiateLink(), ns3::dot11s::HwmpProtocol::Install(), ns3::PointToPointHelper::Install(), ns3::AdhocAlohaNoackIdealPhyHelper::Install(), ns3::LteSimpleHelper::InstallSingleEnbDevice(), ns3::LteHelper::InstallSingleEnbDevice(), ns3::LteSimpleHelper::InstallSingleUeDevice(), ns3::LteHelper::InstallSingleUeDevice(), ns3::Dot11sStack::InstallStack(), ns3::Ipv4FlowProbe::Ipv4FlowProbe(), ns3::Ipv6FlowProbe::Ipv6FlowProbe(), main(), ns3::aodv::Neighbors::Neighbors(), ns3::aodv::RoutingProtocol::NotifyAddAddress(), ns3::dsdv::RoutingProtocol::NotifyAddAddress(), ns3::aodv::RoutingProtocol::NotifyInterfaceUp(), ns3::dsdv::RoutingProtocol::NotifyInterfaceUp(), ns3::RipNg::NotifyInterfaceUp(), ns3::Icmpv4L4Protocol::NotifyNewAggregate(), ns3::NscTcpL4Protocol::NotifyNewAggregate(), ns3::Icmpv6L4Protocol::NotifyNewAggregate(), ns3::TcpL4Protocol::NotifyNewAggregate(), ns3::UdpL4Protocol::NotifyNewAggregate(), ns3::dsr::DsrRouting::NotifyNewAggregate(), ns3::aodv::RoutingProtocol::NotifyRemoveAddress(), ns3::dsdv::RoutingProtocol::NotifyRemoveAddress(), ns3::OcbWifiMac::OcbWifiMac(), ns3::PointToPointEpcHelper::PointToPointEpcHelper(), OcbWifiMacTestCase::PostDeviceConfiguration(), PrintTraffic(), ns3::PyViz::PyViz(), ns3::Ipv6L3Protocol::Receive(), ns3::Ipv4L3Protocol::Receive(), ns3::PyViz::RegisterCsmaLikeDevice(), ns3::PyViz::RegisterDropTracePath(), ns3::PyViz::RegisterPointToPointLikeDevice(), ns3::Node::RegisterProtocolHandler(), ns3::PyViz::RegisterWifiLikeDevice(), ns3::RegularWifiMac::RegularWifiMac(), ns3::dsr::RouteCache::RouteCache(), ns3::aodv::RoutingProtocol::RoutingProtocol(), NetAnimExperiment::Run(), Experiment::Run(), PsrExperiment::Run(), CollisionExperiment::Run(), ns3::MeshPointDevice::Send(), ns3::MeshPointDevice::SendFrom(), TcpTestCase::ServerHandleConnectionCreated(), ns3::TimestampTestCase::ServerHandleConnectionCreated(), ns3::WScalingTestCase::ServerHandleConnectionCreated(), ns3::TapBridge::SetBridgedNetDevice(), ns3::HierarchicalMobilityModel::SetChild(), ns3::UanNetDevice::SetMac(), ns3::SixLowPanNetDevice::SetNetDevice(), ns3::dot11s::PeerManagementProtocolMac::SetParent(), ns3::HierarchicalMobilityModel::SetParent(), ns3::MacLow::SetPhy(), ns3::WimaxNetDevice::SetReceiveCallback(), ns3::TcpSocketBase::SetupCallback(), TcpTestCase::SetupDefaultSim(), ns3::TimestampTestCase::SetupDefaultSim(), ns3::WScalingTestCase::SetupDefaultSim(), TcpTestCase::SetupDefaultSim6(), ns3::RegularWifiMac::SetupEdcaQueue(), ns3::Ipv4L3Protocol::SetupLoopback(), ns3::Ipv6L3Protocol::SetupLoopback(), DsdvManetExample::SetupPacketReceive(), Experiment::SetupPacketReceive(), RoutingExperiment::SetupPacketReceive(), SetupPacketReceive(), ns3::FdReader::Start(), ns3::dsdv::RoutingProtocol::Start(), ns3::dsr::DsrRouting::Start(), ns3::UdpEchoServer::StartApplication(), ns3::PacketSocketServer::StartApplication(), ns3::V4Ping::StartApplication(), Receiver::StartApplication(), ns3::UdpServer::StartApplication(), ns3::PacketSink::StartApplication(), ns3::Ping6::StartApplication(), ns3::BulkSendApplication::StartApplication(), ns3::Radvd::StartApplication(), ns3::OnOffApplication::StartApplication(), ns3::UdpEchoClient::StartApplication(), Ipv4FragmentationTest::StartClient(), SixlowpanFragmentationTest::StartClient(), Ipv6FragmentationTest::StartClient(), ns3::FdNetDevice::StartDevice(), ns3::EmuNetDevice::StartDevice(), StartFlow(), Ns3TcpStateTestCase::StartFlow(), Ns3TcpLossTestCase::StartFlow(), ns3::SSLinkManager::StartScanning(), Ipv4FragmentationTest::StartServer(), SixlowpanFragmentationTest::StartServer(), Ipv6FragmentationTest::StartServer(), ns3::TapBridge::StartTapDevice(), test(), TraceCwnd(), TraceSsThresh(), Tunnel::Tunnel(), ns3::WifiRadioEnergyModel::WifiRadioEnergyModel(), and WifiInterferenceTestCase::WifiSimpleInterference().

template<typename T , typename OBJ , typename R >
Callback<R> ns3::MakeCallback ( R(T::*)() const  memPtr,
OBJ  objPtr 
)
Parameters
memPtrclass method member pointer
objPtrclass instance
Returns
a wrapper Callback

Build Callbacks for class method members which take varying numbers of arguments and potentially returning a value.

Definition at line 1287 of file callback.h.

template<typename T , typename OBJ , typename R , typename T1 >
Callback< R, T1 > ns3::MakeCallback ( R(T::*)(T1)  memPtr,
OBJ  objPtr 
)
Parameters
memPtrclass method member pointer
objPtrclass instance
Returns
a wrapper Callback

Build Callbacks for class method members which take varying numbers of arguments and potentially returning a value.

Definition at line 1291 of file callback.h.

template<typename T , typename OBJ , typename R , typename T1 , typename T2 >
Callback< R, T1, T2 > ns3::MakeCallback ( R(T::*)(T1, T2)  memPtr,
OBJ  objPtr 
)
Parameters
memPtrclass method member pointer
objPtrclass instance
Returns
a wrapper Callback

Build Callbacks for class method members which take varying numbers of arguments and potentially returning a value.

Definition at line 1299 of file callback.h.

template<typename T , typename OBJ , typename R , typename T1 , typename T2 , typename T3 >
Callback< R, T1, T2, T3 > ns3::MakeCallback ( R(T::*)(T1, T2, T3)  memPtr,
OBJ  objPtr 
)
Parameters
memPtrclass method member pointer
objPtrclass instance
Returns
a wrapper Callback

Build Callbacks for class method members which take varying numbers of arguments and potentially returning a value.

Definition at line 1307 of file callback.h.

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::*)(T1, T2, T3, T4)  memPtr,
OBJ  objPtr 
)
Parameters
memPtrclass method member pointer
objPtrclass instance
Returns
a wrapper Callback

Build Callbacks for class method members which take varying numbers of arguments and potentially returning a value.

Definition at line 1315 of file callback.h.

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::*)(T1, T2, T3, T4, T5)  memPtr,
OBJ  objPtr 
)
Parameters
memPtrclass method member pointer
objPtrclass instance
Returns
a wrapper Callback

Build Callbacks for class method members which take varying numbers of arguments and potentially returning a value.

Definition at line 1323 of file callback.h.

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::*)(T1, T2, T3, T4, T5, T6)  memPtr,
OBJ  objPtr 
)
Parameters
memPtrclass method member pointer
objPtrclass instance
Returns
a wrapper Callback

Build Callbacks for class method members which take varying numbers of arguments and potentially returning a value.

Definition at line 1331 of file callback.h.

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::*)(T1, T2, T3, T4, T5, T6, T7)  memPtr,
OBJ  objPtr 
)
Parameters
memPtrclass method member pointer
objPtrclass instance
Returns
a wrapper Callback

Build Callbacks for class method members which take varying numbers of arguments and potentially returning a value.

Definition at line 1339 of file callback.h.

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::*)(T1, T2, T3, T4, T5, T6, T7, T8)  memPtr,
OBJ  objPtr 
)
Parameters
memPtrclass method member pointer
objPtrclass instance
Returns
a wrapper Callback

Build Callbacks for class method members which take varying numbers of arguments and potentially returning a value.

Definition at line 1347 of file callback.h.

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::*)(T1, T2, T3, T4, T5, T6, T7, T8, T9)  memPtr,
OBJ  objPtr 
)
Parameters
memPtrclass method member pointer
objPtrclass instance
Returns
a wrapper Callback

Build Callbacks for class method members which take varying numbers of arguments and potentially returning a value.

Definition at line 1355 of file callback.h.