File tree 8 files changed +11
-63
lines changed
fragmented_data_statistics
high_priority_first_flow_controller
real_time_wan_transport/c++98
8 files changed +11
-63
lines changed Original file line number Diff line number Diff line change @@ -49,13 +49,14 @@ feature:
49
49
50
50
The FlatData profile used in this example inherits from the builtin
51
51
` 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.
59
60
60
61
## Building the Example :wrench :
61
62
Original file line number Diff line number Diff line change 19
19
-->
20
20
<qos_library name =" CameraImage_Library" >
21
21
22
- <!-- Base for profiles that need asynchronous publisher (flat_types
23
- and plain_types) -->
24
22
<qos_profile name =" FlatData"
25
23
base_name =" BuiltinQosLibExp::Generic.StrictReliable.LargeData" is_default_qos =" true" >
26
24
<datawriter_qos >
Original file line number Diff line number Diff line change 24
24
A QoS profile groups a set of related QoS.
25
25
-->
26
26
<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 >
36
27
<domain_participant_qos >
37
28
<transport_builtin >
38
29
<shmem >
Original file line number Diff line number Diff line change 24
24
A QoS profile groups a set of related QoS.
25
25
-->
26
26
<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 >
36
27
<domain_participant_qos >
37
28
<transport_builtin >
38
29
<shmem >
Original file line number Diff line number Diff line change 24
24
A QoS profile groups a set of related QoS.
25
25
-->
26
26
<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 >
36
27
<domain_participant_qos >
37
28
<transport_builtin >
38
29
<shmem >
Original file line number Diff line number Diff line change 24
24
A QoS profile groups a set of related QoS.
25
25
-->
26
26
<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 >
36
27
<domain_participant_qos >
37
28
<transport_builtin >
38
29
<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.
15
15
16
16
Large data is defined as samples larger than the message_size_max of the
17
17
installed 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.
20
19
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
22
21
controller and asynchronous publishing. Further optimizations can be made for
23
22
large data.
24
23
@@ -70,8 +69,7 @@ Flow Controller. The stock examples is modified as follows:
70
69
HPF_MAX_PAYLOAD_SIZE = 8192 *16 ; // 131MB
71
70
```
72
71
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.
75
73
76
74
2 . A HelloWorld example is generated in C++
77
75
Original file line number Diff line number Diff line change 29
29
<sec >5</sec >
30
30
<nanosec >0</nanosec >
31
31
</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 >
45
32
</discovery_config >
46
33
<property >
47
34
<value >
You can’t perform that action at this time.
0 commit comments