Apama
10.15.2.4
|
Base class that simplifies implementation of transport plug-ins that deal only with individual messages not batches, and ignore messages with null payloads. More...
#include <sag_connectivity_plugins.hpp>
Public Member Functions | |
AbstractSimpleTransport (const PluginConstructorParameters::TransportConstructorParameters ¶ms) | |
Constructor. More... | |
virtual void | sendBatchTowardsTransport (Message *start, Message *end) |
Implements batch sending, calling deliverMessageTowardsTransport(Message&) for each message individually. More... | |
virtual void | deliverMessageTowardsTransport (Message &msg)=0 |
Abstract method that must be implemented to handle delivery of an individual message. More... | |
virtual void | deliverNullPayloadTowardsTransport (Message &msg) |
Deliver a message with a null payload. More... | |
virtual void | handleException (Message &m) |
Handle an exception thrown while delivering a message towards the transport. More... | |
Public Member Functions inherited from com::softwareag::connectivity::AbstractTransport | |
AbstractTransport (const PluginConstructorParameters::TransportConstructorParameters ¶ms) | |
Constructor. More... | |
Public Member Functions inherited from com::softwareag::connectivity::Plugin | |
virtual | ~Plugin () |
This destructor must be virtual. More... | |
virtual void | start () |
Called when an entire chain has been created and the plugin is allowed to start up (after all plugins are connected together). More... | |
virtual void | hostReady () |
Called some time after start(), when the host is ready to start receiving input (sends will be queued until this point). More... | |
virtual void | shutdown () |
Stop processing messages and terminate and join any background threads. More... | |
const std::string & | getName () const |
The name used for this plug-in in the configuration file. More... | |
Public Member Functions inherited from com::softwareag::connectivity::TransportSide | |
virtual | ~TransportSide () |
Ensure virtual destruction. More... | |
void | sendBatchTowardsTransport (Message &&message) |
Overload for sending a batch containing a single message. More... | |
template<typename IT > | |
auto | sendBatchTowardsTransport (const IT &begin, const IT &end) -> typename std::enable_if< !std::is_const< ampl::remove_ref_t< decltype(*begin)>>::value &&l::is_same< Message, ampl::remove_const_t< ampl::remove_ref_t< decltype(*begin)>>>::value, void >::type |
Overload for sending messages using an iterator range. More... | |
Additional Inherited Members | |
Public Types inherited from com::softwareag::connectivity::TransportSide | |
typedef std::unique_ptr< TransportSide > | ptr_t |
Pointers to TransportSides should always be this ptr_t type, which is a std::unique_ptr. More... | |
Public Attributes inherited from com::softwareag::connectivity::Plugin | |
Logger | logger |
Logging for writing to the host log file. More... | |
Protected Member Functions inherited from com::softwareag::connectivity::Plugin | |
StatusReporter & | getStatusReporter () |
Allows reporting status information from this plug-in, such as online or failed status and number of messages sent/received in each direction. More... | |
Protected Attributes inherited from com::softwareag::connectivity::AbstractTransport | |
HostSide::ptr_t | hostSide |
The next plug-in in the chain towards host. More... | |
Protected Attributes inherited from com::softwareag::connectivity::Plugin | |
const std::string | pluginName |
The name used for this plug-in in the configuration file. More... | |
const std::string | chainId |
The identifier used for the chain this plug-in is part of. More... | |
map_t | config |
The configuration of this plug-in. More... | |
const PluginHost::ptr_t | host |
Interface to support miscellaneous requests from this plug-in to the host system. More... | |
Base class that simplifies implementation of transport plug-ins that deal only with individual messages not batches, and ignore messages with null payloads.
To export a transport class for use in the host you should use the SAG_DECLARE_CONNECTIVITY_TRANSPORT_CLASS(Class) macro, and provide a public constructor with the same signature as AbstractSimpleTransport(const PluginConstructorParameters::TransportConstructorParameters &).
Plug-in authors will typically extend this class by providing at least valid constructor, an implementation of deliverMessageTowardsTransport(Message&), and sending messages towards the hostSide from a background thread created in start().
|
inline |
Constructor.
A subclass should provide its own constructor with the same signature as this one.
A plug-in should throw an exception from the constructor if there is a problem with the configuration or any other error that will prevent the plug-in from working correctly.
params | Provides access to the configuration for this plug-in, and other capabilities. |
|
pure virtual |
Abstract method that must be implemented to handle delivery of an individual message.
|
inlinevirtual |
Deliver a message with a null payload.
Default is to ignore it
|
inlinevirtual |
Handle an exception thrown while delivering a message towards the transport.
Default implementation is to log a warning and discard a message.
You can override it yourself to have other behaviour. The Message which caused the error is passed in.
This is called from within a catch block, so if you need to know the exception thrown then you can rethrow it yourself:
|
inlinevirtual |
Implements batch sending, calling deliverMessageTowardsTransport(Message&) for each message individually.
Any exceptions from deliverMessageTowardsTransport are caught and handleException(Message&) is called and then processing continues for the next message.
Implements com::softwareag::connectivity::TransportSide.