Class UcxReceiver
Defined in File ucx_receiver.hpp
Base Type
public holoscan::Receiver
(Class Receiver)
-
class UcxReceiver : public holoscan::Receiver
UCX-based double buffer receiver class.
The UcxReceiver class is used to receive messages from an operator within another fragment of a distributed application. This is based on the same double-buffer queue as the DoubleBufferReceiver, 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 input 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 receiver. Defaults to 1.
policy (uint64_t, optional): The policy to use when a message arrives, but there is no space in the receiver. The possible values are 0: pop, 1: reject, 2: fault (Default: 2).
address (std::string, optional): The (IPv4) address of the receiver. Default of “0.0.0.0” corresponds to INADDR_ANY.
port (uint32_t, optional): The receiver port (Default: holoscan::kDefaultUcxPort).
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 UcxReceiver(ArgT &&arg, ArgsT&&... args)
-
UcxReceiver() = default
-
UcxReceiver(const std::string &name, nvidia::gxf::Receiver *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 address()
The IPv4 network address used by the receiver.
-
uint32_t port()
The network port used by the receiver.
-
nvidia::gxf::UcxReceiver *get() const
-
void track()
Enable tracking in the underlying holoscan::HoloscanUcxReceiver class.
Public Members
-
Parameter<uint64_t> capacity_
-
Parameter<uint64_t> policy_