holoscan::InMemoryPubSubNetworkContext
holoscan::InMemoryPubSubNetworkContext
Holoscan PubSub NetworkContext backed by in-memory transports.
InMemoryPubSubNetworkContext wraps the GXF nvidia::gxf::InMemoryPubSubContext component, which self-configures with InMemoryDiscovery, InMemoryTransport, and InMemorySerializer backends. No IPC, network sockets, or shared-memory segments are required — messages are delivered by transferring GXF entity UIDs within the same process.
Inherits from: holoscan::PubSubContext (public)
Constructors
InMemoryPubSubNetworkContext
Destructor
~InMemoryPubSubNetworkContext
Methods
gxf_typename
Points at nvidia::gxf::InMemoryPubSubContext so that the GXF component self-configures its own backends (InMemoryDiscovery, InMemoryTransport, InMemorySerializer) via its initialize() method.
The Holoscan layer then forwards all registered parameters (including drop_pattern, serializer_mode, reorder_pattern) directly to the GXF component by name.
setup
Define the network context specification.
Parameters
The reference to the component specification.
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.
clock
Get the Clock used by the network context.
Returns: The Clock used by the network context, or nullptr if not applicable.
get
Get the underlying GXF PubSubContext component.
Returns: Pointer to the GXF PubSubContext, or nullptr if not initialized.
node_name
Get the node name for this context.
Returns: The node name string.
get_topics
Get information about all known topics.
Returns: Vector of TopicInfo structures.
get_publisher_count
Get number of publishers on a topic.
Returns: Number of publishers.
Parameters
Topic name to query.
get_subscriber_count
Get number of subscribers on a topic.
Returns: Number of subscribers.
Parameters
Topic name to query.
registered_publisher_gids
Get the GIDs of all locally registered publishers.
Returns: Vector of publisher GIDs (snapshot under lock).
registered_subscriber_gids
Get the GIDs of all locally registered subscribers.
Returns: Vector of subscriber GIDs (snapshot under lock).
get_publisher_transmitter
Look up the transmitter Handle for a registered publisher.
Returns: Handle to the Transmitter, or Unexpected with GXF_ENTITY_NOT_FOUND.
Parameters
Publisher GID.
get_subscriber_receiver
Look up the receiver Handle for a registered subscriber.
Returns: Handle to the Receiver, or Unexpected with GXF_ENTITY_NOT_FOUND.
Parameters
Subscriber GID.
to_yaml_node
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_backend_objects
Reset any backend-specific objects.
set_parameters
Set the parameters based on defaults (sets GXF parameters for GXF operators).
id
Mutable
Const
Set the NetworkContext ID.
Returns: The reference to this network context.
Parameters
The ID of the network context.
name
Set the name of the network context (1)
Set the name of the network context (2)
Const
Set the name of the network context.
Returns: The reference to the network context.
Parameters
The name of the network context.
fragment
Set the fragment of the network context.
Returns: The reference to the network context.
Parameters
The pointer to the fragment of the network context.
spec
Overload 1
Overload 2
Set the component specification to the network context.
Returns: The reference to the network context.
Parameters
The component specification.
spec_shared
Get the shared pointer to the component spec.
Returns: The shared pointer to the component spec.
add_arg
Add a resource to the network context (1)
Add a resource to the network context (2)
Add an argument to the component (1)
Add an argument to the component (2)
Add a list of arguments to the component (1)
Add a list of arguments to the component (2)
Add a resource to the network context.
Parameters
The resource to add.
resources
Get the resources of the network context.
Returns: The resources of the network context.
args
Get the list of arguments.
Returns: The vector of arguments.
description
Get a description of the component.
Returns: YAML string.
See also: to_yaml_node()
service
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.
get_service_by_type_info
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.
gxf_context
Mutable
Const
gxf_eid
Mutable
Const
gxf_tid
Mutable
Const
gxf_cid
Mutable
Const
gxf_cname
Overload 1
Overload 2
gxf_graph_entity
Overload 1
Overload 2
gxf_entity_group_name
The name of the entity group this component belongs to.
gxf_entity_group_id
The group id of the entity group this component belongs to.
gxf_cptr
gxf_component
gxf_initialize
set_gxf_parameter
Set a given parameter on the underlying GXF component.
reset_gxf_graph_entity
setup_backend
Called after the GXF InMemoryPubSubContext has been created and its parameters have been set.
In private mode: calls GXF initialize() + init_context(). In session mode: creates shared frontends + serializer chain, calls init_context().
update_params_from_args
Update parameters based on the specified arguments
Update parameters based on the specified arguments (with params)
Update parameters based on the specified arguments.
service_provider
Set the service provider that owns this component.
setup_private_backend
setup_session_backend
Static methods
register_converter
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_argument_setter
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.