rclcpp  master
C++ ROS Client Library API
Public Member Functions | Protected Member Functions | List of all members
rclcpp::graph_listener::GraphListener Class Reference

Notifies many nodes of graph changes by listening in a thread. More...

#include <graph_listener.hpp>

Inheritance diagram for rclcpp::graph_listener::GraphListener:
std::enable_shared_from_this< GraphListener >

Public Member Functions

 GraphListener ()
 
virtual ~GraphListener ()
 
virtual void start_if_not_started ()
 Start the graph listener's listen thread if it hasn't been started. More...
 
virtual void add_node (rclcpp::node_interfaces::NodeGraphInterface *node_graph)
 Add a node to the graph listener's list of nodes. More...
 
virtual bool has_node (rclcpp::node_interfaces::NodeGraphInterface *node_graph)
 Return true if the given node is in the graph listener's list of nodes. More...
 
virtual void remove_node (rclcpp::node_interfaces::NodeGraphInterface *node_graph)
 Remove a node from the graph listener's list of nodes. More...
 
virtual void shutdown ()
 Stop the listening thread. More...
 
virtual bool is_shutdown ()
 Return true if shutdown() has been called, else false. More...
 
- Public Member Functions inherited from std::enable_shared_from_this< GraphListener >
enable_shared_from_this (T... args)
 
operator= (T... args)
 
shared_from_this (T... args)
 
~enable_shared_from_this (T... args)
 

Protected Member Functions

virtual void run ()
 Main function for the listening thread. More...
 
virtual void run_loop ()
 

Detailed Description

Notifies many nodes of graph changes by listening in a thread.

Constructor & Destructor Documentation

◆ GraphListener()

rclcpp::graph_listener::GraphListener::GraphListener ( )

◆ ~GraphListener()

virtual rclcpp::graph_listener::GraphListener::~GraphListener ( )
virtual

Member Function Documentation

◆ start_if_not_started()

virtual void rclcpp::graph_listener::GraphListener::start_if_not_started ( )
virtual

Start the graph listener's listen thread if it hasn't been started.

This function is thread-safe.

Exceptions
GraphListenerShutdownErrorif the GraphListener is shutdown

◆ add_node()

virtual void rclcpp::graph_listener::GraphListener::add_node ( rclcpp::node_interfaces::NodeGraphInterface node_graph)
virtual

Add a node to the graph listener's list of nodes.

Exceptions
GraphListenerShutdownErrorif the GraphListener is shutdown
NodeAlreadyAddedErrorif the given node is already in the list
std::invalid_argumentif node is nullptr
std::system_erroranything std::mutex::lock() throws

◆ has_node()

virtual bool rclcpp::graph_listener::GraphListener::has_node ( rclcpp::node_interfaces::NodeGraphInterface node_graph)
virtual

Return true if the given node is in the graph listener's list of nodes.

Also return false if given nullptr.

Exceptions
std::system_erroranything std::mutex::lock() throws

◆ remove_node()

virtual void rclcpp::graph_listener::GraphListener::remove_node ( rclcpp::node_interfaces::NodeGraphInterface node_graph)
virtual

Remove a node from the graph listener's list of nodes.

Exceptions
NodeNotFoundErrorif the given node is not in the list
std::invalid_argumentif node is nullptr
std::system_erroranything std::mutex::lock() throws

◆ shutdown()

virtual void rclcpp::graph_listener::GraphListener::shutdown ( )
virtual

Stop the listening thread.

The thread cannot be restarted, and the class is defunct after calling. This function is called by the ~GraphListener() and does nothing if shutdown() was already called. This function exists separately from the ~GraphListener() so that it can be called before and exceptions can be caught.

If start_if_not_started() was never called, this function still succeeds, but start_if_not_started() still cannot be called after this function.

Exceptions
rclcpp::execptions::RCLErrorfrom rcl_guard_condition_fini()
rclcpp::execptions::RCLErrorfrom rcl_wait_set_fini()
std::system_erroranything std::mutex::lock() throws

◆ is_shutdown()

virtual bool rclcpp::graph_listener::GraphListener::is_shutdown ( )
virtual

Return true if shutdown() has been called, else false.

◆ run()

virtual void rclcpp::graph_listener::GraphListener::run ( )
protectedvirtual

Main function for the listening thread.

◆ run_loop()

virtual void rclcpp::graph_listener::GraphListener::run_loop ( )
protectedvirtual

The documentation for this class was generated from the following file: