Class NetworkContext

Base Type

Derived Type

class NetworkContext : public holoscan::Component

Base class for all network contexts.

This class is the base class for all network contexts (e.g. holoscan::UcxContext). It is used to define the common interface for all network contexts.

Subclassed by holoscan::gxf::GXFNetworkContext

Public Functions

NetworkContext() = default

NetworkContext(NetworkContext&&) = default

template<typename ArgT, typename ...ArgsT, typename = std::enable_if_t<!std::is_base_of_v<NetworkContext, std::decay_t<ArgT>> && (std::is_same_v<Arg, std::decay_t<ArgT>> || std::is_same_v<ArgList, std::decay_t<ArgT>>)>>
inline explicit NetworkContext(ArgT &&arg, ArgsT&&... args)

Construct a new NetworkContext object.

~NetworkContext() override = default

inline NetworkContext &id(int64_t id)

Set the NetworkContext ID.

Parameters

id – The ID of the network context.

Returns

The reference to this network context.

inline NetworkContext &name(const std::string &name) &

Set the name of the network context.

Parameters

name – The name of the network context.

Returns

The reference to the network context.

inline NetworkContext &&name(const std::string &name) &&

Set the name of the network context.

Parameters

name – The name of the network context.

Returns

The reference to the network context.

inline NetworkContext &fragment(Fragment *fragment)

Set the fragment of the network context.

Parameters

fragment – The pointer to the fragment of the network context.

Returns

The reference to the network context.

inline NetworkContext &spec(const std::shared_ptr<ComponentSpec> &spec)

Set the component specification to the network context.

Parameters

spec – The component specification.

Returns

The reference to the network context.

inline ComponentSpec *spec()

Get the component specification of the network context.

Returns

The pointer to the component specification.

inline std::shared_ptr<ComponentSpec> spec_shared()

Get the shared pointer to the component spec.

Returns

The shared pointer to the component spec.

inline void add_arg(const std::shared_ptr<Resource> &arg)

Add a resource to the network context.

Parameters

arg – The resource to add.

inline void add_arg(std::shared_ptr<Resource> &&arg)

Add a resource to the network context.

Parameters

arg – The resource to add.

inline std::unordered_map<std::string, std::shared_ptr<Resource>> &resources()

Get the resources of the network context.

Returns

The resources of the network context.

inline virtual void setup(ComponentSpec &spec)

Define the network context specification.

Parameters

spec – The reference to the component specification.

virtual void initialize() override

Initialize the network context.

This function is called after the network context is created by holoscan::Fragment::make_network_context().

virtual YAML::Node to_yaml_node() const override

Get a YAML representation of the network context.

Returns

YAML node including the base component properties, component spec and resources.

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 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.

Protected Attributes

std::shared_ptr<ComponentSpec> spec_

The component specification.

std::unordered_map<std::string, std::shared_ptr<Resource>> resources_

The resources used by the network context.

Previous Class MultiThreadScheduler
Next Class Operator
© Copyright 2022-2023, NVIDIA. Last updated on Feb 27, 2024.