|
rmw
master
C API providing a middleware abstraction layer which is used to implement the rest of ROS.
|
#include "rmw/macros.h"#include "rmw/names_and_types.h"#include "rmw/types.h"#include "rmw/visibility_control.h"
Go to the source code of this file.
Functions | |
| rmw_ret_t | rmw_get_subscriber_names_and_types_by_node (const rmw_node_t *node, rcutils_allocator_t *allocator, const char *node_name, const char *node_namespace, bool no_demangle, rmw_names_and_types_t *topic_names_and_types) |
| Return all topic names and types for which a given remote node has subscriptions. More... | |
| rmw_ret_t | rmw_get_publisher_names_and_types_by_node (const rmw_node_t *node, rcutils_allocator_t *allocator, const char *node_name, const char *node_namespace, bool no_demangle, rmw_names_and_types_t *topic_names_and_types) |
| Return all topic names and types for which a given remote node has publishers. More... | |
| rmw_ret_t | rmw_get_service_names_and_types_by_node (const rmw_node_t *node, rcutils_allocator_t *allocator, const char *node_name, const char *node_namespace, rmw_names_and_types_t *service_names_and_types) |
| Return all service names and types for which a given remote node has servers. More... | |
| rmw_ret_t | rmw_get_client_names_and_types_by_node (const rmw_node_t *node, rcutils_allocator_t *allocator, const char *node_name, const char *node_namespace, rmw_names_and_types_t *service_names_and_types) |
| Return all service names and types for which a given remote node has clients. More... | |
| rmw_ret_t rmw_get_subscriber_names_and_types_by_node | ( | const rmw_node_t * | node, |
| rcutils_allocator_t * | allocator, | ||
| const char * | node_name, | ||
| const char * | node_namespace, | ||
| bool | no_demangle, | ||
| rmw_names_and_types_t * | topic_names_and_types | ||
| ) |
Return all topic names and types for which a given remote node has subscriptions.
This function returns an array of topic names and types for which a given remote node has subscriptions, as discovered so far by the given local node.
| Attribute | Adherence |
|---|---|
| Allocates Memory | Yes |
| Thread-Safe | Yes |
| Uses Atomics | Maybe [1] |
| Lock-Free | Maybe [1] |
[1] rmw implementation defined, check the implementation documentation
topic_names_and_types while rmw_get_subscriber_names_and_types_by_node() uses it.node_name and node_namespace reads are safe, but concurrent reads and writes are not.allocator may not be. Check your allocator documentation for further reference.node must be a valid node handle, as returned by rmw_create_node(). topic_names_and_types must be a zero-initialized array of names and types, as returned by rmw_get_zero_initialized_names_and_types().| [in] | node | Local node to query the ROS graph. |
| [in] | allocator | Allocator to be used when populating the topic_names_and_types array. |
| [in] | node_name | Name of the remote node to get information for. |
| [in] | node_namespace | Namespace of the remote node to get information for. |
| [in] | no_demangle | Whether to demangle all topic names following ROS conventions or not. |
| [out] | topic_names_and_types | Array of topic names and types the remote node has created a subscription for, populated on success but left unchanged on failure. If populated, it is up to the caller to finalize this array later on using rmw_names_and_types_fini(). |
RMW_RET_OK if the query was successful, or RMW_RET_INVALID_ARGUMENT if node is NULL, or RMW_RET_INVALID_ARGUMENT if allocator is not valid, by rcutils_allocator_is_valid() definition, or RMW_RET_INVALID_ARGUMENT if node_name is not valid, by rmw_validate_node_name() definition, or RMW_RET_INVALID_ARGUMENT if node_namespace is not valid, by rmw_validate_namespace() definition, or RMW_RET_INVALID_ARGUMENT if topic_names_and_types is NULL, or RMW_RET_INVALID_ARGUMENT if topic_names_and_types is not a zero-initialized array, or RMW_RET_INCORRECT_RMW_IMPLEMENTATION if the node implementation identifier does not match this implementation, or RMW_RET_NODE_NAME_NON_EXISTENT if the node name wasn't found, or RMW_RET_BAD_ALLOC if memory allocation fails, or RMW_RET_ERROR if an unspecified error occurs. | rmw_ret_t rmw_get_publisher_names_and_types_by_node | ( | const rmw_node_t * | node, |
| rcutils_allocator_t * | allocator, | ||
| const char * | node_name, | ||
| const char * | node_namespace, | ||
| bool | no_demangle, | ||
| rmw_names_and_types_t * | topic_names_and_types | ||
| ) |
Return all topic names and types for which a given remote node has publishers.
This function returns an array of topic names and types for which a given remote node has created publishers, as discovered so far by the given local node.
| Attribute | Adherence |
|---|---|
| Allocates Memory | Yes |
| Thread-Safe | Yes |
| Uses Atomics | Maybe [1] |
| Lock-Free | Maybe [1] |
[1] rmw implementation defined, check the implementation documentation
topic_names_and_types while rmw_get_publisher_names_and_types_by_node() uses it.node_name and node_namespace reads are safe, but concurrent reads and writes are not.allocator may not be. Check your allocator documentation for further reference.node must be a valid node handle, as returned by rmw_create_node(). topic_names_and_types must be a zero-initialized array of names and types, as returned by rmw_get_zero_initialized_names_and_types().| [in] | Local | node to query the ROS graph. |
| [in] | allocator | Allocator to be used when populating the topic_names_and_types array. |
| [in] | node_name | Name of the remote node to get information for. |
| [in] | node_namespace | Namespace of the remote node to get information for. |
| [in] | no_demangle | Whether to demangle all topic names following ROS conventions or not. |
| [out] | topic_names_and_types | Array of topic names and types the remote node has created a publisher for, populated on success but left unchanged on failure. If populated, it is up to the caller to finalize this array later on using rmw_names_and_types_fini(). |
RMW_RET_OK if the query was successful, or RMW_RET_INVALID_ARGUMENT if node is NULL, or RMW_RET_INVALID_ARGUMENT if allocator is not valid, by rcutils_allocator_is_valid() definition, or RMW_RET_INVALID_ARGUMENT if node_name is not valid, by rmw_validate_node_name() definition, or RMW_RET_INVALID_ARGUMENT if node_namespace is not valid, by rmw_validate_namespace() definition, or RMW_RET_INVALID_ARGUMENT if topic_names_and_types is NULL, or RMW_RET_INVALID_ARGUMENT if topic_names_and_types is not a zero-initialized array, or RMW_RET_INCORRECT_RMW_IMPLEMENTATION if the node implementation identifier does not match this implementation, or RMW_RET_NODE_NAME_NON_EXISTENT if the node name wasn't found, or RMW_RET_BAD_ALLOC if memory allocation fails, or RMW_RET_ERROR if an unspecified error occurs. | rmw_ret_t rmw_get_service_names_and_types_by_node | ( | const rmw_node_t * | node, |
| rcutils_allocator_t * | allocator, | ||
| const char * | node_name, | ||
| const char * | node_namespace, | ||
| rmw_names_and_types_t * | service_names_and_types | ||
| ) |
Return all service names and types for which a given remote node has servers.
This function returns an array of service names and types for which a given remote node has servers, as discovered so far by the given local node.
| Attribute | Adherence |
|---|---|
| Allocates Memory | Yes |
| Thread-Safe | Yes |
| Uses Atomics | Maybe [1] |
| Lock-Free | Maybe [1] |
[1] rmw implementation defined, check the implementation documentation
service_names_and_types while rmw_get_service_names_and_types_by_node() uses it.node_name and node_namespace reads are safe, but concurrent reads and writes are not.allocator may not be. Check your allocator documentation for further reference.| [in] | node | Local node to query the ROS graph. |
| [in] | node_name | Name of the remote node to get information for. |
| [in] | node_namespace | Namespace of the remote node to get information for. |
| [in] | no_demangle | Whether to demangle all topic names following ROS conventions or not. |
| [out] | service_names_and_types | Array of service names and types the remote node has created a service server for, populated on success but left unchanged on failure. If populated, it is up to the caller to finalize this array later on using rmw_names_and_types_fini(). |
RMW_RET_OK if the query was successful, or RMW_RET_INVALID_ARGUMENT if node is NULL, or RMW_RET_INVALID_ARGUMENT if allocator is not valid, by rcutils_allocator_is_valid() definition, or RMW_RET_INVALID_ARGUMENT if node_name is not valid, by rmw_validate_node_name() definition, or RMW_RET_INVALID_ARGUMENT if node_namespace is not valid, by rmw_validate_namespace() definition, or RMW_RET_INVALID_ARGUMENT if service_names_and_types is NULL, or RMW_RET_INVALID_ARGUMENT if service_names_and_types is not a zero-initialized array, or RMW_RET_INCORRECT_RMW_IMPLEMENTATION if the node implementation identifier does not match this implementation, or RMW_RET_NODE_NAME_NON_EXISTENT if the node name wasn't found, or RMW_RET_BAD_ALLOC if memory allocation fails, or RMW_RET_ERROR if an unspecified error occurs. | rmw_ret_t rmw_get_client_names_and_types_by_node | ( | const rmw_node_t * | node, |
| rcutils_allocator_t * | allocator, | ||
| const char * | node_name, | ||
| const char * | node_namespace, | ||
| rmw_names_and_types_t * | service_names_and_types | ||
| ) |
Return all service names and types for which a given remote node has clients.
This function returns an array of service names and types for which a given remote node has clients, as discovered so far by the given local node.
| Attribute | Adherence |
|---|---|
| Allocates Memory | Yes |
| Thread-Safe | Yes |
| Uses Atomics | Maybe [1] |
| Lock-Free | Maybe [1] |
[1] rmw implementation defined, check the implementation documentation
service_names_and_types while rmw_get_client_names_and_types_by_node() uses it.node_name and node_namespace reads are safe, but concurrent reads and writes are not.allocator may not be. Check your allocator documentation for further reference.| [in] | node | Local node to query the ROS graph. |
| [in] | node_name | Name of the remote node to get information for. |
| [in] | node_namespace | Namespace of the remote node to get information for. |
| [in] | no_demangle | Whether to demangle all topic names following ROS conventions or not. |
| [out] | service_names_and_types | Array of service names and types the remote node has created a service client for, populated on success but left unchanged on failure. If populated, it is up to the caller to finalize this array later on using rmw_names_and_types_fini(). |
RMW_RET_OK if the query was successful, or RMW_RET_INVALID_ARGUMENT if node is NULL, or RMW_RET_INVALID_ARGUMENT if allocator is not valid, by rcutils_allocator_is_valid() definition, or RMW_RET_INVALID_ARGUMENT if node_name is not valid, by rmw_validate_node_name() definition, or RMW_RET_INVALID_ARGUMENT if node_namespace is not valid, by rmw_validate_namespace() definition, or RMW_RET_INVALID_ARGUMENT if service_names_and_types is NULL, or RMW_RET_INVALID_ARGUMENT if service_names_and_types is not a zero-initialized array, or RMW_RET_INCORRECT_RMW_IMPLEMENTATION if the node implementation identifier does not match this implementation, or RMW_RET_NODE_NAME_NON_EXISTENT if the node name wasn't found, or RMW_RET_BAD_ALLOC if memory allocation fails, or RMW_RET_ERROR if an unspecified error occurs.
1.8.17