Skip to content

Latest commit

 

History

History
70 lines (60 loc) · 5.21 KB

intraprocess.rst

File metadata and controls

70 lines (60 loc) · 5.21 KB

Intra-process delivery

eProsima Fast DDS allows to speed up communications between entities within the same process by avoiding any of the overhead involved in the transport layer. Instead, the dds_layer_publisher_publisher directly calls the reception functions of the dds_layer_subscriber_subscriber. This not only avoids the copy or send operations of the transport, but also ensures the message is received by the Subscriber, avoiding the acknowledgement mechanism.

This feature is enabled by default, and can be configured using xml_profiles. Currently the following options are available:

  • INTRAPROCESS_OFF: The feature is disabled.
  • INTRAPROCESS_USER_DATA_ONLY: Discovery metadata keeps using ordinary transport.
  • INTRAPROCESS_FULL: Default value. Both user data and discovery metadata using Intra-process delivery.
XML

/../code/XMLTester.xml

GUID Prefix considerations for intra-process delivery

Fast DDS utilizes the 's to identify peers running in the same process. Two participants with identical 8 first bytes on the are considered to be running in the same process, and therefore intra-process delivery is used. This mechanism works out-of-the-box when letting Fast DDS set the GUID prefixes for the created DomainParticipants. However, special consideration is required when setting the manually, either programmatically or when using XML

C++ - Option 1: Manual setting of the unsigned char in ASCII format.

/../code/DDSCodeTester.cpp

C++ - Option 2: Using the >> operator and the std::istringstream type.

/../code/DDSCodeTester.cpp

XML

/../code/XMLTester.xml