From 0f6772fc89deec835727432d58af225c4da21ce7 Mon Sep 17 00:00:00 2001 From: Jose Antonio Moral Date: Mon, 31 May 2021 12:21:28 +0200 Subject: [PATCH 1/2] Implement SubscriptionOptions::ignore_local_publications Signed-off-by: Jose Antonio Moral --- rmw_fastrtps_shared_cpp/src/rmw_take.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/rmw_fastrtps_shared_cpp/src/rmw_take.cpp b/rmw_fastrtps_shared_cpp/src/rmw_take.cpp index 2f4227d3f..e8fdf50a8 100644 --- a/rmw_fastrtps_shared_cpp/src/rmw_take.cpp +++ b/rmw_fastrtps_shared_cpp/src/rmw_take.cpp @@ -75,6 +75,16 @@ _take( data.data = ros_message; data.impl = info->type_support_impl_; if (info->subscriber_->takeNextData(&data, &sinfo)) { + + if (subscription->options.ignore_local_publications) { + auto sample_writer_guid = sinfo.sample_identity.writer_guid(); + + if (sample_writer_guid.guidPrefix == info->subscriber_->getGuid().guidPrefix) { + // This is a local publication. Ignore it + return RMW_RET_OK; + } + } + info->listener_->data_taken(info->subscriber_); if (eprosima::fastrtps::rtps::ALIVE == sinfo.sampleKind) { From 90e1adcae7e3adc2832b8f88d9d2b96aa6b61252 Mon Sep 17 00:00:00 2001 From: Jose Antonio Moral Date: Mon, 31 May 2021 13:32:54 +0200 Subject: [PATCH 2/2] Remove redundant blank line Signed-off-by: Jose Antonio Moral --- rmw_fastrtps_shared_cpp/src/rmw_take.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/rmw_fastrtps_shared_cpp/src/rmw_take.cpp b/rmw_fastrtps_shared_cpp/src/rmw_take.cpp index e8fdf50a8..ebee6e014 100644 --- a/rmw_fastrtps_shared_cpp/src/rmw_take.cpp +++ b/rmw_fastrtps_shared_cpp/src/rmw_take.cpp @@ -75,7 +75,6 @@ _take( data.data = ros_message; data.impl = info->type_support_impl_; if (info->subscriber_->takeNextData(&data, &sinfo)) { - if (subscription->options.ignore_local_publications) { auto sample_writer_guid = sinfo.sample_identity.writer_guid();