setNotifyOnReceive
virtual void setNotifyOnReceive(HandlerBase* functor) = 0;
An endpoint uses this function to register a functor of the appropriate form. This functor will be called when a Request is received by the interface. The registered function is a notification only and the endpoint must subsequently call recv()
to acquire the received Request.
Requirements
Network interface
Must support registering this functor. If a functor is registered, it must be called when a Request is received at the interface during simulation (i.e., during SST's run loop). During init()
and complete()
, links are polling only and this functor should not be called.
Endpoint
May optionally use this function to be notified when requests arrive.
Parameters
- functor (HandlerBase*) A handler functor
- returns none
Examples
These examples show the registration only, for more information see the handler documentation.
Example 1: Registering a callback handler in a SimpleNetwork interface
void NetworkInterfaceImplementation::setNotifyOnReceive(HandlerBase* functor)
{
// receiveFunctor is defined as:
// HandlerBase* receiveFunctor;
receiveFunctor = functor;
}
Example 2: Registering a callback handler from an Endpoint
// Assuming this is in a class named 'Endpoint' with a HandlerBase function named 'handler'
net_iface->setNotifyOnReceive(new SST::Interfaces::SimpleNetwork::Handler<Endpoint>(this, &Endpoint::handler));
Header
#include <sst/core/interfaces/simpleNetwork.h>