Class UcxTransmitter
Defined in File ucx_transmitter.hpp
Base Type
public holoscan::Transmitter
(Class Transmitter)
-
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
whenApplication::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_