hololink::emulation::BaseTransmitter

View as Markdown

Abstract base class for all transmitters.

Concrete transmitters (COETransmitter, RoCEv2Transmitter, UDPTransmitter) receive a DataPlaneCtxt* and downcast to their transport-specific ctxt (COECtxt, RoCEv2Ctxt, UDPCtxt) — those structs embed the platform DataPlaneCtxt extension as their first member, so the pointer cast is sound.

#include <hololink/emulation/base_transmitter.hpp>

Constructors

BaseTransmitter

hololink::emulation::BaseTransmitter::BaseTransmitter() = default

Construct a new BaseTransmitter object.

Destructor

~BaseTransmitter

virtual hololink::emulation::BaseTransmitter::~BaseTransmitter()

Destroy the BaseTransmitter object.


Methods

send

virtual int64_t hololink::emulation::BaseTransmitter::send(
DataPlaneCtxt *ctxt,
const uint8_t *buffer,
size_t buffer_size,
FrameMetadata *frame_metadata = nullptr
)

Send a host buffer to the destination.

Returns: Bytes sent, or < 0 on error.

Parameters

ctxt
DataPlaneCtxt *

DataPlaneCtxt for the owning DataPlane. Concrete transmitter downcasts.

buffer
const uint8_t *

Host-memory buffer.

buffer_size
size_t

Bytes to send.

frame_metadata
FrameMetadata *Defaults to nullptr

Optional frame-flush trigger; see DataPlane::send for semantics.