> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/holoscan/sensor-bridge/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/holoscan/sensor-bridge/_mcp/server.

# hololink::emulation::BaseTransmitter

> Abstract base class for all transmitters.

Abstract base class for all transmitters.

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

```cpp showLineNumbers={false}
#include <hololink/emulation/base_transmitter.hpp>
```

***

## Constructors

### BaseTransmitter \[#basetransmitter]

```cpp showLineNumbers={false}
hololink::emulation::BaseTransmitter::BaseTransmitter() = default
```

Construct a new `BaseTransmitter` object.

### Destructor \[#destructor]

### \~BaseTransmitter

```cpp showLineNumbers={false}
virtual hololink::emulation::BaseTransmitter::~BaseTransmitter()
```

Destroy the `BaseTransmitter` object.

***

## Methods

### send \[#send]

```cpp showLineNumbers={false}
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**

[DataPlaneCtxt](../structs/dataplanectxt) for the owning [DataPlane](dataplane). Concrete transmitter downcasts.

Host-memory buffer.

Bytes to send.

Optional frame-flush trigger; see [DataPlane::send](coedataplane#send) for semantics.