Function rcl_get_publisher_names_and_types_by_node
Defined in File graph.h
Function Documentation
-
rcl_ret_t rcl_get_publisher_names_and_types_by_node(const rcl_node_t *node, rcl_allocator_t *allocator, bool no_demangle, const char *node_name, const char *node_namespace, rcl_names_and_types_t *topic_names_and_types)
Return a list of topic names and types for publishers associated with a node.
The
node
parameter must point to a valid node.The
topic_names_and_types
parameter must be allocated and zero initialized. This function allocates memory for the returned list of names and types and so it is the callers responsibility to passtopic_names_and_types
to rcl_names_and_types_fini() when it is no longer needed. Failing to do so will result in leaked memory.There may be some demangling that occurs when listing the names from the middleware implementation. If the
no_demangle
argument is set totrue
, then this will be avoided and the names will be returned as they appear to the middleware.The returned names are not automatically remapped by this function. Attempting to create publishers or subscribers using names returned by this function may not result in the desired topic name being used depending on the remap rules in use.
See also
rmw_get_topic_names_and_types for more details on no_demangle
Attribute
Adherence
Allocates Memory
Yes
Thread-Safe
No
Uses Atomics
No
Lock-Free
Maybe [1]
- Parameters:
node – [in] the handle to the node being used to query the ROS graph
allocator – [in] allocator to be used when allocating space for strings
no_demangle – [in] if true, list all topics without any demangling
node_name – [in] the node name of the topics to return
node_namespace – [in] the node namespace of the topics to return
topic_names_and_types – [out] list of topic names and their types
- Returns:
RCL_RET_OK if the query was successful, or
- Returns:
RCL_RET_NODE_INVALID if the node is invalid, or
- Returns:
RCL_RET_INVALID_ARGUMENT if any arguments are invalid, or
- Returns:
RCL_RET_NODE_INVALID_NAME if the node name is invalid, or
- Returns:
RCL_RET_NODE_INVALID_NAMESPACE if the node namespace is invalid, or
- Returns:
RCL_RET_NODE_NAME_NON_EXISTENT if the node name wasn’t found, or
- Returns:
RCL_RET_ERROR if an unspecified error occurs.