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