rmw  master
C API providing a middleware abstraction layer which is used to implement the rest of ROS.
rmw.h
Go to the documentation of this file.
1 // Copyright 2014-2017 Open Source Robotics Foundation, Inc.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
82 #ifndef RMW__RMW_H_
83 #define RMW__RMW_H_
84 
85 #ifdef __cplusplus
86 extern "C"
87 {
88 #endif
89 
90 #include <stdbool.h>
91 #include <stddef.h>
92 #include <stdint.h>
93 
94 #include "rcutils/macros.h"
95 #include "rcutils/types.h"
96 
97 #include "rosidl_runtime_c/message_type_support_struct.h"
98 #include "rosidl_runtime_c/service_type_support_struct.h"
99 #include "rosidl_runtime_c/sequence_bound.h"
100 
101 #include "rmw/init.h"
102 #include "rmw/macros.h"
103 #include "rmw/qos_profiles.h"
105 #include "rmw/message_sequence.h"
106 #include "rmw/types.h"
107 #include "rmw/visibility_control.h"
108 
110 
115 const char *
117 
119 
132 const char *
134 
135 // TODO(wjwwood): refactor this API to return a return code when updated to use an allocator
137 
166 rmw_node_t *
168  rmw_context_t * context,
169  const char * name,
170  const char * namespace_);
171 
173 
194 rmw_ret_t
196 
199  "rmw_node_assert_liveliness implementation was removed."
200  " If manual liveliness assertion is needed, use MANUAL_BY_TOPIC.")
201 rmw_ret_t
202 rmw_node_assert_liveliness(const rmw_node_t * node);
203 
205 
255 const rmw_guard_condition_t *
257 
259 
278 rmw_ret_t
280  const rosidl_message_type_support_t * type_support,
281  const rosidl_runtime_c__Sequence__bound * message_bounds,
282  rmw_publisher_allocation_t * allocation);
283 
285 
296 rmw_ret_t
298  rmw_publisher_allocation_t * allocation);
299 
305 
307 
343  const rmw_node_t * node,
344  const rosidl_message_type_support_t * type_support,
345  const char * topic_name,
346  const rmw_qos_profile_t * qos_profile,
347  const rmw_publisher_options_t * publisher_options);
348 
350 
377 rmw_ret_t
379 
381 
432 rmw_ret_t
434  const rmw_publisher_t * publisher,
435  const rosidl_message_type_support_t * type_support,
436  void ** ros_message);
437 
439 
488 rmw_ret_t
490  const rmw_publisher_t * publisher,
491  void * loaned_message);
492 
494 
553 rmw_ret_t
555  const rmw_publisher_t * publisher,
556  const void * ros_message,
557  rmw_publisher_allocation_t * allocation);
558 
560 
626 rmw_ret_t
628  const rmw_publisher_t * publisher,
629  void * ros_message,
630  rmw_publisher_allocation_t * allocation);
631 
633 
656 rmw_ret_t
658  const rmw_publisher_t * publisher,
659  size_t * subscription_count);
660 
662 
694 rmw_ret_t
696  const rmw_publisher_t * publisher,
697  rmw_qos_profile_t * qos);
698 
700 
759 rmw_ret_t
761  const rmw_publisher_t * publisher,
762  const rmw_serialized_message_t * serialized_message,
763  rmw_publisher_allocation_t * allocation);
764 
766 
779 rmw_ret_t
781  const rosidl_message_type_support_t * type_support,
782  const rosidl_runtime_c__Sequence__bound * message_bounds,
783  size_t * size);
784 
786 
806 rmw_ret_t
808 
810 
842 rmw_ret_t
844  const void * ros_message,
845  const rosidl_message_type_support_t * type_support,
846  rmw_serialized_message_t * serialized_message);
847 
849 
882 rmw_ret_t
884  const rmw_serialized_message_t * serialized_message,
885  const rosidl_message_type_support_t * type_support,
886  void * ros_message);
887 
889 
908 rmw_ret_t
910  const rosidl_message_type_support_t * type_support,
911  const rosidl_runtime_c__Sequence__bound * message_bounds,
912  rmw_subscription_allocation_t * allocation);
913 
915 
926 rmw_ret_t
928  rmw_subscription_allocation_t * allocation);
929 
931 
967  const rmw_node_t * node,
968  const rosidl_message_type_support_t * type_support,
969  const char * topic_name,
970  const rmw_qos_profile_t * qos_policies,
971  const rmw_subscription_options_t * subscription_options);
972 
975 
1002 RMW_PUBLIC
1004 rmw_ret_t
1006 
1008 
1029 RMW_PUBLIC
1031 rmw_ret_t
1033  const rmw_subscription_t * subscription,
1034  size_t * publisher_count);
1035 
1037 
1067 RMW_PUBLIC
1069 rmw_ret_t
1071  const rmw_subscription_t * subscription,
1072  rmw_qos_profile_t * qos);
1073 
1075 
1149 RMW_PUBLIC
1151 rmw_ret_t
1152 rmw_take(
1153  const rmw_subscription_t * subscription,
1154  void * ros_message,
1155  bool * taken,
1156  rmw_subscription_allocation_t * allocation);
1157 
1159 
1235 RMW_PUBLIC
1237 rmw_ret_t
1239  const rmw_subscription_t * subscription,
1240  void * ros_message,
1241  bool * taken,
1242  rmw_message_info_t * message_info,
1243  rmw_subscription_allocation_t * allocation);
1244 
1246 
1348 RMW_PUBLIC
1350 rmw_ret_t
1352  const rmw_subscription_t * subscription,
1353  size_t count,
1354  rmw_message_sequence_t * message_sequence,
1355  rmw_message_info_sequence_t * message_info_sequence,
1356  size_t * taken,
1357  rmw_subscription_allocation_t * allocation);
1358 
1360 
1445 RMW_PUBLIC
1447 rmw_ret_t
1449  const rmw_subscription_t * subscription,
1450  rmw_serialized_message_t * serialized_message,
1451  bool * taken,
1452  rmw_subscription_allocation_t * allocation);
1453 
1455 
1539 RMW_PUBLIC
1541 rmw_ret_t
1543  const rmw_subscription_t * subscription,
1544  rmw_serialized_message_t * serialized_message,
1545  bool * taken,
1546  rmw_message_info_t * message_info,
1547  rmw_subscription_allocation_t * allocation);
1548 
1550 
1626 RMW_PUBLIC
1628 rmw_ret_t
1630  const rmw_subscription_t * subscription,
1631  void ** loaned_message,
1632  bool * taken,
1633  rmw_subscription_allocation_t * allocation);
1634 
1636 
1716 RMW_PUBLIC
1718 rmw_ret_t
1720  const rmw_subscription_t * subscription,
1721  void ** loaned_message,
1722  bool * taken,
1723  rmw_message_info_t * message_info,
1724  rmw_subscription_allocation_t * allocation);
1725 
1727 
1775 RMW_PUBLIC
1777 rmw_ret_t
1779  const rmw_subscription_t * subscription,
1780  void * loaned_message);
1781 
1783 
1819 RMW_PUBLIC
1821 rmw_client_t *
1823  const rmw_node_t * node,
1824  const rosidl_service_type_support_t * type_support,
1825  const char * service_name,
1826  const rmw_qos_profile_t * qos_policies);
1827 
1829 
1859 RMW_PUBLIC
1861 rmw_ret_t
1862 rmw_destroy_client(rmw_node_t * node, rmw_client_t * client);
1863 
1865 
1927 RMW_PUBLIC
1929 rmw_ret_t
1931  const rmw_client_t * client,
1932  const void * ros_request,
1933  int64_t * sequence_id);
1934 
1936 
2012 RMW_PUBLIC
2014 rmw_ret_t
2016  const rmw_client_t * client,
2017  rmw_service_info_t * request_header,
2018  void * ros_response,
2019  bool * taken);
2020 
2022 
2058 RMW_PUBLIC
2060 rmw_service_t *
2062  const rmw_node_t * node,
2063  const rosidl_service_type_support_t * type_support,
2064  const char * service_name,
2065  const rmw_qos_profile_t * qos_profile);
2066 
2068 
2098 RMW_PUBLIC
2100 rmw_ret_t
2101 rmw_destroy_service(rmw_node_t * node, rmw_service_t * service);
2102 
2104 
2177 RMW_PUBLIC
2179 rmw_ret_t
2181  const rmw_service_t * service,
2182  rmw_service_info_t * request_header,
2183  void * ros_request,
2184  bool * taken);
2185 
2187 
2243 RMW_PUBLIC
2245 rmw_ret_t
2247  const rmw_service_t * service,
2248  rmw_request_id_t * request_header,
2249  void * ros_response);
2250 
2251 // TODO(wjwwood): refactor this API to return a return code when updated to use an allocator
2253 
2277 RMW_PUBLIC
2281 
2283 
2289 RMW_PUBLIC
2291 rmw_ret_t
2293 
2294 RMW_PUBLIC
2296 rmw_ret_t
2297 rmw_trigger_guard_condition(const rmw_guard_condition_t * guard_condition);
2298 
2300 
2330 RMW_PUBLIC
2333 rmw_create_wait_set(rmw_context_t * context, size_t max_conditions);
2334 
2336 
2361 RMW_PUBLIC
2363 rmw_ret_t
2365 
2367 
2431 RMW_PUBLIC
2433 rmw_ret_t
2434 rmw_wait(
2435  rmw_subscriptions_t * subscriptions,
2436  rmw_guard_conditions_t * guard_conditions,
2437  rmw_services_t * services,
2438  rmw_clients_t * clients,
2439  rmw_events_t * events,
2440  rmw_wait_set_t * wait_set,
2441  const rmw_time_t * wait_timeout);
2442 
2444 
2499 RMW_PUBLIC
2501 rmw_ret_t
2503  const rmw_node_t * node,
2504  rcutils_string_array_t * node_names,
2505  rcutils_string_array_t * node_namespaces);
2506 
2508 
2566 RMW_PUBLIC
2568 rmw_ret_t
2570  const rmw_node_t * node,
2571  rcutils_string_array_t * node_names,
2572  rcutils_string_array_t * node_namespaces,
2573  rcutils_string_array_t * enclaves);
2574 
2576 
2618 RMW_PUBLIC
2620 rmw_ret_t
2622  const rmw_node_t * node,
2623  const char * topic_name,
2624  size_t * count);
2625 
2627 
2669 RMW_PUBLIC
2671 rmw_ret_t
2673  const rmw_node_t * node,
2674  const char * topic_name,
2675  size_t * count);
2676 
2678 
2708 RMW_PUBLIC
2710 rmw_ret_t
2711 rmw_get_gid_for_publisher(const rmw_publisher_t * publisher, rmw_gid_t * gid);
2712 
2714 
2741 RMW_PUBLIC
2743 rmw_ret_t
2744 rmw_compare_gids_equal(const rmw_gid_t * gid1, const rmw_gid_t * gid2, bool * result);
2745 
2747 
2775 RMW_PUBLIC
2777 rmw_ret_t
2779  const rmw_node_t * node,
2780  const rmw_client_t * client,
2781  bool * is_available);
2782 
2784 
2788 RMW_PUBLIC
2790 rmw_ret_t
2792 
2793 #ifdef __cplusplus
2794 }
2795 #endif
2796 
2797 #endif // RMW__RMW_H_
rmw_serialized_message_t
Serialized message as a string of bytes.
rmw_guard_conditions_t
Array of guard condition handles.
Definition: types.h:327
rmw_destroy_node
rmw_ret_t rmw_destroy_node(rmw_node_t *node)
Finalize a given node handle, reclaim the resources, and deallocate the node handle.
rmw_node_t
Structure which encapsulates an rmw node.
Definition: types.h:44
rmw_destroy_subscription
rmw_ret_t rmw_destroy_subscription(rmw_node_t *node, rmw_subscription_t *subscription)
rmw_destroy_wait_set
rmw_ret_t rmw_destroy_wait_set(rmw_wait_set_t *wait_set)
Destroy a wait set.
rmw_node_get_graph_guard_condition
const rmw_guard_condition_t * rmw_node_get_graph_guard_condition(const rmw_node_t *node)
Return a guard condition which is triggered when the ROS graph changes.
rmw_take_request
rmw_ret_t rmw_take_request(const rmw_service_t *service, rmw_service_info_t *request_header, void *ros_request, bool *taken)
Take an incoming ROS service request.
rmw_get_serialized_message_size
rmw_ret_t rmw_get_serialized_message_size(const rosidl_message_type_support_t *type_support, const rosidl_runtime_c__Sequence__bound *message_bounds, size_t *size)
Compute the size of a serialized message.
RMW_PUBLIC
#define RMW_PUBLIC
Definition: visibility_control.h:48
rmw_take_loaned_message_with_info
rmw_ret_t rmw_take_loaned_message_with_info(const rmw_subscription_t *subscription, void **loaned_message, bool *taken, rmw_message_info_t *message_info, rmw_subscription_allocation_t *allocation)
Take a loaned message and with its additional message information.
rmw_service_t
A handle to an rmw service.
Definition: types.h:209
rmw_borrow_loaned_message
rmw_ret_t rmw_borrow_loaned_message(const rmw_publisher_t *publisher, const rosidl_message_type_support_t *type_support, void **ros_message)
Borrow a loaned ROS message.
RCUTILS_DEPRECATED_WITH_MSG
RCUTILS_DEPRECATED_WITH_MSG("rmw_node_assert_liveliness implementation was removed." " If manual liveliness assertion is needed, use MANUAL_BY_TOPIC.") rmw_ret_t rmw_node_assert_liveliness(const rmw_node_t *node)
rmw_subscription_get_actual_qos
rmw_ret_t rmw_subscription_get_actual_qos(const rmw_subscription_t *subscription, rmw_qos_profile_t *qos)
Retrieve the actual qos settings of the subscription.
rmw_send_response
rmw_ret_t rmw_send_response(const rmw_service_t *service, rmw_request_id_t *request_header, void *ros_response)
Send a ROS service response.
rmw_publish_loaned_message
rmw_ret_t rmw_publish_loaned_message(const rmw_publisher_t *publisher, void *ros_message, rmw_publisher_allocation_t *allocation)
Publish a loaned ROS message.
rmw_create_guard_condition
rmw_guard_condition_t * rmw_create_guard_condition(rmw_context_t *context)
Create a guard condition and return a handle to that guard condition.
rmw_message_info_t
Information describing an rmw message.
Definition: types.h:519
rmw_time_t
A struct representing a duration or relative time in RMW - does not encode an origin.
Definition: time.h:31
types.h
rmw_publisher_count_matched_subscriptions
rmw_ret_t rmw_publisher_count_matched_subscriptions(const rmw_publisher_t *publisher, size_t *subscription_count)
Retrieve the number of matched subscriptions to a publisher.
rmw_log_severity_t
enum RMW_PUBLIC_TYPE rmw_log_severity_t
Type mapping of rcutils log severity types to rmw specific types.
rmw_subscription_allocation_t
Allocation of memory for an rmw subscription.
Definition: types.h:258
rmw_publisher_assert_liveliness
rmw_ret_t rmw_publisher_assert_liveliness(const rmw_publisher_t *publisher)
Manually assert that this Publisher is alive (for RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_TOPIC)
rmw_fini_publisher_allocation
rmw_ret_t rmw_fini_publisher_allocation(rmw_publisher_allocation_t *allocation)
Destroy a publisher allocation object.
rmw_create_publisher
rmw_publisher_t * rmw_create_publisher(const rmw_node_t *node, const rosidl_message_type_support_t *type_support, const char *topic_name, const rmw_qos_profile_t *qos_profile, const rmw_publisher_options_t *publisher_options)
Create a publisher and return a handle to that publisher.
rmw_init_publisher_allocation
rmw_ret_t rmw_init_publisher_allocation(const rosidl_message_type_support_t *type_support, const rosidl_runtime_c__Sequence__bound *message_bounds, rmw_publisher_allocation_t *allocation)
Initialize a publisher allocation to be used with later publications.
rmw_guard_condition_t
Handle for an rmw guard condition.
Definition: types.h:235
rmw_create_subscription
rmw_subscription_t * rmw_create_subscription(const rmw_node_t *node, const rosidl_message_type_support_t *type_support, const char *topic_name, const rmw_qos_profile_t *qos_policies, const rmw_subscription_options_t *subscription_options)
Create a subscription and return a handle to that subscription.
macros.h
rmw_message_info_sequence_t
Structure to hold a sequence of message infos.
Definition: message_sequence.h:43
rmw_count_publishers
rmw_ret_t rmw_count_publishers(const rmw_node_t *node, const char *topic_name, size_t *count)
Count the number of known publishers matching a topic name.
subscription_options.h
rmw_publisher_options_t
Options that can be used to configure the creation of a publisher in rmw.
Definition: types.h:94
rmw_wait_set_t
Container for guard conditions to be waited on.
Definition: types.h:336
rmw_take
rmw_ret_t rmw_take(const rmw_subscription_t *subscription, void *ros_message, bool *taken, rmw_subscription_allocation_t *allocation)
Take an incoming ROS message.
qos_profiles.h
rcutils_string_array_t
rmw_create_client
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.
rmw_take_with_info
rmw_ret_t rmw_take_with_info(const rmw_subscription_t *subscription, void *ros_message, bool *taken, rmw_message_info_t *message_info, rmw_subscription_allocation_t *allocation)
Take an incoming ROS message with its metadata.
rmw_get_implementation_identifier
const char * rmw_get_implementation_identifier(void)
Get the name of the rmw implementation being used.
RMW_WARN_UNUSED
#define RMW_WARN_UNUSED
Indicate that a variable is not used, and prevent compiler from issuing warnings.
Definition: macros.h:24
rmw_service_info_t
Meta-data for a service-related take.
Definition: types.h:359
rmw_create_service
rmw_service_t * rmw_create_service(const rmw_node_t *node, const rosidl_service_type_support_t *type_support, const char *service_name, const rmw_qos_profile_t *qos_profile)
Create a service server that can receive requests from and send replies to a service client.
rmw_context_t
Initialization context structure which is used to store init specific information.
Definition: init.h:37
rmw_serialize
rmw_ret_t rmw_serialize(const void *ros_message, const rosidl_message_type_support_t *type_support, rmw_serialized_message_t *serialized_message)
Serialize a ROS message into a rmw_serialized_message_t.
rmw_take_serialized_message
rmw_ret_t rmw_take_serialized_message(const rmw_subscription_t *subscription, rmw_serialized_message_t *serialized_message, bool *taken, rmw_subscription_allocation_t *allocation)
Take an incoming ROS message as a byte stream.
rmw_client_t
A handle to an rmw service client.
Definition: types.h:222
rmw_subscription_t
Definition: types.h:182
rmw_publisher_allocation_t
Allocation of memory for an rmw publisher.
Definition: types.h:248
rmw_take_response
rmw_ret_t rmw_take_response(const rmw_client_t *client, rmw_service_info_t *request_header, void *ros_response, bool *taken)
Take an incoming ROS service response.
rmw_service_server_is_available
rmw_ret_t rmw_service_server_is_available(const rmw_node_t *node, const rmw_client_t *client, bool *is_available)
Check if a service server is available for the given service client.
rmw_trigger_guard_condition
rmw_ret_t rmw_trigger_guard_condition(const rmw_guard_condition_t *guard_condition)
rmw_publish
rmw_ret_t rmw_publish(const rmw_publisher_t *publisher, const void *ros_message, rmw_publisher_allocation_t *allocation)
Publish a ROS message.
rmw_create_node
rmw_node_t * rmw_create_node(rmw_context_t *context, const char *name, const char *namespace_)
Create a node and return a handle to that node.
init.h
rmw_subscription_count_matched_publishers
rmw_ret_t rmw_subscription_count_matched_publishers(const rmw_subscription_t *subscription, size_t *publisher_count)
Retrieve the number of matched publishers to a subscription.
rmw_return_loaned_message_from_publisher
rmw_ret_t rmw_return_loaned_message_from_publisher(const rmw_publisher_t *publisher, void *loaned_message)
Return a loaned message previously borrowed from a publisher.
rmw_compare_gids_equal
rmw_ret_t rmw_compare_gids_equal(const rmw_gid_t *gid1, const rmw_gid_t *gid2, bool *result)
Check if two unique identifiers (gids) are equal.
rmw_destroy_guard_condition
rmw_ret_t rmw_destroy_guard_condition(rmw_guard_condition_t *guard_condition)
Finalize a given guard condition handle, reclaim the resources, and deallocate the handle.
rmw_get_serialization_format
const char * rmw_get_serialization_format(void)
Get the unique serialization format for this middleware.
rmw_publisher_get_actual_qos
rmw_ret_t rmw_publisher_get_actual_qos(const rmw_publisher_t *publisher, rmw_qos_profile_t *qos)
Retrieve the actual qos settings of the publisher.
rmw_publisher_t
Structure which encapsulates an rmw publisher.
Definition: types.h:119
rmw_request_id_t
An rmw service request identifier.
Definition: types.h:349
rmw_init_subscription_allocation
rmw_ret_t rmw_init_subscription_allocation(const rosidl_message_type_support_t *type_support, const rosidl_runtime_c__Sequence__bound *message_bounds, rmw_subscription_allocation_t *allocation)
Initialize a subscription allocation to be used with later takes.
rmw_ret_t
int32_t rmw_ret_t
Return code for rmw functions.
Definition: ret_types.h:26
rmw_message_sequence_t
Structure to hold a sequence of ROS messages.
Definition: message_sequence.h:30
rmw_return_loaned_message_from_subscription
rmw_ret_t rmw_return_loaned_message_from_subscription(const rmw_subscription_t *subscription, void *loaned_message)
Return a loaned ROS message previously taken from a subscription.
visibility_control.h
rmw_send_request
rmw_ret_t rmw_send_request(const rmw_client_t *client, const void *ros_request, int64_t *sequence_id)
Send a ROS service request.
rmw_services_t
Array of service handles.
Definition: types.h:289
message_sequence.h
rmw_subscription_options_t
Options that can be used to configure the creation of a subscription in rmw.
Definition: types.h:146
rmw_gid_t
ROS graph ID of the topic.
Definition: types.h:509
rmw_count_subscribers
rmw_ret_t rmw_count_subscribers(const rmw_node_t *node, const char *topic_name, size_t *count)
Count the number of known subscribers matching a topic name.
rmw_get_node_names_with_enclaves
rmw_ret_t rmw_get_node_names_with_enclaves(const rmw_node_t *node, rcutils_string_array_t *node_names, rcutils_string_array_t *node_namespaces, rcutils_string_array_t *enclaves)
Return the name, namespae, and enclave name of all nodes in the ROS graph.
rmw_create_wait_set
rmw_wait_set_t * rmw_create_wait_set(rmw_context_t *context, size_t max_conditions)
Create a wait set to store conditions that the middleware can wait on.
rmw_wait
rmw_ret_t rmw_wait(rmw_subscriptions_t *subscriptions, rmw_guard_conditions_t *guard_conditions, rmw_services_t *services, rmw_clients_t *clients, rmw_events_t *events, rmw_wait_set_t *wait_set, const rmw_time_t *wait_timeout)
Waits on sets of different entities and returns when one is ready.
rmw_destroy_publisher
rmw_ret_t rmw_destroy_publisher(rmw_node_t *node, rmw_publisher_t *publisher)
Finalize a given publisher handle, reclaim the resources, and deallocate the publisher handle.
rmw_publish_serialized_message
rmw_ret_t rmw_publish_serialized_message(const rmw_publisher_t *publisher, const rmw_serialized_message_t *serialized_message, rmw_publisher_allocation_t *allocation)
Publish a ROS message as a byte stream.
rmw_get_node_names
rmw_ret_t rmw_get_node_names(const rmw_node_t *node, rcutils_string_array_t *node_names, rcutils_string_array_t *node_namespaces)
Return the name and namespace of all nodes in the ROS graph.
rmw_subscriptions_t
Array of subscriber handles.
Definition: types.h:274
rmw_get_default_publisher_options
rmw_publisher_options_t rmw_get_default_publisher_options(void)
Return a rmw_publisher_options_t initialized with default values.
rmw_qos_profile_t
ROS MiddleWare quality of service profile.
Definition: types.h:462
rmw_destroy_client
rmw_ret_t rmw_destroy_client(rmw_node_t *node, rmw_client_t *client)
Destroy and unregister a service client from its node.
rmw_deserialize
rmw_ret_t rmw_deserialize(const rmw_serialized_message_t *serialized_message, const rosidl_message_type_support_t *type_support, void *ros_message)
Deserialize a ROS message.
rmw_take_loaned_message
rmw_ret_t rmw_take_loaned_message(const rmw_subscription_t *subscription, void **loaned_message, bool *taken, rmw_subscription_allocation_t *allocation)
Take an incoming ROS message, loaned by the middleware.
rmw_events_t
Definition: types.h:312
rmw_destroy_service
rmw_ret_t rmw_destroy_service(rmw_node_t *node, rmw_service_t *service)
Destroy and unregister a service server from its node.
rmw_take_serialized_message_with_info
rmw_ret_t rmw_take_serialized_message_with_info(const rmw_subscription_t *subscription, rmw_serialized_message_t *serialized_message, bool *taken, rmw_message_info_t *message_info, rmw_subscription_allocation_t *allocation)
Take an incoming ROS message as a byte stream with its metadata.
rmw_take_sequence
rmw_ret_t rmw_take_sequence(const rmw_subscription_t *subscription, size_t count, rmw_message_sequence_t *message_sequence, rmw_message_info_sequence_t *message_info_sequence, size_t *taken, rmw_subscription_allocation_t *allocation)
Take multiple incoming ROS messages with their metadata.
types.h
macros.h
rmw_clients_t
Array of client handles.
Definition: types.h:304
rmw_get_gid_for_publisher
rmw_ret_t rmw_get_gid_for_publisher(const rmw_publisher_t *publisher, rmw_gid_t *gid)
Get the unique identifier (gid) of a publisher.
rmw_set_log_severity
rmw_ret_t rmw_set_log_severity(rmw_log_severity_t severity)
Set the current log severity.
rmw_fini_subscription_allocation
rmw_ret_t rmw_fini_subscription_allocation(rmw_subscription_allocation_t *allocation)
Destroy a publisher allocation object.