SST 15.0
Structural Simulation Toolkit
SST::SSTHandlerBase< returnT, argT >::AttachPoint Class Referenceabstract

Attach Point to get notified when a handler starts and stops. More...

#include <ssthandler.h>

Public Member Functions

virtual uintptr_t registerHandler (const AttachPointMetaData &mdata)=0
 Function that will be called when a handler is registered with the tool implementing the attach point.
 
virtual void beforeHandler (uintptr_t key, std::conditional_t< std::is_pointer_v< argT >, const std::remove_pointer_t< argT > *, const argT & > arg)=0
 Function to be called before the handler is called.
 
virtual void afterHandler (uintptr_t key, std::conditional_t< std::is_pointer_v< returnT >, const std::remove_pointer_t< returnT > *, const returnT & > ret_value)=0
 Function to be called after the handler is called.
 
virtual void serializeHandlerAttachPointKey (SST::Core::Serialization::serializer &UNUSED(ser), uintptr_t &UNUSED(key))
 Function that will be called to handle the key returned from registerHandler, if the AttachPoint tool is serializable.
 

Detailed Description

template<typename returnT, typename argT>
class SST::SSTHandlerBase< returnT, argT >::AttachPoint

Attach Point to get notified when a handler starts and stops.

This class is used in conjuction with a Tool type base class to create various tool types to attach to the handler.

Member Function Documentation

◆ afterHandler()

template<typename returnT, typename argT>
virtual void SST::SSTHandlerBase< returnT, argT >::AttachPoint::afterHandler ( uintptr_t key,
std::conditional_t< std::is_pointer_v< returnT >, const std::remove_pointer_t< returnT > *, const returnT & > ret_value )
pure virtual

Function to be called after the handler is called.

The key passed in is the uintptr_t returned from registerHandler()

Parameters
keyuintptr_t returned from registerHandler() when handler was registered with the tool
ret_valuevalue that was returned by the handler. If retunT is a pointer, this will be passed as a const pointer, if not, it will be passed as a const reference

◆ beforeHandler()

template<typename returnT, typename argT>
virtual void SST::SSTHandlerBase< returnT, argT >::AttachPoint::beforeHandler ( uintptr_t key,
std::conditional_t< std::is_pointer_v< argT >, const std::remove_pointer_t< argT > *, const argT & > arg )
pure virtual

Function to be called before the handler is called.

@key uintptr_t returned from registerHandler() when handler was registered with the tool

  • argument that will be passed to the handler function. If argT is a pointer, this will be passed as a const pointer, if not, it will be passed as a const reference

◆ registerHandler()

template<typename returnT, typename argT>
virtual uintptr_t SST::SSTHandlerBase< returnT, argT >::AttachPoint::registerHandler ( const AttachPointMetaData & mdata)
pure virtual

Function that will be called when a handler is registered with the tool implementing the attach point.

The metadata passed in will be dependent on what type of tool this is attached to. The uintptr_t returned from this function will be passed into the beforeHandler() and afterHandler() functions.

Parameters
mdataMetadata to be passed into the tool
Returns
Opaque key that will be passed back into beforeHandler() and afterHandler() to identify the source of the calls

◆ serializeHandlerAttachPointKey()

template<typename returnT, typename argT>
virtual void SST::SSTHandlerBase< returnT, argT >::AttachPoint::serializeHandlerAttachPointKey ( SST::Core::Serialization::serializer & UNUSEDser,
uintptr_t & UNUSEDkey )
inlinevirtual

Function that will be called to handle the key returned from registerHandler, if the AttachPoint tool is serializable.

This is needed because the key is opaque to the Link, so it doesn't know how to handle it during serialization. During SIZE and PACK phases of serialization, the tool needs to store out any information that will be needed to recreate data that is reliant on the key. On UNPACK, the function needs to recreate any state and reinitialize the passed in key reference to the proper state to continue to make valid calls to beforeHandler() and afterHandler().

Since not all tools will be serializable, there is a default, empty implementation.

Parameters
serSerializer to use for serialization
keyKey that would be passed into the beforeHandler() and afterHandler() functions.

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