From 9daec001e2456d0517f06d193aa7b50f6b06a0fa Mon Sep 17 00:00:00 2001 From: Esteve Fernandez Date: Fri, 6 Mar 2015 12:11:22 -0800 Subject: [PATCH] Added support for RTI Connext services. Update rmw_take* signatures --- rclcpp/include/rclcpp/executor.hpp | 20 ++++++++++++-------- rclcpp/include/rclcpp/node_impl.hpp | 22 ++++++++-------------- 2 files changed, 20 insertions(+), 22 deletions(-) diff --git a/rclcpp/include/rclcpp/executor.hpp b/rclcpp/include/rclcpp/executor.hpp index 0f2009c..3b229d9 100644 --- a/rclcpp/include/rclcpp/executor.hpp +++ b/rclcpp/include/rclcpp/executor.hpp @@ -151,8 +151,8 @@ protected: rclcpp::subscription::SubscriptionBase::SharedPtr &subscription) { std::shared_ptr message = subscription->create_message(); - auto taken = rmw_take(subscription->subscription_handle_, message.get()); - // TODO(wjwwood): taken is no longer a boolean, check against return types. + bool taken = false; + rmw_take(subscription->subscription_handle_, message.get(), &taken); if (taken) { subscription->handle_message(message); @@ -178,9 +178,11 @@ protected: { std::shared_ptr request = service->create_request(); std::shared_ptr request_header = service->create_request_header(); - bool taken = rmw_take_request(service->service_handle_, - request.get(), - request_header.get()); + bool taken = false; + rmw_take_request(service->service_handle_, + request.get(), + request_header.get(), + &taken); if (taken) { service->handle_request(request, request_header); @@ -199,9 +201,11 @@ protected: { std::shared_ptr response = client->create_response(); std::shared_ptr request_header = client->create_request_header(); - bool taken = rmw_take_response(client->client_handle_, - response.get(), - request_header.get()); + bool taken = false; + taken = rmw_take_response(client->client_handle_, + response.get(), + request_header.get(), + &taken); if (taken) { client->handle_response(response, request_header); diff --git a/rclcpp/include/rclcpp/node_impl.hpp b/rclcpp/include/rclcpp/node_impl.hpp index a3048e8..699fe37 100644 --- a/rclcpp/include/rclcpp/node_impl.hpp +++ b/rclcpp/include/rclcpp/node_impl.hpp @@ -65,10 +65,8 @@ Node::create_publisher(std::string topic_name, size_t queue_size) { using rosidl_generator_cpp::get_type_support_handle; auto type_support_handle = get_type_support_handle(); - auto publisher_handle = rmw_create_publisher(node_handle_, - type_support_handle, - topic_name.c_str(), - queue_size); + rmw_publisher_t * publisher_handle = rmw_create_publisher( + node_handle_, type_support_handle, topic_name.c_str(), queue_size); return publisher::Publisher::make_shared(publisher_handle); } @@ -98,10 +96,8 @@ Node::create_subscription( { using rosidl_generator_cpp::get_type_support_handle; auto type_support_handle = get_type_support_handle(); - auto subscriber_handle = rmw_create_subscription(node_handle_, - type_support_handle, - topic_name.c_str(), - queue_size); + rmw_subscription_t * subscriber_handle = rmw_create_subscription( + node_handle_, type_support_handle, topic_name.c_str(), queue_size); using namespace rclcpp::subscription; @@ -171,9 +167,8 @@ Node::create_client( auto service_type_support_handle = get_service_type_support_handle(); - auto client_handle = rmw_create_client(this->node_handle_, - service_type_support_handle, - service_name.c_str()); + rmw_client_t * client_handle = rmw_create_client( + this->node_handle_, service_type_support_handle, service_name.c_str()); using namespace rclcpp::client; @@ -211,9 +206,8 @@ Node::create_service( auto service_type_support_handle = get_service_type_support_handle(); - auto service_handle = rmw_create_service(this->node_handle_, - service_type_support_handle, - service_name.c_str()); + rmw_service_t * service_handle = rmw_create_service( + this->node_handle_, service_type_support_handle, service_name.c_str()); using namespace rclcpp::service;