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 
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.