15 #ifndef RCLCPP__NODE_INTERFACES__NODE_GRAPH_HPP_ 16 #define RCLCPP__NODE_INTERFACES__NODE_GRAPH_HPP_ 36 namespace graph_listener
41 namespace node_interfaces
59 std::map<std::string, std::vector<std::string>>
60 get_topic_names_and_types(
bool no_demangle =
false)
const;
64 std::map<std::string, std::vector<std::string>>
65 get_service_names_and_types()
const;
69 std::vector<std::string>
70 get_node_names()
const;
75 count_publishers(
const std::string & topic_name)
const;
80 count_subscribers(
const std::string & topic_name)
const;
85 get_graph_guard_condition()
const;
90 notify_graph_change();
99 rclcpp::event::Event::SharedPtr
105 wait_for_graph_change(
106 rclcpp::event::Event::SharedPtr event,
107 std::chrono::nanoseconds timeout);
121 std::shared_ptr<rclcpp::graph_listener::GraphListener> graph_listener_;
123 std::atomic_bool should_add_to_graph_listener_;
126 mutable std::mutex graph_mutex_;
128 std::condition_variable graph_cv_;
130 std::vector<rclcpp::event::Event::WeakPtr> graph_events_;
133 std::atomic_size_t graph_users_count_;
139 #endif // RCLCPP__NODE_INTERFACES__NODE_GRAPH_HPP_ #define RCLCPP_DISABLE_COPY(...)
Definition: macros.hpp:26
#define RCLCPP_SMART_PTR_ALIASES_ONLY(...)
Definition: macros.hpp:66
Definition: allocator_common.hpp:24
Implementation the NodeGraph part of the Node API.
Definition: node_graph.hpp:45
Pure virtual interface class for the NodeBase part of the Node API.
Definition: node_base_interface.hpp:36
#define RCLCPP_PUBLIC
Definition: visibility_control.hpp:50
Pure virtual interface class for the NodeGraph part of the Node API.
Definition: node_graph_interface.hpp:35