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

Class DownstreamMessageAffordableCondition

Base Type

class DownstreamMessageAffordableCondition : public holoscan::gxf::GXFCondition

Condition class that allows an operator to execute only when there is space in any downstream operator’s receiver queues for a specified number of messages produced by a given output port.

This condition applies to a specific output port of the operator as determined by setting the “transmitter” argument.

This condition can also be set via the Operator::setup method using IOSpec::condition with ConditionType::kDownstreamMessageAffordable. In that case, the transmitter is already known from the port corresponding to the IOSpec object, so the “transmitter” argument is unnecessary.

==Parameters==

  • min_size (uint64_t): The minimum number of messages that there must be space available for in the front stage of the double-buffer receiver queues of all receivers connected to the specified transmitter.

  • transmitter (std::string): The transmitter that should check for space in the queue of all of its connected receivers. This should be specified by the name of the operator’s output port the condition will apply to. The Holoscan SDK will then automatically replace the port name with the actual transmitter object at application run time.

Public Functions

template<typename ArgT, typename ...ArgsT, typename = std::enable_if_t<!std::is_base_of_v<::holoscan::Condition, 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 DownstreamMessageAffordableCondition(ArgT &&arg, ArgsT&&... args)
DownstreamMessageAffordableCondition() = default
inline explicit DownstreamMessageAffordableCondition(size_t min_size)
inline virtual const char *gxf_typename() const override
virtual void setup(ComponentSpec &spec) override

Define the condition specification.

Parameters

spec – The reference to the component specification.

inline void transmitter(std::shared_ptr<Transmitter> transmitter)
inline std::shared_ptr<Transmitter> transmitter()
void min_size(uint64_t min_size)
inline uint64_t min_size()
inline 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.

nvidia::gxf::DownstreamReceptiveSchedulingTerm *get() const

Previous Class DoubleBufferTransmitter
Next Class Endpoint
© Copyright 2022-2025, NVIDIA. Last updated on Apr 30, 2025.