diff --git a/rclcpp/include/rclcpp/node.hpp b/rclcpp/include/rclcpp/node.hpp index dcc91bd..63ff7e5 100644 --- a/rclcpp/include/rclcpp/node.hpp +++ b/rclcpp/include/rclcpp/node.hpp @@ -101,7 +101,7 @@ public: typename rclcpp::service::Service::SharedPtr create_service( std::string service_name, - std::function &, + std::function &, std::shared_ptr&)> callback, rclcpp::callback_group::CallbackGroup::SharedPtr group=nullptr); diff --git a/rclcpp/include/rclcpp/node_impl.hpp b/rclcpp/include/rclcpp/node_impl.hpp index 002360f..7fb6841 100644 --- a/rclcpp/include/rclcpp/node_impl.hpp +++ b/rclcpp/include/rclcpp/node_impl.hpp @@ -187,7 +187,7 @@ template typename service::Service::SharedPtr Node::create_service( std::string service_name, - std::function &, + std::function &, std::shared_ptr&)> callback, rclcpp::callback_group::CallbackGroup::SharedPtr group) { diff --git a/rclcpp/include/rclcpp/service.hpp b/rclcpp/include/rclcpp/service.hpp index 301dba4..bd5b6ef 100644 --- a/rclcpp/include/rclcpp/service.hpp +++ b/rclcpp/include/rclcpp/service.hpp @@ -70,7 +70,7 @@ class Service : public ServiceBase { public: typedef std::function< - void(const std::shared_ptr &, + void(const std::shared_ptr &, std::shared_ptr&)> CallbackType; RCLCPP_MAKE_SHARED_DEFINITIONS(Service); @@ -83,19 +83,19 @@ public: std::shared_ptr create_request() { - return std::shared_ptr(new typename ServiceT::Request()); + return std::shared_ptr(new typename ServiceT::RequestWithHeader()); } void handle_request(std::shared_ptr &request) { - auto typed_request = std::static_pointer_cast(request); + auto typed_request = std::static_pointer_cast(request); auto response = std::shared_ptr(new typename ServiceT::Response); callback_(typed_request, response); send_response(typed_request, response); } void send_response( - std::shared_ptr &request, + std::shared_ptr &request, std::shared_ptr &response) { ::ros_middleware_interface::send_response(get_service_handle(), request.get(), response.get());