Class Condition
Defined in File condition.hpp
Base Type
public holoscan::Component(Class Component)
Derived Type
public holoscan::gxf::GXFCondition(Class GXFCondition)
- 
class Condition : public holoscan::Component
 Base class for all conditions.
A condition is a predicate that can be evaluated at runtime to determine if an operator should execute. This matches the semantics of GXF’s Scheduling Term.
Subclassed by holoscan::gxf::GXFCondition
Public Types
- 
enum class ConditionComponentType
 Resource type used for the initialization of the resource.
Values:
- 
enumerator kNative
 Native condition.
- 
enumerator kGXF
 GXF condition (scheduling term).
- 
enumerator kNative
 
Public Functions
- 
Condition() = default
 
- 
Condition(Condition&&) = default
 
- 
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 Condition(ArgT &&arg, ArgsT&&... args) Construct a new Condition object.
- 
~Condition() override = default
 
- 
inline virtual void check(int64_t timestamp, SchedulingStatusType *status_type, int64_t *target_timestamp) const
 Check the condition status before allowing execution.
If the condition is waiting for a time event ‘target_timestamp’ will contain the target timestamp.
- Parameters
 timestamp – The current timestamp
type – The status of the condition
target_timestamp – The target timestamp (used if the term is waiting for a time event).
- 
inline virtual void on_execute(int64_t timestamp)
 Called each time after the entity of this term was executed.
- Parameters
 timestamp – The current timestamp
- 
inline virtual void update_state(int64_t timestamp)
 Checks if the state of the condition can be updated and updates it.
- Parameters
 timestamp – The current timestamp
- 
inline ConditionComponentType condition_type() const
 Get the condition type.
- Returns
 The condition type.
- 
inline Condition &name(const std::string &name) &
 Set the name of the condition.
- Parameters
 name – The name of the condition.
- Returns
 The reference to the condition.
- 
inline Condition &&name(const std::string &name) &&
 Set the name of the condition.
- Parameters
 name – The name of the condition.
- Returns
 The reference to the condition.
- 
inline Condition &fragment(Fragment *fragment)
 Set the fragment of the condition.
- Parameters
 fragment – The pointer to the fragment of the condition.
- Returns
 The reference to the condition.
Set the component specification to the condition.
- Parameters
 spec – The component specification.
- Returns
 The reference to the condition.
- 
inline ComponentSpec *spec()
 Get the component specification of the condition.
- Returns
 The pointer to the component specification.
Get the shared pointer to the component spec.
- Returns
 The shared pointer to the component spec.
Add a resource to the condition.
- Parameters
 arg – The resource to add.
Add a resource to the condition.
- Parameters
 arg – The resource to add.
- 
inline std::unordered_map<std::string, std::shared_ptr<Resource>> &resources()
 Get the resources of the condition.
- Returns
 The resources of the condition.
- 
inline virtual void setup(ComponentSpec &spec)
 Define the condition 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.
- 
virtual YAML::Node to_yaml_node() const override
 Get a YAML representation of the condition.
- Returns
 YAML node including spec of the condition in addition to the base component properties.
- 
std::optional<std::shared_ptr<Receiver>> receiver(const std::string &port_name)
 Return the Receiver corresponding to a specific input port of the Operator associated with this condition.
- Parameters
 port_name – The name of the input port.
- Returns
 The Receiver corresponding to the input port, if it exists. Otherwise, return nullopt.
- 
std::optional<std::shared_ptr<Transmitter>> transmitter(const std::string &port_name)
 Return the Transmitter corresponding to a specific output port of the Operator associated with this condition.
- Parameters
 port_name – The name of the output port.
- Returns
 The Transmitter corresponding to the output port, if it exists. Otherwise, return nullopt.
- 
gxf_uid_t wrapper_cid() const
 Get the GXF component ID of the underlying GXFSchedulingTermWrapper
This method is only relevant for native conditions. For conditions inheriting from GXFCondition, please use GXFCondition::gxf_cid() instead.
- Returns
 The unique GXF component id for this condition.
Protected Functions
- 
inline void set_operator(Operator *op)
 Set the Operator this condition is associated with.
- Parameters
 op – The pointer to the Operator object.
- 
void wrapper_cid(gxf_uid_t cid)
 Store GXF component ID of underlying GXFSchedulingTermWrapper
- Parameters
 GXF – component id.
- 
void update_params_from_args()
 Update parameters based on the specified arguments.
- 
virtual void set_parameters()
 Set the parameters based on defaults (sets GXF parameters for GXF components)
- 
void update_params_from_args(std::unordered_map<std::string, ParameterWrapper> ¶ms)
 Update parameters based on the specified arguments.
Protected Attributes
- 
bool is_initialized_ = false
 Whether the condition is initialized.
- 
std::unordered_map<std::string, std::shared_ptr<Resource>> resources_
 The resources used by the condition.
- 
ConditionComponentType condition_type_ = ConditionComponentType::kNative
 The type of the component.
- 
Operator *op_ = nullptr
 The operator this condition is associated with.
- 
gxf_uid_t wrapper_cid_ = 0
 Component ID of underlying GXFSchedulingTermWrapper.
Friends
- friend class holoscan::Operator
 
- 
enum class ConditionComponentType