rclcpp  master
C++ ROS Client Library API
Public Member Functions | List of all members
rclcpp::node_interfaces::NodeGraph Class Reference

Implementation the NodeGraph part of the Node API. More...

#include <node_graph.hpp>

Inheritance diagram for rclcpp::node_interfaces::NodeGraph:
Inheritance graph
[legend]
Collaboration diagram for rclcpp::node_interfaces::NodeGraph:
Collaboration graph
[legend]

Public Member Functions

 NodeGraph (rclcpp::node_interfaces::NodeBaseInterface *node_base)
 
virtual ~NodeGraph ()
 
std::map< std::string, std::vector< std::string > > get_topic_names_and_types (bool no_demangle=false) const override
 Return a map of existing topic names to list of topic types. More...
 
std::map< std::string, std::vector< std::string > > get_service_names_and_types () const override
 Return a map of existing service names to list of service types. More...
 
std::map< std::string, std::vector< std::string > > get_service_names_and_types_by_node (const std::string &node_name, const std::string &namespace_) const override
 Return a map of existing service names to list of service types for a specific node. More...
 
std::vector< std::stringget_node_names () const override
 Return a vector of existing node names (string). More...
 
std::vector< std::pair< std::string, std::string > > get_node_names_and_namespaces () const override
 Return a vector of existing node names and namespaces (pair of string). More...
 
size_t count_publishers (const std::string &topic_name) const override
 Return the number of publishers that are advertised on a given topic. More...
 
size_t count_subscribers (const std::string &topic_name) const override
 Return the number of subscribers who have created a subscription for a given topic. More...
 
const rcl_guard_condition_tget_graph_guard_condition () const override
 Return the rcl guard condition which is triggered when the ROS graph changes. More...
 
void notify_graph_change () override
 Notify threads waiting on graph changes. More...
 
void notify_shutdown () override
 Notify any and all blocking node actions that shutdown has occurred. More...
 
rclcpp::Event::SharedPtr get_graph_event () override
 Return a graph event, which will be set anytime a graph change occurs. More...
 
void wait_for_graph_change (rclcpp::Event::SharedPtr event, std::chrono::nanoseconds timeout) override
 Wait for a graph event to occur by waiting on an Event to become set. More...
 
size_t count_graph_users () override
 Return the number of on loan graph events, see get_graph_event(). More...
 
std::vector< rclcpp::TopicEndpointInfoget_publishers_info_by_topic (const std::string &topic_name, bool no_mangle=false) const override
 Return the topic endpoint information about publishers on a given topic. More...
 
std::vector< rclcpp::TopicEndpointInfoget_subscriptions_info_by_topic (const std::string &topic_name, bool no_mangle=false) const override
 Return the topic endpoint information about subscriptions on a given topic. More...
 
- Public Member Functions inherited from rclcpp::node_interfaces::NodeGraphInterface
virtual ~NodeGraphInterface ()=default
 

Detailed Description

Implementation the NodeGraph part of the Node API.

Constructor & Destructor Documentation

◆ NodeGraph()

rclcpp::node_interfaces::NodeGraph::NodeGraph ( rclcpp::node_interfaces::NodeBaseInterface node_base)
explicit

◆ ~NodeGraph()

virtual rclcpp::node_interfaces::NodeGraph::~NodeGraph ( )
virtual

Member Function Documentation

◆ get_topic_names_and_types()

std::map<std::string, std::vector<std::string> > rclcpp::node_interfaces::NodeGraph::get_topic_names_and_types ( bool  no_demangle = false) const
overridevirtual

Return a map of existing topic names to list of topic types.

A topic is considered to exist when at least one publisher or subscriber exists for it, whether they be local or remote to this process.

Parameters
[in]no_demangleif true, topic names and types are not demangled

Implements rclcpp::node_interfaces::NodeGraphInterface.

◆ get_service_names_and_types()

std::map<std::string, std::vector<std::string> > rclcpp::node_interfaces::NodeGraph::get_service_names_and_types ( ) const
overridevirtual

Return a map of existing service names to list of service types.

A service is considered to exist when at least one service server or service client exists for it, whether they be local or remote to this process.

Implements rclcpp::node_interfaces::NodeGraphInterface.

◆ get_service_names_and_types_by_node()

std::map<std::string, std::vector<std::string> > rclcpp::node_interfaces::NodeGraph::get_service_names_and_types_by_node ( const std::string node_name,
const std::string namespace_ 
) const
overridevirtual

Return a map of existing service names to list of service types for a specific node.

This function only considers services - not clients.

Parameters
[in]node_namename of the node
[in]namespace_namespace of the node

Implements rclcpp::node_interfaces::NodeGraphInterface.

◆ get_node_names()

std::vector<std::string> rclcpp::node_interfaces::NodeGraph::get_node_names ( ) const
overridevirtual

Return a vector of existing node names (string).

Implements rclcpp::node_interfaces::NodeGraphInterface.

◆ get_node_names_and_namespaces()

std::vector<std::pair<std::string, std::string> > rclcpp::node_interfaces::NodeGraph::get_node_names_and_namespaces ( ) const
overridevirtual

Return a vector of existing node names and namespaces (pair of string).

Implements rclcpp::node_interfaces::NodeGraphInterface.

◆ count_publishers()

size_t rclcpp::node_interfaces::NodeGraph::count_publishers ( const std::string topic_name) const
overridevirtual

Return the number of publishers that are advertised on a given topic.

Implements rclcpp::node_interfaces::NodeGraphInterface.

◆ count_subscribers()

size_t rclcpp::node_interfaces::NodeGraph::count_subscribers ( const std::string topic_name) const
overridevirtual

Return the number of subscribers who have created a subscription for a given topic.

Implements rclcpp::node_interfaces::NodeGraphInterface.

◆ get_graph_guard_condition()

const rcl_guard_condition_t* rclcpp::node_interfaces::NodeGraph::get_graph_guard_condition ( ) const
overridevirtual

Return the rcl guard condition which is triggered when the ROS graph changes.

Implements rclcpp::node_interfaces::NodeGraphInterface.

◆ notify_graph_change()

void rclcpp::node_interfaces::NodeGraph::notify_graph_change ( )
overridevirtual

Notify threads waiting on graph changes.

Affects threads waiting on the notify guard condition, see: get_notify_guard_condition(), as well as the threads waiting on graph changes using a graph Event, see: wait_for_graph_change().

This is typically only used by the rclcpp::graph_listener::GraphListener.

Exceptions
RCLBaseError(a child of that exception) when an rcl error occurs

Implements rclcpp::node_interfaces::NodeGraphInterface.

◆ notify_shutdown()

void rclcpp::node_interfaces::NodeGraph::notify_shutdown ( )
overridevirtual

Notify any and all blocking node actions that shutdown has occurred.

Implements rclcpp::node_interfaces::NodeGraphInterface.

◆ get_graph_event()

rclcpp::Event::SharedPtr rclcpp::node_interfaces::NodeGraph::get_graph_event ( )
overridevirtual

Return a graph event, which will be set anytime a graph change occurs.

The graph Event object is a loan which must be returned. The Event object is scoped and therefore to return the load just let it go out of scope.

Implements rclcpp::node_interfaces::NodeGraphInterface.

◆ wait_for_graph_change()

void rclcpp::node_interfaces::NodeGraph::wait_for_graph_change ( rclcpp::Event::SharedPtr  event,
std::chrono::nanoseconds  timeout 
)
overridevirtual

Wait for a graph event to occur by waiting on an Event to become set.

The given Event must be acquire through the get_graph_event() method.

Exceptions
InvalidEventErrorif the given event is nullptr
EventNotRegisteredErrorif the given event was not acquired with get_graph_event().

Implements rclcpp::node_interfaces::NodeGraphInterface.

◆ count_graph_users()

size_t rclcpp::node_interfaces::NodeGraph::count_graph_users ( )
overridevirtual

Return the number of on loan graph events, see get_graph_event().

This is typically only used by the rclcpp::graph_listener::GraphListener.

Implements rclcpp::node_interfaces::NodeGraphInterface.

◆ get_publishers_info_by_topic()

std::vector<rclcpp::TopicEndpointInfo> rclcpp::node_interfaces::NodeGraph::get_publishers_info_by_topic ( const std::string topic_name,
bool  no_mangle = false 
) const
overridevirtual

Return the topic endpoint information about publishers on a given topic.

See also
rclcpp::Node::get_publishers_info_by_topic

Implements rclcpp::node_interfaces::NodeGraphInterface.

◆ get_subscriptions_info_by_topic()

std::vector<rclcpp::TopicEndpointInfo> rclcpp::node_interfaces::NodeGraph::get_subscriptions_info_by_topic ( const std::string topic_name,
bool  no_mangle = false 
) const
overridevirtual

Return the topic endpoint information about subscriptions on a given topic.

See also
rclcpp::Node::get_subscriptions_info_by_topic

Implements rclcpp::node_interfaces::NodeGraphInterface.


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