2929
3030#include " rclcpp/function_traits.hpp"
3131#include " rclcpp/macros.hpp"
32+ #include " rclcpp/node_interfaces/node_graph_interface.hpp"
3233#include " rclcpp/type_support_decl.hpp"
3334#include " rclcpp/utilities.hpp"
3435#include " rclcpp/visibility_control.hpp"
3940namespace rclcpp
4041{
4142
42- namespace node
43+ namespace node_interfaces
4344{
44- class Node ;
45- } // namespace node
45+ class NodeBaseInterface ;
46+ } // namespace node_interfaces
4647
4748namespace client
4849{
@@ -54,7 +55,8 @@ class ClientBase
5455
5556 RCLCPP_PUBLIC
5657 ClientBase (
57- std::shared_ptr<rclcpp::node::Node> parent_node,
58+ rclcpp::node_interfaces::NodeBaseInterface * node_base,
59+ rclcpp::node_interfaces::NodeGraphInterface::SharedPtr node_graph,
5860 const std::string & service_name);
5961
6062 RCLCPP_PUBLIC
@@ -98,7 +100,7 @@ class ClientBase
98100 rcl_node_t *
99101 get_rcl_node_handle () const ;
100102
101- std::weak_ptr<rclcpp::node::Node> node_ ;
103+ rclcpp::node_interfaces::NodeGraphInterface::WeakPtr node_graph_ ;
102104 std::shared_ptr<rcl_node_t > node_handle_;
103105
104106 rcl_client_t client_handle_ = rcl_get_zero_initialized_client();
@@ -127,10 +129,11 @@ class Client : public ClientBase
127129 RCLCPP_SMART_PTR_DEFINITIONS (Client)
128130
129131 Client (
130- std::shared_ptr<rclcpp::node::Node> parent_node,
132+ rclcpp::node_interfaces::NodeBaseInterface * node_base,
133+ rclcpp::node_interfaces::NodeGraphInterface::SharedPtr node_graph,
131134 const std::string & service_name,
132135 rcl_client_options_t & client_options)
133- : ClientBase(parent_node , service_name)
136+ : ClientBase(node_base, node_graph , service_name)
134137 {
135138 using rosidl_typesupport_cpp::get_service_type_support_handle;
136139 auto service_type_support_handle =
0 commit comments