diff --git a/rclcpp/include/rclcpp/node.hpp b/rclcpp/include/rclcpp/node.hpp index 844629c..aba044d 100644 --- a/rclcpp/include/rclcpp/node.hpp +++ b/rclcpp/include/rclcpp/node.hpp @@ -200,6 +200,7 @@ public: typename rclcpp::client::Client::SharedPtr create_client( const std::string & service_name, + const rmw_qos_profile_t & qos_profile = rmw_qos_profile_services_default, rclcpp::callback_group::CallbackGroup::SharedPtr group = nullptr); /* Create and return a Service. */ @@ -208,6 +209,7 @@ public: create_service( const std::string & service_name, CallbackT && callback, + const rmw_qos_profile_t & qos_profile = rmw_qos_profile_services_default, rclcpp::callback_group::CallbackGroup::SharedPtr group = nullptr); RCLCPP_PUBLIC diff --git a/rclcpp/include/rclcpp/node_impl.hpp b/rclcpp/include/rclcpp/node_impl.hpp index b59246a..091189b 100644 --- a/rclcpp/include/rclcpp/node_impl.hpp +++ b/rclcpp/include/rclcpp/node_impl.hpp @@ -274,6 +274,7 @@ template typename client::Client::SharedPtr Node::create_client( const std::string & service_name, + const rmw_qos_profile_t & qos_profile, rclcpp::callback_group::CallbackGroup::SharedPtr group) { using rosidl_generator_cpp::get_service_type_support_handle; @@ -281,7 +282,7 @@ Node::create_client( get_service_type_support_handle(); rmw_client_t * client_handle = rmw_create_client( - this->node_handle_.get(), service_type_support_handle, service_name.c_str()); + this->node_handle_.get(), service_type_support_handle, service_name.c_str(), qos_profile); if (!client_handle) { // *INDENT-OFF* (prevent uncrustify from making unecessary indents here) throw std::runtime_error( @@ -318,6 +319,7 @@ typename rclcpp::service::Service::SharedPtr Node::create_service( const std::string & service_name, CallbackT && callback, + const rmw_qos_profile_t & qos_profile, rclcpp::callback_group::CallbackGroup::SharedPtr group) { using rosidl_generator_cpp::get_service_type_support_handle; @@ -328,7 +330,7 @@ Node::create_service( any_service_callback.set(std::forward(callback)); rmw_service_t * service_handle = rmw_create_service( - node_handle_.get(), service_type_support_handle, service_name.c_str()); + node_handle_.get(), service_type_support_handle, service_name.c_str(), qos_profile); if (!service_handle) { // *INDENT-OFF* (prevent uncrustify from making unecessary indents here) throw std::runtime_error(