diff --git a/rmw_fastrtps_cpp/src/rmw_publish.cpp b/rmw_fastrtps_cpp/src/rmw_publish.cpp index 26e8cbc9e..006197397 100644 --- a/rmw_fastrtps_cpp/src/rmw_publish.cpp +++ b/rmw_fastrtps_cpp/src/rmw_publish.cpp @@ -26,17 +26,22 @@ extern "C" { rmw_ret_t -rmw_publish(const rmw_publisher_t * publisher, const void * ros_message) +rmw_publish( + const rmw_publisher_t * publisher, + const void * ros_message, + rmw_publisher_allocation_t * allocation) { return rmw_fastrtps_shared_cpp::__rmw_publish( - eprosima_fastrtps_identifier, publisher, ros_message); + eprosima_fastrtps_identifier, publisher, ros_message, allocation); } rmw_ret_t rmw_publish_serialized_message( - const rmw_publisher_t * publisher, const rmw_serialized_message_t * serialized_message) + const rmw_publisher_t * publisher, + const rmw_serialized_message_t * serialized_message, + rmw_publisher_allocation_t * allocation) { return rmw_fastrtps_shared_cpp::__rmw_publish_serialized_message( - eprosima_fastrtps_identifier, publisher, serialized_message); + eprosima_fastrtps_identifier, publisher, serialized_message, allocation); } } // extern "C" diff --git a/rmw_fastrtps_cpp/src/rmw_publisher.cpp b/rmw_fastrtps_cpp/src/rmw_publisher.cpp index 5c68307d8..873301f01 100644 --- a/rmw_fastrtps_cpp/src/rmw_publisher.cpp +++ b/rmw_fastrtps_cpp/src/rmw_publisher.cpp @@ -34,6 +34,29 @@ using TopicDataType = eprosima::fastrtps::TopicDataType; extern "C" { +rmw_ret_t +rmw_init_publisher_allocation( + const rosidl_message_type_support_t * type_support, + const rosidl_message_bounds_t * message_bounds, + rmw_publisher_allocation_t * allocation) +{ + // Unused in current implementation. + (void) type_support; + (void) message_bounds; + (void) allocation; + RMW_SET_ERROR_MSG("unimplemented"); + return RMW_RET_ERROR; +} + +rmw_ret_t +rmw_fini_publisher_allocation(rmw_publisher_allocation_t * allocation) +{ + // Unused in current implementation. + (void) allocation; + RMW_SET_ERROR_MSG("unimplemented"); + return RMW_RET_ERROR; +} + rmw_publisher_t * rmw_create_publisher( const rmw_node_t * node, diff --git a/rmw_fastrtps_cpp/src/rmw_serialize.cpp b/rmw_fastrtps_cpp/src/rmw_serialize.cpp index 4dc5645ac..dd954efcc 100644 --- a/rmw_fastrtps_cpp/src/rmw_serialize.cpp +++ b/rmw_fastrtps_cpp/src/rmw_serialize.cpp @@ -89,4 +89,14 @@ rmw_deserialize( delete tss; return ret == true ? RMW_RET_OK : RMW_RET_ERROR; } + +rmw_ret_t +rmw_get_serialized_message_size( + const rosidl_message_type_support_t * /*type_support*/, + const rosidl_message_bounds_t * /*message_bounds*/, + size_t * /*size*/) +{ + RMW_SET_ERROR_MSG("unimplemented"); + return RMW_RET_ERROR; +} } // extern "C" diff --git a/rmw_fastrtps_cpp/src/rmw_subscription.cpp b/rmw_fastrtps_cpp/src/rmw_subscription.cpp index 713e98f9f..4d92c958f 100644 --- a/rmw_fastrtps_cpp/src/rmw_subscription.cpp +++ b/rmw_fastrtps_cpp/src/rmw_subscription.cpp @@ -38,6 +38,29 @@ using TopicDataType = eprosima::fastrtps::TopicDataType; extern "C" { +rmw_ret_t +rmw_init_subscription_allocation( + const rosidl_message_type_support_t * type_support, + const rosidl_message_bounds_t * message_bounds, + rmw_subscription_allocation_t * allocation) +{ + // Unused in current implementation. + (void) type_support; + (void) message_bounds; + (void) allocation; + RMW_SET_ERROR_MSG("unimplemented"); + return RMW_RET_ERROR; +} + +rmw_ret_t +rmw_fini_subscription_allocation(rmw_subscription_allocation_t * allocation) +{ + // Unused in current implementation. + (void) allocation; + RMW_SET_ERROR_MSG("unimplemented"); + return RMW_RET_ERROR; +} + rmw_subscription_t * rmw_create_subscription( const rmw_node_t * node, diff --git a/rmw_fastrtps_cpp/src/rmw_take.cpp b/rmw_fastrtps_cpp/src/rmw_take.cpp index 849c19825..228df03e8 100644 --- a/rmw_fastrtps_cpp/src/rmw_take.cpp +++ b/rmw_fastrtps_cpp/src/rmw_take.cpp @@ -24,10 +24,14 @@ extern "C" { rmw_ret_t -rmw_take(const rmw_subscription_t * subscription, void * ros_message, bool * taken) +rmw_take( + const rmw_subscription_t * subscription, + void * ros_message, + bool * taken, + rmw_subscription_allocation_t * allocation) { return rmw_fastrtps_shared_cpp::__rmw_take( - eprosima_fastrtps_identifier, subscription, ros_message, taken); + eprosima_fastrtps_identifier, subscription, ros_message, taken, allocation); } rmw_ret_t @@ -35,20 +39,22 @@ rmw_take_with_info( const rmw_subscription_t * subscription, void * ros_message, bool * taken, - rmw_message_info_t * message_info) + rmw_message_info_t * message_info, + rmw_subscription_allocation_t * allocation) { return rmw_fastrtps_shared_cpp::__rmw_take_with_info( - eprosima_fastrtps_identifier, subscription, ros_message, taken, message_info); + eprosima_fastrtps_identifier, subscription, ros_message, taken, message_info, allocation); } rmw_ret_t rmw_take_serialized_message( const rmw_subscription_t * subscription, rmw_serialized_message_t * serialized_message, - bool * taken) + bool * taken, + rmw_subscription_allocation_t * allocation) { return rmw_fastrtps_shared_cpp::__rmw_take_serialized_message( - eprosima_fastrtps_identifier, subscription, serialized_message, taken); + eprosima_fastrtps_identifier, subscription, serialized_message, taken, allocation); } rmw_ret_t @@ -56,9 +62,11 @@ 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_message_info_t * message_info, + rmw_subscription_allocation_t * allocation) { return rmw_fastrtps_shared_cpp::__rmw_take_serialized_message_with_info( - eprosima_fastrtps_identifier, subscription, serialized_message, taken, message_info); + eprosima_fastrtps_identifier, subscription, serialized_message, taken, message_info, + allocation); } } // extern "C" diff --git a/rmw_fastrtps_dynamic_cpp/src/rmw_publish.cpp b/rmw_fastrtps_dynamic_cpp/src/rmw_publish.cpp index 6a5e414b1..a6e9c038d 100644 --- a/rmw_fastrtps_dynamic_cpp/src/rmw_publish.cpp +++ b/rmw_fastrtps_dynamic_cpp/src/rmw_publish.cpp @@ -26,17 +26,22 @@ extern "C" { rmw_ret_t -rmw_publish(const rmw_publisher_t * publisher, const void * ros_message) +rmw_publish( + const rmw_publisher_t * publisher, + const void * ros_message, + rmw_publisher_allocation_t * allocation) { return rmw_fastrtps_shared_cpp::__rmw_publish( - eprosima_fastrtps_identifier, publisher, ros_message); + eprosima_fastrtps_identifier, publisher, ros_message, allocation); } rmw_ret_t rmw_publish_serialized_message( - const rmw_publisher_t * publisher, const rmw_serialized_message_t * serialized_message) + const rmw_publisher_t * publisher, + const rmw_serialized_message_t * serialized_message, + rmw_publisher_allocation_t * allocation) { return rmw_fastrtps_shared_cpp::__rmw_publish_serialized_message( - eprosima_fastrtps_identifier, publisher, serialized_message); + eprosima_fastrtps_identifier, publisher, serialized_message, allocation); } } // extern "C" diff --git a/rmw_fastrtps_dynamic_cpp/src/rmw_publisher.cpp b/rmw_fastrtps_dynamic_cpp/src/rmw_publisher.cpp index 422a66066..5eb9f967a 100644 --- a/rmw_fastrtps_dynamic_cpp/src/rmw_publisher.cpp +++ b/rmw_fastrtps_dynamic_cpp/src/rmw_publisher.cpp @@ -33,6 +33,29 @@ using TopicDataType = eprosima::fastrtps::TopicDataType; extern "C" { +rmw_ret_t +rmw_init_publisher_allocation( + const rosidl_message_type_support_t * type_support, + const rosidl_message_bounds_t * message_bounds, + rmw_publisher_allocation_t * allocation) +{ + // Unused in current implementation. + (void) type_support; + (void) message_bounds; + (void) allocation; + RMW_SET_ERROR_MSG("unimplemented"); + return RMW_RET_ERROR; +} + +rmw_ret_t +rmw_fini_publisher_allocation(rmw_publisher_allocation_t * allocation) +{ + // Unused in current implementation. + (void) allocation; + RMW_SET_ERROR_MSG("unimplemented"); + return RMW_RET_ERROR; +} + rmw_publisher_t * rmw_create_publisher( const rmw_node_t * node, diff --git a/rmw_fastrtps_dynamic_cpp/src/rmw_serialize.cpp b/rmw_fastrtps_dynamic_cpp/src/rmw_serialize.cpp index 64efe0910..5e67c73a9 100644 --- a/rmw_fastrtps_dynamic_cpp/src/rmw_serialize.cpp +++ b/rmw_fastrtps_dynamic_cpp/src/rmw_serialize.cpp @@ -88,4 +88,14 @@ rmw_deserialize( delete tss; return ret == true ? RMW_RET_OK : RMW_RET_ERROR; } + +rmw_ret_t +rmw_get_serialized_message_size( + const rosidl_message_type_support_t * /*type_support*/, + const rosidl_message_bounds_t * /*message_bounds*/, + size_t * /*size*/) +{ + RMW_SET_ERROR_MSG("unimplemented"); + return RMW_RET_ERROR; +} } // extern "C" diff --git a/rmw_fastrtps_dynamic_cpp/src/rmw_subscription.cpp b/rmw_fastrtps_dynamic_cpp/src/rmw_subscription.cpp index e0aa1864b..08e3c3e90 100644 --- a/rmw_fastrtps_dynamic_cpp/src/rmw_subscription.cpp +++ b/rmw_fastrtps_dynamic_cpp/src/rmw_subscription.cpp @@ -38,6 +38,29 @@ using TopicDataType = eprosima::fastrtps::TopicDataType; extern "C" { +rmw_ret_t +rmw_init_subscription_allocation( + const rosidl_message_type_support_t * type_support, + const rosidl_message_bounds_t * message_bounds, + rmw_subscription_allocation_t * allocation) +{ + // Unused in current implementation. + (void) type_support; + (void) message_bounds; + (void) allocation; + RMW_SET_ERROR_MSG("unimplemented"); + return RMW_RET_ERROR; +} + +rmw_ret_t +rmw_fini_subscription_allocation(rmw_subscription_allocation_t * allocation) +{ + // Unused in current implementation. + (void) allocation; + RMW_SET_ERROR_MSG("unimplemented"); + return RMW_RET_ERROR; +} + rmw_subscription_t * rmw_create_subscription( const rmw_node_t * node, diff --git a/rmw_fastrtps_dynamic_cpp/src/rmw_take.cpp b/rmw_fastrtps_dynamic_cpp/src/rmw_take.cpp index ce9192fa4..9c2ea1533 100644 --- a/rmw_fastrtps_dynamic_cpp/src/rmw_take.cpp +++ b/rmw_fastrtps_dynamic_cpp/src/rmw_take.cpp @@ -24,10 +24,14 @@ extern "C" { rmw_ret_t -rmw_take(const rmw_subscription_t * subscription, void * ros_message, bool * taken) +rmw_take( + const rmw_subscription_t * subscription, + void * ros_message, + bool * taken, + rmw_subscription_allocation_t * allocation) { return rmw_fastrtps_shared_cpp::__rmw_take( - eprosima_fastrtps_identifier, subscription, ros_message, taken); + eprosima_fastrtps_identifier, subscription, ros_message, taken, allocation); } rmw_ret_t @@ -35,20 +39,22 @@ rmw_take_with_info( const rmw_subscription_t * subscription, void * ros_message, bool * taken, - rmw_message_info_t * message_info) + rmw_message_info_t * message_info, + rmw_subscription_allocation_t * allocation) { return rmw_fastrtps_shared_cpp::__rmw_take_with_info( - eprosima_fastrtps_identifier, subscription, ros_message, taken, message_info); + eprosima_fastrtps_identifier, subscription, ros_message, taken, message_info, allocation); } rmw_ret_t rmw_take_serialized_message( const rmw_subscription_t * subscription, rmw_serialized_message_t * serialized_message, - bool * taken) + bool * taken, + rmw_subscription_allocation_t * allocation) { return rmw_fastrtps_shared_cpp::__rmw_take_serialized_message( - eprosima_fastrtps_identifier, subscription, serialized_message, taken); + eprosima_fastrtps_identifier, subscription, serialized_message, taken, allocation); } rmw_ret_t @@ -56,9 +62,11 @@ 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_message_info_t * message_info, + rmw_subscription_allocation_t * allocation) { return rmw_fastrtps_shared_cpp::__rmw_take_serialized_message_with_info( - eprosima_fastrtps_identifier, subscription, serialized_message, taken, message_info); + eprosima_fastrtps_identifier, subscription, serialized_message, taken, message_info, + allocation); } } // extern "C" diff --git a/rmw_fastrtps_shared_cpp/include/rmw_fastrtps_shared_cpp/rmw_common.hpp b/rmw_fastrtps_shared_cpp/include/rmw_fastrtps_shared_cpp/rmw_common.hpp index 5824c95c5..ee38c769b 100644 --- a/rmw_fastrtps_shared_cpp/include/rmw_fastrtps_shared_cpp/rmw_common.hpp +++ b/rmw_fastrtps_shared_cpp/include/rmw_fastrtps_shared_cpp/rmw_common.hpp @@ -113,14 +113,16 @@ rmw_ret_t __rmw_publish( const char * identifier, const rmw_publisher_t * publisher, - const void * ros_message); + const void * ros_message, + rmw_publisher_allocation_t * allocation); RMW_FASTRTPS_SHARED_CPP_PUBLIC rmw_ret_t __rmw_publish_serialized_message( const char * identifier, const rmw_publisher_t * publisher, - const rmw_serialized_message_t * serialized_message); + const rmw_serialized_message_t * serialized_message, + rmw_publisher_allocation_t * allocation); RMW_FASTRTPS_SHARED_CPP_PUBLIC rmw_ret_t @@ -249,7 +251,8 @@ __rmw_take( const char * identifier, const rmw_subscription_t * subscription, void * ros_message, - bool * taken); + bool * taken, + rmw_subscription_allocation_t * allocation); RMW_FASTRTPS_SHARED_CPP_PUBLIC rmw_ret_t @@ -258,7 +261,8 @@ __rmw_take_with_info( const rmw_subscription_t * subscription, void * ros_message, bool * taken, - rmw_message_info_t * message_info); + rmw_message_info_t * message_info, + rmw_subscription_allocation_t * allocation); RMW_FASTRTPS_SHARED_CPP_PUBLIC rmw_ret_t @@ -266,7 +270,8 @@ __rmw_take_serialized_message( const char * identifier, const rmw_subscription_t * subscription, rmw_serialized_message_t * serialized_message, - bool * taken); + bool * taken, + rmw_subscription_allocation_t * allocation); RMW_FASTRTPS_SHARED_CPP_PUBLIC rmw_ret_t @@ -275,7 +280,8 @@ __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_message_info_t * message_info, + rmw_subscription_allocation_t * allocation); RMW_FASTRTPS_SHARED_CPP_PUBLIC rmw_ret_t diff --git a/rmw_fastrtps_shared_cpp/src/rmw_publish.cpp b/rmw_fastrtps_shared_cpp/src/rmw_publish.cpp index 6d9cc6ea9..443d1f4d9 100644 --- a/rmw_fastrtps_shared_cpp/src/rmw_publish.cpp +++ b/rmw_fastrtps_shared_cpp/src/rmw_publish.cpp @@ -29,8 +29,10 @@ rmw_ret_t __rmw_publish( const char * identifier, const rmw_publisher_t * publisher, - const void * ros_message) + const void * ros_message, + rmw_publisher_allocation_t * allocation) { + (void) allocation; RCUTILS_CHECK_FOR_NULL_WITH_MSG(publisher, "publisher pointer is null", return RMW_RET_ERROR); RCUTILS_CHECK_FOR_NULL_WITH_MSG( ros_message, "ros_message pointer is null", return RMW_RET_ERROR); @@ -58,8 +60,10 @@ rmw_ret_t __rmw_publish_serialized_message( const char * identifier, const rmw_publisher_t * publisher, - const rmw_serialized_message_t * serialized_message) + const rmw_serialized_message_t * serialized_message, + rmw_publisher_allocation_t * allocation) { + (void) allocation; RCUTILS_CHECK_FOR_NULL_WITH_MSG(publisher, "publisher pointer is null", return RMW_RET_ERROR); RCUTILS_CHECK_FOR_NULL_WITH_MSG( serialized_message, "serialized_message pointer is null", return RMW_RET_ERROR); diff --git a/rmw_fastrtps_shared_cpp/src/rmw_take.cpp b/rmw_fastrtps_shared_cpp/src/rmw_take.cpp index 873816cfc..fbdfdbf38 100644 --- a/rmw_fastrtps_shared_cpp/src/rmw_take.cpp +++ b/rmw_fastrtps_shared_cpp/src/rmw_take.cpp @@ -49,8 +49,10 @@ _take( const rmw_subscription_t * subscription, void * ros_message, bool * taken, - rmw_message_info_t * message_info) + rmw_message_info_t * message_info, + rmw_subscription_allocation_t * allocation) { + (void) allocation; *taken = false; if (subscription->implementation_identifier != identifier) { @@ -85,7 +87,8 @@ __rmw_take( const char * identifier, const rmw_subscription_t * subscription, void * ros_message, - bool * taken) + bool * taken, + rmw_subscription_allocation_t * allocation) { RCUTILS_CHECK_FOR_NULL_WITH_MSG( subscription, "subscription pointer is null", return RMW_RET_ERROR); @@ -93,7 +96,7 @@ __rmw_take( ros_message, "ros_message pointer is null", return RMW_RET_ERROR); RCUTILS_CHECK_FOR_NULL_WITH_MSG(taken, "boolean flag for taken is null", return RMW_RET_ERROR); - return _take(identifier, subscription, ros_message, taken, nullptr); + return _take(identifier, subscription, ros_message, taken, nullptr, allocation); } rmw_ret_t @@ -102,7 +105,8 @@ __rmw_take_with_info( const rmw_subscription_t * subscription, void * ros_message, bool * taken, - rmw_message_info_t * message_info) + rmw_message_info_t * message_info, + rmw_subscription_allocation_t * allocation) { RCUTILS_CHECK_FOR_NULL_WITH_MSG( subscription, "subscription pointer is null", return RMW_RET_ERROR); @@ -112,7 +116,7 @@ __rmw_take_with_info( RCUTILS_CHECK_FOR_NULL_WITH_MSG( message_info, "message info pointer is null", return RMW_RET_ERROR); - return _take(identifier, subscription, ros_message, taken, message_info); + return _take(identifier, subscription, ros_message, taken, message_info, allocation); } rmw_ret_t @@ -121,8 +125,10 @@ _take_serialized_message( const rmw_subscription_t * subscription, rmw_serialized_message_t * serialized_message, bool * taken, - rmw_message_info_t * message_info) + rmw_message_info_t * message_info, + rmw_subscription_allocation_t * allocation) { + (void) allocation; *taken = false; if (subscription->implementation_identifier != identifier) { @@ -168,7 +174,8 @@ __rmw_take_serialized_message( const char * identifier, const rmw_subscription_t * subscription, rmw_serialized_message_t * serialized_message, - bool * taken) + bool * taken, + rmw_subscription_allocation_t * allocation) { RCUTILS_CHECK_FOR_NULL_WITH_MSG( subscription, "subscription pointer is null", return RMW_RET_ERROR); @@ -176,7 +183,8 @@ __rmw_take_serialized_message( serialized_message, "ros_message pointer is null", return RMW_RET_ERROR); RCUTILS_CHECK_FOR_NULL_WITH_MSG(taken, "boolean flag for taken is null", return RMW_RET_ERROR); - return _take_serialized_message(identifier, subscription, serialized_message, taken, nullptr); + return _take_serialized_message(identifier, subscription, serialized_message, taken, nullptr, + allocation); } rmw_ret_t @@ -185,7 +193,8 @@ __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_message_info_t * message_info, + rmw_subscription_allocation_t * allocation) { RCUTILS_CHECK_FOR_NULL_WITH_MSG( subscription, "subscription pointer is null", return RMW_RET_ERROR); @@ -196,6 +205,6 @@ __rmw_take_serialized_message_with_info( message_info, "message info pointer is null", return RMW_RET_ERROR); return _take_serialized_message( - identifier, subscription, serialized_message, taken, message_info); + identifier, subscription, serialized_message, taken, message_info, allocation); } } // namespace rmw_fastrtps_shared_cpp