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.