From b938bd691a8c84856ea1c32ea3b3d79ec3e08fe8 Mon Sep 17 00:00:00 2001 From: Esteve Fernandez Date: Mon, 20 Apr 2015 13:22:54 -0700 Subject: [PATCH] Pass request header to callbacks --- rclcpp/include/rclcpp/node.hpp | 4 +--- rclcpp/include/rclcpp/node_impl.hpp | 3 +-- rclcpp/include/rclcpp/service.hpp | 7 ++++--- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/rclcpp/include/rclcpp/node.hpp b/rclcpp/include/rclcpp/node.hpp index 3dea295..333ceee 100644 --- a/rclcpp/include/rclcpp/node.hpp +++ b/rclcpp/include/rclcpp/node.hpp @@ -113,9 +113,7 @@ public: typename rclcpp::service::Service::SharedPtr create_service( std::string service_name, - std::function &, - std::shared_ptr &)> callback, + typename rclcpp::service::Service::CallbackType callback, rclcpp::callback_group::CallbackGroup::SharedPtr group = nullptr); private: diff --git a/rclcpp/include/rclcpp/node_impl.hpp b/rclcpp/include/rclcpp/node_impl.hpp index 98d404b..f7a8d91 100644 --- a/rclcpp/include/rclcpp/node_impl.hpp +++ b/rclcpp/include/rclcpp/node_impl.hpp @@ -186,8 +186,7 @@ template typename service::Service::SharedPtr Node::create_service( std::string service_name, - std::function &, - std::shared_ptr &)> callback, + typename rclcpp::service::Service::CallbackType callback, rclcpp::callback_group::CallbackGroup::SharedPtr group) { using rosidl_generator_cpp::get_service_type_support_handle; diff --git a/rclcpp/include/rclcpp/service.hpp b/rclcpp/include/rclcpp/service.hpp index ad1376c..522fb81 100644 --- a/rclcpp/include/rclcpp/service.hpp +++ b/rclcpp/include/rclcpp/service.hpp @@ -86,8 +86,9 @@ class Service : public ServiceBase { public: typedef std::function< - void (const std::shared_ptr &, - std::shared_ptr &)> CallbackType; + void (const std::shared_ptr &, + const std::shared_ptr &, + std::shared_ptr &)> CallbackType; RCLCPP_MAKE_SHARED_DEFINITIONS(Service); Service( @@ -114,7 +115,7 @@ public: auto typed_request = std::static_pointer_cast(request); auto typed_request_header = std::static_pointer_cast(request_header); auto response = std::shared_ptr(new typename ServiceT::Response); - callback_(typed_request, response); + callback_(typed_request_header, typed_request, response); send_response(typed_request_header, response); }