diff --git a/rclcpp/include/rclcpp/client.hpp b/rclcpp/include/rclcpp/client.hpp index f58694e..f9ca72c 100644 --- a/rclcpp/include/rclcpp/client.hpp +++ b/rclcpp/include/rclcpp/client.hpp @@ -43,19 +43,13 @@ public: : client_handle_(client_handle), service_name_(service_name) {} - std::shared_ptr - send_request(std::shared_ptr &req) + ::ros_middleware_interface::ROS2_RETCODE_t send_request( + std::shared_ptr &req, + std::shared_ptr &res) { ::ros_middleware_interface::send_request(client_handle_, req.get()); - std::shared_ptr res = std::make_shared(); - bool received = ::ros_middleware_interface::receive_response(client_handle_, res.get()); - if(!received) - { - // TODO: use custom exception - throw std::runtime_error("Timed out while waiting for response"); - } - return res; + return ::ros_middleware_interface::receive_response(client_handle_, res.get()); } private: