holoscan::FastDdsPubSubNetworkContext
holoscan::FastDdsPubSubNetworkContext
holoscan::FastDdsPubSubNetworkContext
PubSubContext subclass that uses FastDDS as the backend.
FastDdsPubSubNetworkContext overrides setup_backend() to create and inject FastDDS-based discovery, transport, and serializer components into the GXF PubSubContext.
This is the default backend when HOLOSCAN_ENABLE_FASTDDS is defined. The auto-creation path in Fragment::create_pubsub_network_context() returns an instance of this class.
Inherits from: holoscan::PubSubContext (public)
Define the network context specification.
Parameters
The reference to the component specification.
Get the type name of the GXF network context.
The returned string is the type name of the GXF network context and is used to create the GXF network context.
Example: “nvidia::holoscan::UcxContext”
Returns: The type name of the GXF network context.
Initialize the network context.
This function is called after the network context is created by holoscan::Fragment::make_network_context().
Get the Clock used by the network context.
Returns: The Clock used by the network context, or nullptr if not applicable.
Get the underlying GXF PubSubContext component.
Returns: Pointer to the GXF PubSubContext, or nullptr if not initialized.
Get the node name for this context.
Returns: The node name string.
Get information about all known topics.
Returns: Vector of TopicInfo structures.
Get number of publishers on a topic.
Returns: Number of publishers.
Parameters
Topic name to query.
Get number of subscribers on a topic.
Returns: Number of subscribers.
Parameters
Topic name to query.
Get the GIDs of all locally registered publishers.
Returns: Vector of publisher GIDs (snapshot under lock).
Get the GIDs of all locally registered subscribers.
Returns: Vector of subscriber GIDs (snapshot under lock).
Look up the transmitter Handle for a registered publisher.
Returns: Handle to the Transmitter, or Unexpected with GXF_ENTITY_NOT_FOUND.
Parameters
Publisher GID.
Look up the receiver Handle for a registered subscriber.
Returns: Handle to the Receiver, or Unexpected with GXF_ENTITY_NOT_FOUND.
Parameters
Subscriber GID.
Get a YAML representation of the network context.
Returns: YAML node including type, specs, resources of the network context in addition to the base component properties.
Reset any backend-specific objects.
Set the parameters based on defaults (sets GXF parameters for GXF operators).
Set the NetworkContext ID.
Returns: The reference to this network context.
Parameters
The ID of the network context.
Set the name of the network context.
Returns: The reference to the network context.
Parameters
The name of the network context.
Set the fragment of the network context.
Returns: The reference to the network context.
Parameters
The pointer to the fragment of the network context.
Set the component specification to the network context.
Returns: The reference to the network context.
Parameters
The component specification.
Get the shared pointer to the component spec.
Returns: The shared pointer to the component spec.
Add a resource to the network context.
Parameters
The resource to add.
Get the resources of the network context.
Returns: The resources of the network context.
Get the list of arguments.
Returns: The vector of arguments.
Get a description of the component.
Returns: YAML string.
See also: to_yaml_node()
Retrieve a registered fragment service or resource.
Retrieves a previously registered fragment service or resource by its type and optional identifier. Returns nullptr if no service/resource is found with the specified type and identifier.
Note that any changes to the service retrieval logic in this method should be synchronized with the implementation in Fragment::service() method to maintain consistency.
Returns: The shared pointer to the service/resource, or nullptr if not found or if type casting fails.
Template parameters
The type of the service/resource to retrieve. Must inherit from either Resource or FragmentService. Defaults to DefaultFragmentService if not specified.
Parameters
The identifier of the service/resource. If empty, retrieves by type only.
Retrieve a registered fragment service or resource for Python bindings.
This is a helper method for Python bindings to retrieve a service by its C++ type info.
Returns: The shared pointer to the base service, or nullptr if not found.
Parameters
The type info of the service/resource to retrieve.
The identifier of the service/resource. If empty, retrieves by type only.
The name of the entity group this component belongs to.
The group id of the entity group this component belongs to.
Set a given parameter on the underlying GXF component.
Set up the PubSub backend (discovery, transport, serializer).
Called automatically from initialize() after the GXF component is created and get() returns a valid pointer.
The default implementation is a no-op. Subclasses should override this to create backend components and inject them into the GXF PubSubContext:
Example
See also: DDSPubSubNetworkContext for the FastDDS backend implementation.
Update parameters based on the specified arguments.
Set the service provider that owns this component.
Register the argument setter for the given type.
If an operator or resource has an argument with a custom type, the argument setter must be registered using this method.
The argument setter is used to set the value of the argument from the YAML configuration.
This method can be called in the initialization phase of the operator/resource (e.g., initialize()). The example below shows how to register the argument setter for the custom type (Vec3):
It is assumed that YAML::convert<T>::encode and YAML::convert<T>::decode are implemented for the given type. You need to specialize the YAML::convert<> template class.
For example, suppose that you had a Vec3 class with the following members:
You can define the YAML::convert<Vec3> as follows in a ‘.cpp’ file:
Please refer to the yaml-cpp documentation for more details.
Template parameters
The type of the argument to register.
Example
Example
Example
Register the argument setter for the given type.
Please refer to the documentation of register_converter() for more details.
Template parameters
The type of the argument to register.