File tree Expand file tree Collapse file tree 8 files changed +11
-63
lines changed
fragmented_data_statistics
high_priority_first_flow_controller
real_time_wan_transport/c++98 Expand file tree Collapse file tree 8 files changed +11
-63
lines changed Original file line number Diff line number Diff line change @@ -49,13 +49,14 @@ feature:
4949
5050The FlatData profile used in this example inherits from the builtin
5151` StrictReliable.LargeData ` profile. This builtin profile sets up the middleware
52- for sending large data by using Asynchronous Pubisher, a default Flow Controller
53- and other optimizations. In the FlatData profile, the * Durability QoS* of the
54- DataWriter is set to volatile to enable managed samples to be reused when they
55- are acknowledged. The * DataRepresentation QoS* is set to * Extended CDR version
56- 2* at both the DataWriter and the DataReader as FlatData language binding is
57- only supported with this data representation. The tranport settings of the
58- participant are also tuned to ensure reduced latency while sending large data.
52+ for sending large data by enabling some optimizations in the reliability
53+ protocol, the history, and the handling of dynamic memory allocations. In the
54+ FlatData profile, the * Durability QoS* of the DataWriter is set to volatile to
55+ enable managed samples to be reused when they are acknowledged. The
56+ * DataRepresentation QoS* is set to * Extended CDR version 2* on both the
57+ DataWriter and the DataReader since FlatData language binding is only supported
58+ with this data representation. The transport settings of the participant are
59+ also tuned to ensure reduced latency while sending large data.
5960
6061## Building the Example :wrench :
6162
Original file line number Diff line number Diff line change 1919 -->
2020 <qos_library name =" CameraImage_Library" >
2121
22- <!-- Base for profiles that need asynchronous publisher (flat_types
23- and plain_types) -->
2422 <qos_profile name =" FlatData"
2523 base_name =" BuiltinQosLibExp::Generic.StrictReliable.LargeData" is_default_qos =" true" >
2624 <datawriter_qos >
Original file line number Diff line number Diff line change 2424 A QoS profile groups a set of related QoS.
2525 -->
2626 <qos_profile name =" fragment_Profile" base_name =" BuiltinQosLib::Generic.StrictReliable" is_default_qos =" true" >
27- <!-- QoS used to configure the data writer created in the example code -->
28- <datawriter_qos >
29-
30- <!-- QoS for asynchronous publishing -->
31- <publish_mode >
32- <kind >ASYNCHRONOUS_PUBLISH_MODE_QOS</kind >
33- <flow_controller_name >DDS_FIXED_RATE_FLOW_CONTROLLER_NAME</flow_controller_name >
34- </publish_mode >
35- </datawriter_qos >
3627 <domain_participant_qos >
3728 <transport_builtin >
3829 <shmem >
Original file line number Diff line number Diff line change 2424 A QoS profile groups a set of related QoS.
2525 -->
2626 <qos_profile name =" fragment_Profile" base_name =" BuiltinQosLib::Generic.StrictReliable" is_default_qos =" true" >
27- <!-- QoS used to configure the data writer created in the example code -->
28- <datawriter_qos >
29-
30- <!-- QoS for asynchronous publishing -->
31- <publish_mode >
32- <kind >ASYNCHRONOUS_PUBLISH_MODE_QOS</kind >
33- <flow_controller_name >DDS_FIXED_RATE_FLOW_CONTROLLER_NAME</flow_controller_name >
34- </publish_mode >
35- </datawriter_qos >
3627 <domain_participant_qos >
3728 <transport_builtin >
3829 <shmem >
Original file line number Diff line number Diff line change 2424 A QoS profile groups a set of related QoS.
2525 -->
2626 <qos_profile name =" fragment_Profile" base_name =" BuiltinQosLib::Generic.StrictReliable" is_default_qos =" true" >
27- <!-- QoS used to configure the data writer created in the example code -->
28- <datawriter_qos >
29-
30- <!-- QoS for asynchronous publishing -->
31- <publish_mode >
32- <kind >ASYNCHRONOUS_PUBLISH_MODE_QOS</kind >
33- <flow_controller_name >DDS_FIXED_RATE_FLOW_CONTROLLER_NAME</flow_controller_name >
34- </publish_mode >
35- </datawriter_qos >
3627 <domain_participant_qos >
3728 <transport_builtin >
3829 <shmem >
Original file line number Diff line number Diff line change 2424 A QoS profile groups a set of related QoS.
2525 -->
2626 <qos_profile name =" fragment_Profile" base_name =" BuiltinQosLib::Generic.StrictReliable" is_default_qos =" true" >
27- <!-- QoS used to configure the data writer created in the example code -->
28- <datawriter_qos >
29-
30- <!-- QoS for asynchronous publishing -->
31- <publish_mode >
32- <kind >ASYNCHRONOUS_PUBLISH_MODE_QOS</kind >
33- <flow_controller_name >DDS_FIXED_RATE_FLOW_CONTROLLER_NAME</flow_controller_name >
34- </publish_mode >
35- </datawriter_qos >
3627 <domain_participant_qos >
3728 <transport_builtin >
3829 <shmem >
Original file line number Diff line number Diff line change @@ -15,10 +15,9 @@ actual samples based on the scheduling policy specified by the flow controller.
1515
1616Large data is defined as samples larger than the message_size_max of the
1717installed transports. Sending large data requires a sample to be fragmented into
18- smaller messages, and reassembled at the other end. Sending large data RELIABLY
19- requires the use of an asynchronous publisher.
18+ smaller messages, and reassembled at the other end.
2019
21- The default QoS configuration must be modified to use a high priority flow
20+ The default QoS configuration can be modified to use a high priority flow
2221controller and asynchronous publishing. Further optimizations can be made for
2322large data.
2423
@@ -70,8 +69,7 @@ Flow Controller. The stock examples is modified as follows:
7069 HPF_MAX_PAYLOAD_SIZE = 8192 *16 ; // 131MB
7170 ```
7271
73- so that we can easily test the the flow controller with asynchronous large
74- data.
72+ so that we can easily test the the flow controller with large data.
7573
76742 . A HelloWorld example is generated in C++
7775
Original file line number Diff line number Diff line change 2929 <sec >5</sec >
3030 <nanosec >0</nanosec >
3131 </participant_liveliness_assert_period >
32- <!-- Required when IP fragmentation is disabled -->
33- <publication_writer_publish_mode >
34- <kind >ASYNCHRONOUS_PUBLISH_MODE_QOS</kind >
35- </publication_writer_publish_mode >
36- <subscription_writer_publish_mode >
37- <kind >ASYNCHRONOUS_PUBLISH_MODE_QOS</kind >
38- </subscription_writer_publish_mode >
39- <secure_volatile_writer_publish_mode >
40- <kind >ASYNCHRONOUS_PUBLISH_MODE_QOS</kind >
41- </secure_volatile_writer_publish_mode >
42- <service_request_writer_publish_mode >
43- <kind >ASYNCHRONOUS_PUBLISH_MODE_QOS</kind >
44- </service_request_writer_publish_mode >
4532 </discovery_config >
4633 <property >
4734 <value >
You can’t perform that action at this time.
0 commit comments