rmw  master
C API providing a middleware abstraction layer which is used to implement the rest of ROS.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
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 
79 #ifndef RMW__RMW_H_
80 #define RMW__RMW_H_
81 
82 #ifdef __cplusplus
83 extern "C"
84 {
85 #endif
86 
87 #include <stdbool.h>
88 #include <stddef.h>
89 #include <stdint.h>
90 
91 #include "rcutils/macros.h"
92 #include "rcutils/types.h"
93 
94 #include "rosidl_runtime_c/message_type_support_struct.h"
95 #include "rosidl_runtime_c/service_type_support_struct.h"
96 #include "rosidl_runtime_c/sequence_bound.h"
97 
98 #include "rmw/init.h"
99 #include "rmw/macros.h"
100 #include "rmw/qos_profiles.h"
102 #include "rmw/message_sequence.h"
103 #include "rmw/types.h"
104 #include "rmw/visibility_control.h"
105 
107 
112 const char *
114 
116 
129 const char *
131 
132 // TODO(wjwwood): refactor this API to return a return code when updated to use an allocator
134 
176 rmw_node_t *
178  rmw_context_t * context,
179  const char * name,
180  const char * namespace_,
181  size_t domain_id,
182  bool localhost_only);
183 
185 
199 rmw_ret_t
201 
202 
205  "rmw_node_assert_liveliness implementation was removed."
206  " If manual liveliness assertion is needed, use MANUAL_BY_TOPIC.")
207 rmw_ret_t
208 rmw_node_assert_liveliness(const rmw_node_t * node);
209 
211 
239 const rmw_guard_condition_t *
241 
243 
261 rmw_ret_t
263  const rosidl_message_type_support_t * type_support,
264  const rosidl_runtime_c__Sequence__bound * message_bounds,
265  rmw_publisher_allocation_t * allocation);
266 
268 
278 rmw_ret_t
280  rmw_publisher_allocation_t * allocation);
281 
287 
289 
301  const rmw_node_t * node,
302  const rosidl_message_type_support_t * type_support,
303  const char * topic_name,
304  const rmw_qos_profile_t * qos_policies,
305  const rmw_publisher_options_t * publisher_options);
306 
309 rmw_ret_t
311 
313 
333 rmw_ret_t
335  const rmw_publisher_t * publisher,
336  const rosidl_message_type_support_t * type_support,
337  void ** ros_message);
338 
340 
354 rmw_ret_t
356  const rmw_publisher_t * publisher,
357  void * loaned_message);
358 
360 
372 rmw_ret_t
374  const rmw_publisher_t * publisher,
375  const void * ros_message,
376  rmw_publisher_allocation_t * allocation);
377 
379 
399 rmw_ret_t
401  const rmw_publisher_t * publisher,
402  void * ros_message,
403  rmw_publisher_allocation_t * allocation);
404 
406 
418 rmw_ret_t
420  const rmw_publisher_t * publisher,
421  size_t * subscription_count);
422 
424 
444 rmw_ret_t
446  const rmw_publisher_t * publisher,
447  rmw_qos_profile_t * qos);
448 
450 
465 rmw_ret_t
467  const rmw_publisher_t * publisher,
468  const rmw_serialized_message_t * serialized_message,
469  rmw_publisher_allocation_t * allocation);
470 
472 
484 rmw_ret_t
486  const rosidl_message_type_support_t * type_support,
487  const rosidl_runtime_c__Sequence__bound * message_bounds,
488  size_t * size);
489 
491 
511 rmw_ret_t
513 
515 
529 rmw_ret_t
531  const void * ros_message,
532  const rosidl_message_type_support_t * type_support,
533  rmw_serialized_message_t * serialized_message);
534 
536 
553 rmw_ret_t
555  const rmw_serialized_message_t * serialized_message,
556  const rosidl_message_type_support_t * type_support,
557  void * ros_message);
558 
560 
578 rmw_ret_t
580  const rosidl_message_type_support_t * type_support,
581  const rosidl_runtime_c__Sequence__bound * message_bounds,
582  rmw_subscription_allocation_t * allocation);
583 
585 
595 rmw_ret_t
597  rmw_subscription_allocation_t * allocation);
598 
600 
612  const rmw_node_t * node,
613  const rosidl_message_type_support_t * type_support,
614  const char * topic_name,
615  const rmw_qos_profile_t * qos_policies,
616  const rmw_subscription_options_t * subscription_options);
617 
620 rmw_ret_t
622 
624 
636 rmw_ret_t
638  const rmw_subscription_t * subscription,
639  size_t * publisher_count);
640 
642 
662 rmw_ret_t
664  const rmw_subscription_t * subscription,
665  rmw_qos_profile_t * qos);
666 
668 
680 rmw_ret_t
681 rmw_take(
682  const rmw_subscription_t * subscription,
683  void * ros_message,
684  bool * taken,
685  rmw_subscription_allocation_t * allocation);
686 
688 
701 rmw_ret_t
703  const rmw_subscription_t * subscription,
704  void * ros_message,
705  bool * taken,
706  rmw_message_info_t * message_info,
707  rmw_subscription_allocation_t * allocation);
708 
710 
738 rmw_ret_t
740  const rmw_subscription_t * subscription,
741  size_t count,
742  rmw_message_sequence_t * message_sequence,
743  rmw_message_info_sequence_t * message_info_sequence,
744  size_t * taken,
745  rmw_subscription_allocation_t * allocation);
746 
748 
766 rmw_ret_t
768  const rmw_subscription_t * subscription,
769  rmw_serialized_message_t * serialized_message,
770  bool * taken,
771  rmw_subscription_allocation_t * allocation);
772 
774 
789 rmw_ret_t
791  const rmw_subscription_t * subscription,
792  rmw_serialized_message_t * serialized_message,
793  bool * taken,
794  rmw_message_info_t * message_info,
795  rmw_subscription_allocation_t * allocation);
796 
798 
814 rmw_ret_t
816  const rmw_subscription_t * subscription,
817  void ** loaned_message,
818  bool * taken,
819  rmw_subscription_allocation_t * allocation);
820 
822 
839 rmw_ret_t
841  const rmw_subscription_t * subscription,
842  void ** loaned_message,
843  bool * taken,
844  rmw_message_info_t * message_info,
845  rmw_subscription_allocation_t * allocation);
846 
848 
860 rmw_ret_t
862  const rmw_subscription_t * subscription,
863  void * loaned_message);
864 
866 
875 rmw_client_t *
877  const rmw_node_t * node,
878  const rosidl_service_type_support_t * type_support,
879  const char * service_name,
880  const rmw_qos_profile_t * qos_policies);
881 
883 
890 rmw_ret_t
891 rmw_destroy_client(rmw_node_t * node, rmw_client_t * client);
892 
894 
902 rmw_ret_t
904  const rmw_client_t * client,
905  const void * ros_request,
906  int64_t * sequence_id);
907 
909 
918 rmw_ret_t
920  const rmw_client_t * client,
921  rmw_service_info_t * request_header,
922  void * ros_response,
923  bool * taken);
924 
926 
937  const rmw_node_t * node,
938  const rosidl_service_type_support_t * type_support,
939  const char * service_name,
940  const rmw_qos_profile_t * qos_policies);
941 
943 
950 rmw_ret_t
951 rmw_destroy_service(rmw_node_t * node, rmw_service_t * service);
952 
954 
963 rmw_ret_t
965  const rmw_service_t * service,
966  rmw_service_info_t * request_header,
967  void * ros_request,
968  bool * taken);
969 
971 
979 rmw_ret_t
981  const rmw_service_t * service,
982  rmw_request_id_t * request_header,
983  void * ros_response);
984 
985 // TODO(wjwwood): refactor this API to return a return code when updated to use an allocator
987 
1011 RMW_PUBLIC
1015 
1017 
1023 RMW_PUBLIC
1025 rmw_ret_t
1027 
1028 RMW_PUBLIC
1030 rmw_ret_t
1031 rmw_trigger_guard_condition(const rmw_guard_condition_t * guard_condition);
1032 
1034 
1051 RMW_PUBLIC
1054 rmw_create_wait_set(rmw_context_t * context, size_t max_conditions);
1055 
1057 
1061 RMW_PUBLIC
1063 rmw_ret_t
1065 
1067 
1100 RMW_PUBLIC
1102 rmw_ret_t
1103 rmw_wait(
1104  rmw_subscriptions_t * subscriptions,
1105  rmw_guard_conditions_t * guard_conditions,
1106  rmw_services_t * services,
1107  rmw_clients_t * clients,
1108  rmw_events_t * events,
1109  rmw_wait_set_t * wait_set,
1110  const rmw_time_t * wait_timeout);
1111 
1113 
1139 RMW_PUBLIC
1141 rmw_ret_t
1143  const rmw_node_t * node,
1144  rcutils_string_array_t * node_names,
1145  rcutils_string_array_t * node_namespaces);
1146 
1148 
1158 RMW_PUBLIC
1160 rmw_ret_t
1162  const rmw_node_t * node,
1163  rcutils_string_array_t * node_names,
1164  rcutils_string_array_t * node_namespaces,
1165  rcutils_string_array_t * enclaves);
1166 
1168 
1174 RMW_PUBLIC
1176 rmw_ret_t
1178  const rmw_node_t * node,
1179  const char * topic_name,
1180  size_t * count);
1181 
1183 
1189 RMW_PUBLIC
1191 rmw_ret_t
1193  const rmw_node_t * node,
1194  const char * topic_name,
1195  size_t * count);
1196 
1198 
1203 RMW_PUBLIC
1205 rmw_ret_t
1206 rmw_get_gid_for_publisher(const rmw_publisher_t * publisher, rmw_gid_t * gid);
1207 
1209 
1215 RMW_PUBLIC
1217 rmw_ret_t
1218 rmw_compare_gids_equal(const rmw_gid_t * gid1, const rmw_gid_t * gid2, bool * result);
1219 
1221 
1247 RMW_PUBLIC
1249 rmw_ret_t
1251  const rmw_node_t * node,
1252  const rmw_client_t * client,
1253  bool * is_available);
1254 
1256 
1260 RMW_PUBLIC
1262 rmw_ret_t
1264 
1265 #ifdef __cplusplus
1266 }
1267 #endif
1268 
1269 #endif // RMW__RMW_H_
rmw_guard_conditions_t
Array of guard condition handles.
Definition: types.h:289
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:42
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 and free memory of this wait_set.
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_policies)
Create an rmw service server that responds to requests.
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)
Attempt to take a request from this service's request buffer.
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:171
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 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 response to a client's request.
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:478
rmw_time_t
Struct representing a time point for rmw.
Definition: types.h:321
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:220
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_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:197
rcutils_uint8_array_t
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 and return an rmw 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 publishers matching a topic name.
subscription_options.h
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_policies, const rmw_publisher_options_t *publisher_options)
Create and return an rmw publisher.
rmw_publisher_options_t
Options that can be used to configure the creation of a publisher in rmw.
Definition: types.h:74
rmw_wait_set_t
Container for guard conditions to be waited on.
Definition: types.h:298
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 message from a subscription.
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 an rmw client to communicate with the specified service.
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 message from a subscription with additional 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:333
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 a message without deserializing it.
rmw_client_t
A handle to an rmw service client.
Definition: types.h:184
rmw_subscription_t
Definition: types.h:144
rmw_publisher_allocation_t
Allocation of memory for an rmw publisher.
Definition: types.h:210
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)
Attempt to get the response from a service request.
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 given ros_message.
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 borrow 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 gid objects are the same.
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:90
rmw_request_id_t
An rmw service request identifier.
Definition: types.h:311
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 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 service request to the rmw server.
rmw_services_t
Array of service handles.
Definition: types.h:251
message_sequence.h
rmw_subscription_options_t
Options that can be used to configure the creation of a subscription in rmw.
Definition: types.h:117
rmw_gid_t
ROS graph ID of the topic.
Definition: types.h:468
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 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 a list of node name and namespaces discovered via a node with its enclave.
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 will block 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 waitable entities and returns when one is ready.
rmw_destroy_publisher
rmw_ret_t rmw_destroy_publisher(rmw_node_t *node, rmw_publisher_t *publisher)
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 an already serialized message.
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 a list of node name and namespaces discovered via a node.
rmw_subscriptions_t
Array of subscriber handles.
Definition: types.h:236
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:436
rmw_destroy_client
rmw_ret_t rmw_destroy_client(rmw_node_t *node, rmw_client_t *client)
Destroy and unregister a service client.
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_create_node
rmw_node_t * rmw_create_node(rmw_context_t *context, const char *name, const char *namespace_, size_t domain_id, bool localhost_only)
Create a node and return a handle to that node.
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 a loaned message.
rmw_events_t
Definition: types.h:274
rmw_destroy_service
rmw_ret_t rmw_destroy_service(rmw_node_t *node, rmw_service_t *service)
Destroy and unregister the service from this 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 a message without deserializing it and with its additional message information.
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 messages from a subscription with additional metadata.
types.h
macros.h
rmw_clients_t
Array of client handles.
Definition: types.h:266
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 of the 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.