12#include "../../Plugin.hpp"
13#include <dfx-core/transports/destinations/DestinationTransport.hpp>
42 void stop() noexcept override;
Convenience macros to explicitly control copy and move semantics.
#define DFX_DISABLE_COPY_AND_MOVE(ClassName)
Disable both copy and move.
Definition CopyMoveControl.hpp:37
void * dfx_transport_handle_t
Opaque handle representing a transport instance created by the plugin.
Definition PluginInterface.h:66
Abstract base class for all destination transports that deliver messages from a Channel.
Definition DestinationTransport.hpp:26
Definition Endpoint.hpp:24
Endpoint const & endpoint() const noexcept
Gets the endpoint descriptor associated with this transport.
Definition Transport.hpp:161
nlohmann::json const & config() const noexcept
Gets the JSON configuration used to initialize this transport.
Definition Transport.hpp:176
Abstract interface for FD-based event polling.
Definition Poller.hpp:37
void stop() noexcept override
Deactivates the transport.
int64_t pendingMessageCount() const noexcept override
Returns the number of messages queued inside the plugin implementation.
~CDestinationTransport()
Destructor. Calls dfx_transport_interface_t::destroy on the plugin API.
bool deliver(Core::MessagePtr message) override
Packs and delivers a message to the plugin.
void start(FdWatch::Poller &poller) override
Activates the transport and provides the poller vtable to the plugin.
CDestinationTransport(Core::Endpoint endpoint, nlohmann::json config, Plugin const &plugin, dfx_transport_interface_t interface)
Constructs the adaptor and initializes the plugin-side destination.
Manager for a loaded plugin shared library.
Definition Plugin.hpp:38
Definition Channel.hpp:25
Definition MessageApi.hpp:16
Interface to the host's event loop (Poller).
Definition PluginInterface.h:212
The Transport Plugin Interface.
Definition PluginInterface.h:781