@@ -143,13 +143,41 @@ Node::create_client(
143143 const rclcpp::QoS & qos,
144144 rclcpp::CallbackGroup::SharedPtr group)
145145{
146- return rclcpp::create_client<ServiceT>(
146+ typename Client<ServiceT>::SharedPtr cli = rclcpp::create_client<ServiceT>(
147147 node_base_,
148148 node_graph_,
149149 node_services_,
150+ node_clock_,
150151 extend_name_with_sub_namespace (service_name, this ->get_sub_namespace ()),
151152 qos,
152- group);
153+ group,
154+ node_options_.enable_service_introspection ());
155+
156+ node_service_introspection_->register_client (cli);
157+ return cli;
158+ }
159+
160+ template <typename ServiceT>
161+ typename Client<ServiceT>::SharedPtr
162+ Node::create_client (
163+ const std::string & service_name,
164+ const rclcpp::QoS & qos,
165+ const rclcpp::QoS & service_event_publisher_qos,
166+ rclcpp::CallbackGroup::SharedPtr group)
167+ {
168+ typename Client<ServiceT>::SharedPtr cli = rclcpp::create_client<ServiceT>(
169+ node_base_,
170+ node_graph_,
171+ node_services_,
172+ node_clock_,
173+ extend_name_with_sub_namespace (service_name, this ->get_sub_namespace ()),
174+ qos.get_rmw_qos_profile (),
175+ service_event_publisher_qos.get_rmw_qos_profile (),
176+ group,
177+ node_options_.enable_service_introspection ());
178+
179+ node_service_introspection_->register_client (cli);
180+ return cli;
153181}
154182
155183template <typename ServiceT>
@@ -159,13 +187,18 @@ Node::create_client(
159187 const rmw_qos_profile_t & qos_profile,
160188 rclcpp::CallbackGroup::SharedPtr group)
161189{
162- return rclcpp::create_client<ServiceT>(
190+ typename Client<ServiceT>::SharedPtr cli = rclcpp::create_client<ServiceT>(
163191 node_base_,
164192 node_graph_,
165193 node_services_,
194+ node_clock_,
166195 extend_name_with_sub_namespace (service_name, this ->get_sub_namespace ()),
167196 qos_profile,
168- group);
197+ group,
198+ node_options_.enable_service_introspection ());
199+
200+ node_service_introspection_->register_client (cli);
201+ return cli;
169202}
170203
171204template <typename ServiceT, typename CallbackT>
@@ -176,13 +209,42 @@ Node::create_service(
176209 const rclcpp::QoS & qos,
177210 rclcpp::CallbackGroup::SharedPtr group)
178211{
179- return rclcpp::create_service<ServiceT, CallbackT>(
212+ typename rclcpp::Service<ServiceT>::SharedPtr serv = rclcpp::create_service<ServiceT, CallbackT>(
180213 node_base_,
181214 node_services_,
215+ node_clock_,
182216 extend_name_with_sub_namespace (service_name, this ->get_sub_namespace ()),
183217 std::forward<CallbackT>(callback),
184218 qos,
185- group);
219+ group,
220+ node_options_.enable_service_introspection ());
221+
222+ node_service_introspection_->register_service (serv);
223+ return serv;
224+ }
225+
226+ template <typename ServiceT, typename CallbackT>
227+ typename rclcpp::Service<ServiceT>::SharedPtr
228+ Node::create_service (
229+ const std::string & service_name,
230+ CallbackT && callback,
231+ const rclcpp::QoS & qos,
232+ const rclcpp::QoS & service_event_publisher_qos,
233+ rclcpp::CallbackGroup::SharedPtr group)
234+ {
235+ typename rclcpp::Service<ServiceT>::SharedPtr serv = rclcpp::create_service<ServiceT, CallbackT>(
236+ node_base_,
237+ node_services_,
238+ node_clock_,
239+ extend_name_with_sub_namespace (service_name, this ->get_sub_namespace ()),
240+ std::forward<CallbackT>(callback),
241+ qos.get_rmw_qos_profile (),
242+ service_event_publisher_qos.get_rmw_qos_profile (),
243+ group,
244+ node_options_.enable_service_introspection ());
245+
246+ node_service_introspection_->register_service (serv);
247+ return serv;
186248}
187249
188250template <typename ServiceT, typename CallbackT>
@@ -193,13 +255,19 @@ Node::create_service(
193255 const rmw_qos_profile_t & qos_profile,
194256 rclcpp::CallbackGroup::SharedPtr group)
195257{
196- return rclcpp::create_service<ServiceT, CallbackT>(
258+ typename rclcpp::Service<ServiceT>::SharedPtr serv = rclcpp::create_service<ServiceT, CallbackT>(
197259 node_base_,
198260 node_services_,
261+ node_clock_,
199262 extend_name_with_sub_namespace (service_name, this ->get_sub_namespace ()),
200263 std::forward<CallbackT>(callback),
201264 qos_profile,
202- group);
265+ group,
266+ node_options_.enable_service_introspection ()
267+ );
268+
269+ node_service_introspection_->register_service (serv);
270+ return serv;
203271}
204272
205273template <typename AllocatorT>
0 commit comments