Plugins

Covers Engine Plugin SDK 2.0.0 · Interface Plugin SDK 0.2.0

Transport

Implement start, send and stop for custom framing and I/O.

API

Implement start, send and stop for custom framing and I/O. Peer owns registration, correlation, deadlines, heartbeats and application dispatch. Serialize access to owned sockets on the I/O worker. Never replay accepted commands after reconnect.

Namespace: TEMPEST.

#include <tempest/Transport.h>

Declaration

class Transport {
public:
    virtual ~Transport() = default;
    // Begin link I/O; report incoming messages through receive and physical availability through setConnected.
    virtual void start() = 0;
    // Nonblocking bounded enqueue; throw on failed operation enqueue. Best-effort telemetry may be dropped. Honor the original local deadline for unsent messages.
    virtual void send(Message message);
    // Stop link delivery and join I/O before returning.
    virtual void stop() = 0;
    // Return an observational snapshot; unknown fields remain unset.
    virtual std::vector<TransportPath> diagnostics() const;
    protected:
    // Deliver a decoded DARTWIC message into the owning Peer. No application handler runs inline.
    void receive(Message message);
    protected:
    // Report physical link availability; protocol registration establishes readiness separately.
    void setConnected(bool connected, std::string reason = {});
};