What can I help you with?
NVIDIA Holoscan SDK v3.3.0

Class UcxTransmitter

Base Type

class UcxTransmitter : public holoscan::Transmitter

UCX-based double buffer transmitter class.

The UcxTransmitter class is used to emit messages to an operator within another fragment of a distributed application. This is based on the same double-buffer queue as the DoubleBufferTransmitter, but also handles serialization/deserialization of data for sending it over the network via UCX’s active message APIs.

Application authors are not expected to use this class directly. It will be automatically configured for output ports specified via Operator::setup when Application::add_flow has been used to make a connection across fragments of a distributed application.

==Parameters==

  • capacity (uint64_t, optional): The capacity of the double-buffer queue used by the transmitter. Defaults to 1.

  • policy (uint64_t, optional): The policy to use when a message arrives, but there is no space in the transmitter. The possible values are 0: pop, 1: reject, 2: fault (Default: 2).

  • receiver_address (std::string, optional): The (IPv4) address of the receiver. The default of “0.0.0.0” corresponds to INADDR_ANY.

  • local_address (std::string, optional): The local (IPv4) address to use for the connection. The default of “0.0.0.0” corresponds to INADDR_ANY.

  • port (uint32_t, optional): The receiver port (Default: holoscan::kDefaultUcxPort).

  • local_port (uint32_t, optional): The local port to use for connection (default: 0).

  • maximum_connection_retries (uint32_t, optional): The maximum number of times to retry when establishing a connection to the receiver (Default: 10).

  • buffer (std::shared_ptr<holoscan::UcxSerializationBuffer>, optional): The serialization buffer that should be used. This defaults to UcxSerializationBuffer and should not need to be set by the application author.

Public Functions

template<typename ArgT, typename ...ArgsT, typename = std::enable_if_t<!std::is_base_of_v<::holoscan::Resource, std::decay_t<ArgT>> && (std::is_same_v<::holoscan::Arg, std::decay_t<ArgT>> || std::is_same_v<::holoscan::ArgList, std::decay_t<ArgT>>)>>
inline explicit UcxTransmitter(ArgT &&arg, ArgsT&&... args)
UcxTransmitter() = default
UcxTransmitter(const std::string &name, nvidia::gxf::Transmitter *component)
inline virtual const char *gxf_typename() const override
virtual void setup(ComponentSpec &spec) override

Define the resource specification.

Parameters

spec – The reference to the component specification.

virtual void initialize() override

Initialize the component.

This method is called only once when the component is created for the first time, and use of light-weight initialization.

std::string receiver_address()

The IPv4 network address used by the corresponding receiver.

uint32_t port()

The network port used by the receiver.

std::string local_address()

The local address to use for connection.

uint32_t local_port()

The local network port to use for connection.

nvidia::gxf::UcxTransmitter *get() const
void track()

Enable tracking in the underlying holoscan::HoloscanUcxTransmitter class.

Public Members

Parameter<uint64_t> capacity_
Parameter<uint64_t> policy_

Previous Class UcxSerializationBuffer
Next Class UnboundedAllocator
© Copyright 2022-2025, NVIDIA. Last updated on May 29, 2025.