@@ -49,6 +49,8 @@ using eprosima::fastrtps::rtps::IPLocator;
49
49
using eprosima::fastrtps::rtps::UDPTransportDescriptor;
50
50
using eprosima::fastrtps::rtps::UDPv4TransportDescriptor;
51
51
using eprosima::fastrtps::rtps::UDPv6TransportDescriptor;
52
+ using eprosima::fastdds::rtps::BuiltinTransports;
53
+ using eprosima::fastdds::rtps::BuiltinTransportsOptions;
52
54
53
55
template <class TypeSupport >
54
56
class PubSubReader
@@ -163,7 +165,8 @@ class PubSubReader
163
165
do
164
166
{
165
167
reader_.receive_one (sub, ret);
166
- } while (ret);
168
+ }
169
+ while (ret);
167
170
}
168
171
}
169
172
@@ -749,15 +752,15 @@ class PubSubReader
749
752
}
750
753
751
754
PubSubReader& setup_transports (
752
- eprosima::fastdds::rtps:: BuiltinTransports transports)
755
+ BuiltinTransports transports)
753
756
{
754
757
participant_attr_.rtps .setup_transports (transports);
755
758
return *this ;
756
759
}
757
760
758
761
PubSubReader& setup_transports (
759
- eprosima::fastdds::rtps:: BuiltinTransports transports,
760
- const eprosima::fastdds::rtps:: BuiltinTransportsOptions& options)
762
+ BuiltinTransports transports,
763
+ const BuiltinTransportsOptions& options)
761
764
{
762
765
participant_attr_.rtps .setup_transports (transports, options);
763
766
return *this ;
@@ -766,9 +769,10 @@ class PubSubReader
766
769
PubSubReader& setup_large_data_tcp (
767
770
bool v6 = false ,
768
771
const uint16_t & port = 0 ,
769
- const uint32_t & tcp_negotiation_timeout = 0 )
772
+ const BuiltinTransportsOptions& options = BuiltinTransportsOptions() )
770
773
{
771
774
participant_attr_.rtps .useBuiltinTransports = false ;
775
+ participant_attr_.rtps .max_msg_size_no_frag = options.maxMessageSize ;
772
776
773
777
/* Transports configuration */
774
778
// UDP transport for PDP over multicast
@@ -778,6 +782,9 @@ class PubSubReader
778
782
if (v6)
779
783
{
780
784
auto pdp_transport = std::make_shared<eprosima::fastdds::rtps::UDPv6TransportDescriptor>();
785
+ pdp_transport->maxMessageSize = options.maxMessageSize ;
786
+ pdp_transport->sendBufferSize = options.sockets_buffer_size ;
787
+ pdp_transport->receiveBufferSize = options.sockets_buffer_size ;
781
788
participant_attr_.rtps .userTransports .push_back (pdp_transport);
782
789
783
790
auto data_transport = std::make_shared<eprosima::fastdds::rtps::TCPv6TransportDescriptor>();
@@ -786,12 +793,18 @@ class PubSubReader
786
793
data_transport->check_crc = false ;
787
794
data_transport->apply_security = false ;
788
795
data_transport->enable_tcp_nodelay = true ;
789
- data_transport->tcp_negotiation_timeout = tcp_negotiation_timeout;
796
+ data_transport->maxMessageSize = options.maxMessageSize ;
797
+ data_transport->sendBufferSize = options.sockets_buffer_size ;
798
+ data_transport->receiveBufferSize = options.sockets_buffer_size ;
799
+ data_transport->tcp_negotiation_timeout = options.tcp_negotiation_timeout ;
790
800
participant_attr_.rtps .userTransports .push_back (data_transport);
791
801
}
792
802
else
793
803
{
794
804
auto pdp_transport = std::make_shared<eprosima::fastdds::rtps::UDPv4TransportDescriptor>();
805
+ pdp_transport->maxMessageSize = options.maxMessageSize ;
806
+ pdp_transport->sendBufferSize = options.sockets_buffer_size ;
807
+ pdp_transport->receiveBufferSize = options.sockets_buffer_size ;
795
808
participant_attr_.rtps .userTransports .push_back (pdp_transport);
796
809
797
810
auto data_transport = std::make_shared<eprosima::fastdds::rtps::TCPv4TransportDescriptor>();
@@ -800,7 +813,10 @@ class PubSubReader
800
813
data_transport->check_crc = false ;
801
814
data_transport->apply_security = false ;
802
815
data_transport->enable_tcp_nodelay = true ;
803
- data_transport->tcp_negotiation_timeout = tcp_negotiation_timeout;
816
+ data_transport->maxMessageSize = options.maxMessageSize ;
817
+ data_transport->sendBufferSize = options.sockets_buffer_size ;
818
+ data_transport->receiveBufferSize = options.sockets_buffer_size ;
819
+ data_transport->tcp_negotiation_timeout = options.tcp_negotiation_timeout ;
804
820
participant_attr_.rtps .userTransports .push_back (data_transport);
805
821
}
806
822
0 commit comments