holoscan::FastDdsTransport
holoscan::FastDdsTransport
DDS-based implementation of PubSubTransport.
Uses FastDDS DataWriter/DataReader for message transport.
Inherits from: nvidia::gxf::PubSubTransport (public)
Constructors
FastDdsTransport
From raw pointer
Copy (deleted)
Construct a FastDdsTransport with a FastDdsPubSubContext.
Parameters
FastDdsPubSubContext providing DomainParticipant
Destructor
~FastDdsTransport
Destructor - calls shutdown() if needed.
Assignment operators
operator=
Methods
initialize
shutdown
is_initialized
transport_model
DDS is a topic-based transport.
PubSubContext uses this to call send(topic_name, …) once per publish instead of calling send(gid, …) once per subscriber.
native_topic_matching
SEDP handles topic matching + QoS compatibility at the RTPS protocol level.
native_qos_enforcement
RTPS-level reliability, durability, and deadline enforcement.
supports_multicast
RTPS supports multicast for discovery and data.
requires_explicit_connections
DDS DataWriters/DataReaders manage connections internally.
supports_native_buffers
supports_mixed_local_remote_fanout
supports_native_profile
send_native_descriptor
Send a native descriptor on the sidecar topic “{topic}/_native_desc”.
set_native_buffers_enabled
Enable native buffer support (called by FastDdsPubSubNetworkContext).
connect_to
No-op for DDS - discovery is automatic via SPDP/SEDP.
disconnect_from
No-op for DDS - endpoint lifecycle managed by DDS.
is_connected_to
Returns true for any endpoint (DDS handles discovery).
create_publisher_endpoint
Create a DataWriter for a topic.
Called automatically by PubSubContext::register_publisher(). Maps the QoSProfile to FastDDS DataWriterQos via dds_qos::apply_writer_qos().
Returns: Success or error if topic/writer creation fails.
Parameters
Name of the topic to publish to.
GID to associate with this writer.
QoS profile to apply to the DataWriter.
create_subscriber_endpoint
Create a DataReader for a topic.
Called automatically by PubSubContext::register_subscriber(). Maps the QoSProfile to FastDDS DataReaderQos via dds_qos::apply_reader_qos().
Returns: Success or error if topic/reader creation fails.
Parameters
Name of the topic to subscribe to.
GID to associate with this reader.
QoS profile to apply to the DataReader.
remove_publisher_endpoint
Remove a DataWriter.
Called automatically by PubSubContext::unregister_publisher() and PubSubContext::deinitialize(). For reliable QoS, calls wait_for_acknowledgments() before deletion.
Returns: Success or error if writer not found.
Parameters
GID of the writer to remove.
remove_subscriber_endpoint
Remove a DataReader.
Called automatically by PubSubContext::unregister_subscriber() and PubSubContext::deinitialize().
Returns: Success or error if reader not found.
Parameters
GID of the reader to remove.
send
Overload 1
Overload 2
Send payload via DDS DataWriter (GID-based fallback).
This is the GID-based send required by the PubSubTransport interface. For kTopicBased transports, PubSubContext calls the topic-based send() overload instead, so this is a fallback only.
Returns: Success or error if no writer exists for the publisher.
Parameters
IGNORED - DDS publishes to topic, not endpoint.
Serialized message (already staged to host memory).
Must contain publisher_gid identifying the writer.
set_on_receive
set_on_connection_established
set_on_connection_lost
get_send_queue_size
get_receive_queue_size
get_connection_count
get_or_create_topic
Get or create a DDS Topic.
get_or_create_sidecar_writer
Get or create a sidecar DataWriter for native descriptor messages.
create_sidecar_reader
Create a sidecar DataReader for native descriptor messages.
send_impl
Shared send implementation used by both GID-based and topic-based send().