Function rmw_create_client
Defined in File rmw.h
Function Documentation
-
rmw_client_t *rmw_create_client(const rmw_node_t *node, const rosidl_service_type_support_t *type_support, const char *service_name, const rmw_qos_profile_t *qos_policies)
Create a service client that can send requests to and receive replies from a service server.
This function can fail, and therefore return
NULL
, if:node
isNULL
, ornode
does not belong to this implementation i.e. it does not have a matching implementation identifier, ortype_support
isNULL
, orservice_name
isNULL
, orservice_name
is an empty string, or(if ROS namespace conventions apply)
service_name
is invalid by rmw_validate_full_topic_name() definition, orqos_profile
isNULL
, orqos_profile
has invalid or unknown policies, ormemory allocation fails during service client creation, or
an unspecified error occurs.
Attribute
Adherence
Allocates Memory
Yes
Thread-Safe
No
Uses Atomics
Maybe [1]
Lock-Free
Maybe [1]
- Parameters:
node – [in] Node with which to register this service client.
type_support – [in] Type support of the service to be used.
service_name – [in] Name of the service to be used, often a fully qualified service name unless
qos_profile
is configured to avoid ROS namespace conventions i.e. to create a native service client.qos_policies – [in] QoS policies for this service client’s connections.
- Pre:
Given
node
must be a valid node, as returned by rmw_create_node().- Pre:
Given
type_support
must be a validrosidl
service type support, as returned by ROSIDL_GET_SRV_TYPE_SUPPORT().- Returns:
rmw service client handle, or
NULL
if there was an error.