|
SST 15.0
Structural Simulation Toolkit
|
Attach Point to intercept the data being delivered by a Handler. More...
#include <ssthandler.h>
Public Member Functions | |
| virtual uintptr_t | registerHandlerIntercept (const AttachPointMetaData &mdata)=0 |
| Function that will be called when a handler is registered with the tool implementing the intercept attach point. | |
| virtual void | interceptHandler (uintptr_t key, argT &data, bool &cancel)=0 |
| Function that will be called before the event handler to let the attach point intercept the data. | |
| virtual void | serializeHandlerInterceptPointKey (SST::Core::Serialization::serializer &UNUSED(ser), uintptr_t &UNUSED(key)) |
| Function that will be called to handle the key returned from registerHandlerIntercept, if the AttachPoint tool is serializable. | |
| void | operator() (argT arg) |
| void | attachTool (AttachPoint *tool, const AttachPointMetaData &mdata) |
| Attaches a tool to the AttachPoint. | |
| void | detachTool (AttachPoint *tool) |
| Remove an attached tool. | |
| void | transferAttachedToolInfo (SSTHandlerBase *handler) |
| Transfers attached tools from existing handler. | |
Public Member Functions inherited from SST::Core::Serialization::serializable_base | |
| virtual const char * | cls_name () const =0 |
| virtual uint32_t | cls_id () const =0 |
| virtual std::string | serialization_name () const =0 |
Protected Member Functions | |
| virtual void | operator_impl (argT)=0 |
| void | serialize_order (SST::Core::Serialization::serializer &ser) override |
Additional Inherited Members | |
Static Public Attributes inherited from SST::Core::Serialization::serializable | |
| static constexpr uint32_t | NullClsId = std::numeric_limits<uint32_t>::max() |
Static Public Attributes inherited from SST::Core::Serialization::serializable_base | |
| static constexpr uint32_t | NullClsId = std::numeric_limits<uint32_t>::max() |
Protected Types inherited from SST::Core::Serialization::serializable_base | |
| enum | cxn_flag_t { ConstructorFlag } |
Static Protected Member Functions inherited from SST::Core::Serialization::serializable_base | |
| static void | serializable_abort (uint32_t line, const char *file, const char *func, const char *obj) |
Attach Point to intercept the data being delivered by a Handler.
Class is not usable for Handlers that don't take a parameter and/or return a value
|
inline |
Attaches a tool to the AttachPoint.
| tool | Tool to attach |
| mdata | Metadata to pass to the tool |
|
inline |
Remove an attached tool.
| tool | Tool to remove. If tool doesn't exist, then no action is taken |
|
pure virtual |
Function that will be called before the event handler to let the attach point intercept the data.
The data can be modified, and if cancel is set to true, the handler will not be executed. If cancel is set to true and the ownership of a pointer is passed by the call to the handler, then the function should also delete the data.
| key | Key that was returned from registerHandlerIntercept() function | |
| data | Data that is to be passed to the handler | |
| [out] | cancel | Set to true if the handler delivery should be cancelled. |
|
pure virtual |
Function that will be called when a handler is registered with the tool implementing the intercept 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 intercept() function.
| mdata | Metadata to be passed into the tool |
Referenced by SST::SSTHandlerBase< void, argT >::attachInterceptTool().
|
inlineoverrideprotectedvirtual |
Implements SST::Core::Serialization::serializable_base.
|
inlinevirtual |
Function that will be called to handle the key returned from registerHandlerIntercept, 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 interceptHandler().
Since not all tools will be serializable, there is a default, empty implementation.
| ser | Serializer to use for serialization |
| key | Key that would be passed into the interceptHandler() function. |