Skip to content

Commit

Permalink
Allow loaned messages without data-sharing (ros2#568)
Browse files Browse the repository at this point in the history
* Allow publishers to loan messages without datasharing

Signed-off-by: Miguel Company <[email protected]>

* Allow subscriptions to loan messages without datasharing

Signed-off-by: Miguel Company <[email protected]>

* Removed unused using directive.

Signed-off-by: Miguel Company <[email protected]>

Signed-off-by: Miguel Company <[email protected]>
  • Loading branch information
MiguelCompany authored Jan 14, 2023
1 parent b56cd5f commit 19d141d
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 11 deletions.
5 changes: 1 addition & 4 deletions rmw_fastrtps_cpp/src/publisher.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,6 @@

#include "type_support_common.hpp"

using DataSharingKind = eprosima::fastdds::dds::DataSharingKind;

rmw_publisher_t *
rmw_fastrtps_cpp::create_publisher(
const CustomParticipantInfo * participant_info,
Expand Down Expand Up @@ -309,8 +307,7 @@ rmw_fastrtps_cpp::create_publisher(
rmw_publisher_free(rmw_publisher);
});

bool has_data_sharing = DataSharingKind::OFF != writer_qos.data_sharing().kind();
rmw_publisher->can_loan_messages = has_data_sharing && info->type_support_->is_plain();
rmw_publisher->can_loan_messages = info->type_support_->is_plain();
rmw_publisher->implementation_identifier = eprosima_fastrtps_identifier;
rmw_publisher->data = info;

Expand Down
4 changes: 1 addition & 3 deletions rmw_fastrtps_dynamic_cpp/src/publisher.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@
#include "type_support_common.hpp"
#include "type_support_registry.hpp"

using DataSharingKind = eprosima::fastdds::dds::DataSharingKind;
using TypeSupportProxy = rmw_fastrtps_dynamic_cpp::TypeSupportProxy;

rmw_publisher_t *
Expand Down Expand Up @@ -313,8 +312,7 @@ rmw_fastrtps_dynamic_cpp::create_publisher(
rmw_publisher_free(rmw_publisher);
});

bool has_data_sharing = DataSharingKind::OFF != writer_qos.data_sharing().kind();
rmw_publisher->can_loan_messages = has_data_sharing && info->type_support_->is_plain();
rmw_publisher->can_loan_messages = info->type_support_->is_plain();
rmw_publisher->implementation_identifier = eprosima_fastrtps_identifier;
rmw_publisher->data = info;

Expand Down
5 changes: 1 addition & 4 deletions rmw_fastrtps_shared_cpp/src/rmw_take.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,6 @@
namespace rmw_fastrtps_shared_cpp
{

using DataSharingKind = eprosima::fastdds::dds::DataSharingKind;

void
_assign_message_info(
const char * identifier,
Expand Down Expand Up @@ -460,8 +458,7 @@ __init_subscription_for_loans(
{
auto info = static_cast<CustomSubscriberInfo *>(subscription->data);
const auto & qos = info->data_reader_->get_qos();
bool has_data_sharing = DataSharingKind::OFF != qos.data_sharing().kind();
subscription->can_loan_messages = has_data_sharing && info->type_support_->is_plain();
subscription->can_loan_messages = info->type_support_->is_plain();
if (subscription->can_loan_messages) {
const auto & allocation_qos = qos.reader_resource_limits().outstanding_reads_allocation;
info->loan_manager_ = std::make_shared<LoanManager>(allocation_qos);
Expand Down

0 comments on commit 19d141d

Please sign in to comment.