NVIDIA Holoscan SDK v2.4.0
Holoscan v2.4.0

Class ComponentBase

Derived Types

class ComponentBase

Base class for all components.

This class is the base class for all components including <a class="reference internal" href="classholoscan_1_1Operator.html#classholoscan_1_1Operator" target="_self">holoscan::Operator</a>, <a class="reference internal" href="classholoscan_1_1Condition.html#classholoscan_1_1Condition" target="_self">holoscan::Condition</a>, and <a class="reference internal" href="classholoscan_1_1Resource.html#classholoscan_1_1Resource" target="_self">holoscan::Resource</a>. It is used to define the common interface for all components.

Subclassed by holoscan::Component, holoscan::Operator

Public Functions

ComponentBase() = default
template<typename ArgT, typename ...ArgsT, typename = std::enable_if_t<!std::is_base_of_v<::holoscan::ComponentBase, 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 ComponentBase(ArgT &&arg, ArgsT&&... args)

Construct a new Component object.

Parameters

args – The arguments to be passed to the component.

virtual ~ComponentBase() = default
inline int64_t id() const

Get the identifier of the component.

By default, the identifier is set to -1. It is set to a valid value when the component is initialized.

With the default executor (GXFExecutor), the identifier is set to the GXF component ID.

Returns

The identifier of the component.

inline const std::string &name() const

Get the name of the component.

Returns

The name of the component.

inline Fragment *fragment()

Get a pointer to Fragment object.

Returns

The Pointer to Fragment object.

inline void add_arg(const Arg &arg)

Add an argument to the component.

Parameters

arg – The argument to add.

inline void add_arg(Arg &&arg)

Add an argument to the component.

Parameters

arg – The argument to add.

inline void add_arg(const ArgList &arg)

Add a list of arguments to the component.

Parameters

arg – The list of arguments to add.

inline void add_arg(ArgList &&arg)

Add a list of arguments to the component.

Parameters

arg – The list of arguments to add.

inline std::vector<Arg> &args()

Get the list of arguments.

Returns

The vector of arguments.

inline virtual void initialize()

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

Get a YAML representation of the component.

Returns

YAML node including the id, name, fragment name, and arguments of the component.

std::string description() const

Get a description of the component.

See also

Returns

YAML string.

Protected Functions

void update_params_from_args(std::unordered_map<std::string, ParameterWrapper> &params)

Update parameters based on the specified arguments.

virtual void reset_graph_entities()

Reset the GXF GraphEntity of any arguments that have one.

Protected Attributes

int64_t id_ = -1

The ID of the component.

std::string name_ = ""

Name of the component.

Fragment *fragment_ = nullptr

Pointer to the fragment that owns this component.

std::vector<Arg> args_

List of arguments.

Friends

friend class holoscan::Executor
friend class holoscan::gxf::GXFExecutor
friend class holoscan::Fragment

Previous Class Component
Next Class ComponentSpec
© Copyright 2022-2024, NVIDIA. Last updated on Oct 1, 2024.