From 79a1fdb3e2e9a7c199a3a35fc0f0e6609a7be5d0 Mon Sep 17 00:00:00 2001 From: Emerson Knapp Date: Tue, 14 Feb 2023 23:59:13 -0800 Subject: [PATCH 1/9] WIP type_version_hash just fix compile for API change Signed-off-by: Emerson Knapp --- rmw_connextdds_common/src/common/rmw_graph.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/rmw_connextdds_common/src/common/rmw_graph.cpp b/rmw_connextdds_common/src/common/rmw_graph.cpp index a70ba257..90d3fa4c 100644 --- a/rmw_connextdds_common/src/common/rmw_graph.cpp +++ b/rmw_connextdds_common/src/common/rmw_graph.cpp @@ -788,6 +788,7 @@ rmw_connextdds_graph_add_entityEA( gid, std::string(topic_name), std::string(type_name), + nullptr, dp_gid, qos_profile, is_reader)) From a671141a92a7b89f7afd586c6338c9335569fb03 Mon Sep 17 00:00:00 2001 From: Emerson Knapp Date: Thu, 23 Feb 2023 14:53:00 -0800 Subject: [PATCH 2/9] WIP using new type hash APIs Signed-off-by: Emerson Knapp --- .../include/rmw_connextdds/graph_cache.hpp | 1 + .../include/rmw_connextdds/type_support.hpp | 6 ++++++ rmw_connextdds_common/src/common/rmw_graph.cpp | 14 +++++++++++++- rmw_connextdds_common/src/ndds/dds_api_ndds.cpp | 2 ++ rmw_connextdds_common/src/rtime/dds_api_rtime.cpp | 2 ++ 5 files changed, 24 insertions(+), 1 deletion(-) diff --git a/rmw_connextdds_common/include/rmw_connextdds/graph_cache.hpp b/rmw_connextdds_common/include/rmw_connextdds/graph_cache.hpp index cf3b1287..90b7a2a3 100644 --- a/rmw_connextdds_common/include/rmw_connextdds/graph_cache.hpp +++ b/rmw_connextdds_common/include/rmw_connextdds/graph_cache.hpp @@ -111,6 +111,7 @@ rmw_connextdds_graph_add_remote_entity( const DDS_GUID_t * const dp_guid, const char * const topic_name, const char * const type_name, + const DDS_UserDataQosPolicy * const user_data, const DDS_ReliabilityQosPolicy * const reliability, const DDS_DurabilityQosPolicy * const durability, const DDS_DeadlineQosPolicy * const deadline, diff --git a/rmw_connextdds_common/include/rmw_connextdds/type_support.hpp b/rmw_connextdds_common/include/rmw_connextdds/type_support.hpp index 284148de..a3a2f82c 100644 --- a/rmw_connextdds_common/include/rmw_connextdds/type_support.hpp +++ b/rmw_connextdds_common/include/rmw_connextdds/type_support.hpp @@ -82,6 +82,12 @@ class RMW_Connext_MessageTypeSupport return this->_type_name.c_str(); } + const rosidl_type_hash_t * type_hash() const + { + return &static_cast( + this->_type_support_fastrtps->data)->type_hash_; + } + uint32_t type_serialized_size_max() const { return this->_serialized_size_max; diff --git a/rmw_connextdds_common/src/common/rmw_graph.cpp b/rmw_connextdds_common/src/common/rmw_graph.cpp index 90d3fa4c..945ecc1f 100644 --- a/rmw_connextdds_common/src/common/rmw_graph.cpp +++ b/rmw_connextdds_common/src/common/rmw_graph.cpp @@ -27,6 +27,7 @@ rmw_connextdds_graph_add_entityEA( const DDS_GUID_t * const dp_guid, const char * const topic_name, const char * const type_name, + const rosidl_type_hash_t * type_hash, const DDS_HistoryQosPolicy * const history, const DDS_ReliabilityQosPolicy * const reliability, const DDS_DurabilityQosPolicy * const durability, @@ -727,6 +728,7 @@ rmw_connextdds_graph_add_entityEA( const DDS_GUID_t * const dp_guid, const char * const topic_name, const char * const type_name, + const rosidl_type_hash_t * type_hash, const DDS_HistoryQosPolicy * const history, const DDS_ReliabilityQosPolicy * const reliability, const DDS_DurabilityQosPolicy * const durability, @@ -788,7 +790,7 @@ rmw_connextdds_graph_add_entityEA( gid, std::string(topic_name), std::string(type_name), - nullptr, + *type_hash, dp_gid, qos_profile, is_reader)) @@ -876,6 +878,7 @@ rmw_connextdds_graph_add_local_publisherEA( &dp_guid, topic_name, pub->message_type_support()->type_name(), + pub->message_type_support()->type_hash(), &dw_qos.history, &dw_qos.reliability, &dw_qos.durability, @@ -947,6 +950,7 @@ rmw_connextdds_graph_add_local_subscriberEA( &dp_guid, topic_name, sub->message_type_support()->type_name(), + sub->message_type_support()->type_hash(), &dr_qos.history, &dr_qos.reliability, &dr_qos.durability, @@ -964,6 +968,7 @@ rmw_connextdds_graph_add_remote_entity( const DDS_GUID_t * const dp_guid, const char * const topic_name, const char * const type_name, + const DDS_UserDataQosPolicy * const user_data, const DDS_ReliabilityQosPolicy * const reliability, const DDS_DurabilityQosPolicy * const durability, const DDS_DeadlineQosPolicy * const deadline, @@ -983,12 +988,19 @@ rmw_connextdds_graph_add_remote_entity( return RMW_RET_OK; } + const uint8_t * user_data_data = DDS_OctetSeq_get_contiguous_buffer(&user_data->value); + const size_t user_data_size = DDS_OctetSeq_get_length(&user_data->value); + rosidl_type_hash_t type_hash = rmw_dds_common::parse_type_hash_from_user_data_qos( + user_data_data, user_data_size); + fprintf(stderr, "Discovered user data: %*s\n", user_data_size, user_data_data); + rmw_ret_t rc = rmw_connextdds_graph_add_entityEA( ctx, endp_guid, dp_guid, topic_name, type_name, + &type_hash, nullptr /* history (not propagated via discovery) */, reliability, durability, diff --git a/rmw_connextdds_common/src/ndds/dds_api_ndds.cpp b/rmw_connextdds_common/src/ndds/dds_api_ndds.cpp index 8cc2c123..67835b7c 100644 --- a/rmw_connextdds_common/src/ndds/dds_api_ndds.cpp +++ b/rmw_connextdds_common/src/ndds/dds_api_ndds.cpp @@ -1219,6 +1219,7 @@ rmw_connextdds_dcps_publication_on_data(rmw_context_impl_t * const ctx) &dp_guid, data->topic_name, data->type_name, + &data->user_data, &data->reliability, &data->durability, &data->deadline, @@ -1302,6 +1303,7 @@ rmw_connextdds_dcps_subscription_on_data(rmw_context_impl_t * const ctx) &dp_guid, data->topic_name, data->type_name, + &data->user_data, &data->reliability, &data->durability, &data->deadline, diff --git a/rmw_connextdds_common/src/rtime/dds_api_rtime.cpp b/rmw_connextdds_common/src/rtime/dds_api_rtime.cpp index bdc6d4ac..6e7831dc 100644 --- a/rmw_connextdds_common/src/rtime/dds_api_rtime.cpp +++ b/rmw_connextdds_common/src/rtime/dds_api_rtime.cpp @@ -1766,6 +1766,7 @@ rmw_connextdds_dcps_publication_on_data(rmw_context_impl_t * const ctx) &dp_guid, qdata.data.topic_name, qdata.data.type_name, + &data->user_data, &qdata.data.reliability, &qdata.data.durability, &qdata.data.deadline, @@ -1824,6 +1825,7 @@ rmw_connextdds_dcps_subscription_on_data(rmw_context_impl_t * const ctx) &dp_guid, qdata.data.topic_name, qdata.data.type_name, + &data->user_data, &qdata.data.reliability, &qdata.data.durability, &qdata.data.deadline, From 738e21330fd1829333b444c3294cdbdb87408de9 Mon Sep 17 00:00:00 2001 From: Emerson Knapp Date: Thu, 23 Feb 2023 15:19:50 -0800 Subject: [PATCH 3/9] Working now Signed-off-by: Emerson Knapp --- .../include/rmw_connextdds/rmw_impl.hpp | 1 + rmw_connextdds_common/src/common/rmw_graph.cpp | 1 - rmw_connextdds_common/src/common/rmw_impl.cpp | 9 ++++++++- rmw_connextdds_common/src/ndds/dds_api_ndds.cpp | 2 ++ rmw_connextdds_common/src/rtime/dds_api_rtime.cpp | 2 ++ 5 files changed, 13 insertions(+), 2 deletions(-) diff --git a/rmw_connextdds_common/include/rmw_connextdds/rmw_impl.hpp b/rmw_connextdds_common/include/rmw_connextdds/rmw_impl.hpp index f81f9bb0..2c1e1f3b 100644 --- a/rmw_connextdds_common/include/rmw_connextdds/rmw_impl.hpp +++ b/rmw_connextdds_common/include/rmw_connextdds/rmw_impl.hpp @@ -811,6 +811,7 @@ rmw_connextdds_get_readerwriter_qos( DDS_ResourceLimitsQosPolicy * const resource_limits, DDS_PublishModeQosPolicy * const publish_mode, DDS_LifespanQosPolicy * const lifespan, + DDS_UserDataQosPolicy * const user_data, const rmw_qos_profile_t * const qos_policies, const rmw_publisher_options_t * const pub_options, const rmw_subscription_options_t * const sub_options); diff --git a/rmw_connextdds_common/src/common/rmw_graph.cpp b/rmw_connextdds_common/src/common/rmw_graph.cpp index 945ecc1f..33fb148a 100644 --- a/rmw_connextdds_common/src/common/rmw_graph.cpp +++ b/rmw_connextdds_common/src/common/rmw_graph.cpp @@ -992,7 +992,6 @@ rmw_connextdds_graph_add_remote_entity( const size_t user_data_size = DDS_OctetSeq_get_length(&user_data->value); rosidl_type_hash_t type_hash = rmw_dds_common::parse_type_hash_from_user_data_qos( user_data_data, user_data_size); - fprintf(stderr, "Discovered user data: %*s\n", user_data_size, user_data_data); rmw_ret_t rc = rmw_connextdds_graph_add_entityEA( ctx, diff --git a/rmw_connextdds_common/src/common/rmw_impl.cpp b/rmw_connextdds_common/src/common/rmw_impl.cpp index 43a9f6c7..757517f5 100644 --- a/rmw_connextdds_common/src/common/rmw_impl.cpp +++ b/rmw_connextdds_common/src/common/rmw_impl.cpp @@ -303,12 +303,12 @@ rmw_connextdds_get_readerwriter_qos( DDS_ResourceLimitsQosPolicy * const resource_limits, DDS_PublishModeQosPolicy * const publish_mode, DDS_LifespanQosPolicy * const lifespan, + DDS_UserDataQosPolicy * const user_data, const rmw_qos_profile_t * const qos_policies, const rmw_publisher_options_t * const pub_options, const rmw_subscription_options_t * const sub_options) { UNUSED_ARG(writer_qos); - UNUSED_ARG(type_support); UNUSED_ARG(publish_mode); UNUSED_ARG(resource_limits); UNUSED_ARG(pub_options); @@ -454,6 +454,13 @@ rmw_connextdds_get_readerwriter_qos( } #endif /* RMW_CONNEXT_DDS_API == RMW_CONNEXT_DDS_API_PRO */ + auto user_data_str = rmw_dds_common::encode_type_hash_for_user_data_qos( + *type_support->type_hash()); + DDS_OctetSeq_from_array( + &user_data->value, + reinterpret_cast(user_data_str.c_str()), + user_data_str.size()); + return RMW_RET_OK; } diff --git a/rmw_connextdds_common/src/ndds/dds_api_ndds.cpp b/rmw_connextdds_common/src/ndds/dds_api_ndds.cpp index 67835b7c..d8a21eee 100644 --- a/rmw_connextdds_common/src/ndds/dds_api_ndds.cpp +++ b/rmw_connextdds_common/src/ndds/dds_api_ndds.cpp @@ -504,6 +504,7 @@ rmw_connextdds_get_datawriter_qos( // TODO(asorbini) this value is not actually used, remove it &qos->publish_mode, &qos->lifespan, + &qos->user_data, qos_policies, pub_options, nullptr /* sub_options */)) @@ -593,6 +594,7 @@ rmw_connextdds_get_datareader_qos( &qos->resource_limits, nullptr /* publish_mode */, nullptr /* Lifespan is a writer-only qos policy */, + &qos->user_data, qos_policies, nullptr /* pub_options */, sub_options)) diff --git a/rmw_connextdds_common/src/rtime/dds_api_rtime.cpp b/rmw_connextdds_common/src/rtime/dds_api_rtime.cpp index 6e7831dc..d6a55dc7 100644 --- a/rmw_connextdds_common/src/rtime/dds_api_rtime.cpp +++ b/rmw_connextdds_common/src/rtime/dds_api_rtime.cpp @@ -1015,6 +1015,7 @@ rmw_connextdds_get_datawriter_qos( &qos->resource_limits, &qos->publish_mode, nullptr /* Micro doesn't support DDS_LifespanQosPolicy */, + &qos->user_data, qos_policies, pub_options, nullptr /* sub_options */)) @@ -1064,6 +1065,7 @@ rmw_connextdds_get_datareader_qos( &qos->resource_limits, nullptr /* publish_mode */, nullptr /* Lifespan is a writer-only qos policy */, + &qos->user_data, qos_policies, nullptr /* pub_options */, sub_options)) From cf82757d7078c71c69089d50785bde0b7e9b9a2e Mon Sep 17 00:00:00 2001 From: Emerson Knapp Date: Sun, 12 Mar 2023 23:46:34 -0700 Subject: [PATCH 4/9] Fix linter, use new fn name Signed-off-by: Emerson Knapp --- rmw_connextdds_common/include/rmw_connextdds/type_support.hpp | 4 ++-- rmw_connextdds_common/src/common/rmw_graph.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/rmw_connextdds_common/include/rmw_connextdds/type_support.hpp b/rmw_connextdds_common/include/rmw_connextdds/type_support.hpp index a3a2f82c..4ecbddb0 100644 --- a/rmw_connextdds_common/include/rmw_connextdds/type_support.hpp +++ b/rmw_connextdds_common/include/rmw_connextdds/type_support.hpp @@ -84,8 +84,8 @@ class RMW_Connext_MessageTypeSupport const rosidl_type_hash_t * type_hash() const { - return &static_cast( - this->_type_support_fastrtps->data)->type_hash_; + return &(static_cast( + this->_type_support_fastrtps->data)->type_hash_); } uint32_t type_serialized_size_max() const diff --git a/rmw_connextdds_common/src/common/rmw_graph.cpp b/rmw_connextdds_common/src/common/rmw_graph.cpp index 33fb148a..30371113 100644 --- a/rmw_connextdds_common/src/common/rmw_graph.cpp +++ b/rmw_connextdds_common/src/common/rmw_graph.cpp @@ -990,7 +990,7 @@ rmw_connextdds_graph_add_remote_entity( const uint8_t * user_data_data = DDS_OctetSeq_get_contiguous_buffer(&user_data->value); const size_t user_data_size = DDS_OctetSeq_get_length(&user_data->value); - rosidl_type_hash_t type_hash = rmw_dds_common::parse_type_hash_from_user_data_qos( + rosidl_type_hash_t type_hash = rmw_dds_common::parse_type_hash_from_user_data( user_data_data, user_data_size); rmw_ret_t rc = rmw_connextdds_graph_add_entityEA( From 3532abafc0ac71e010c0cd9380a6162eb47d2c9d Mon Sep 17 00:00:00 2001 From: Emerson Knapp Date: Mon, 13 Mar 2023 12:57:36 -0700 Subject: [PATCH 5/9] fix msbuild warning Signed-off-by: Emerson Knapp --- rmw_connextdds_common/src/common/rmw_impl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rmw_connextdds_common/src/common/rmw_impl.cpp b/rmw_connextdds_common/src/common/rmw_impl.cpp index 757517f5..bbf28047 100644 --- a/rmw_connextdds_common/src/common/rmw_impl.cpp +++ b/rmw_connextdds_common/src/common/rmw_impl.cpp @@ -459,7 +459,7 @@ rmw_connextdds_get_readerwriter_qos( DDS_OctetSeq_from_array( &user_data->value, reinterpret_cast(user_data_str.c_str()), - user_data_str.size()); + static_cast(user_data_str.size())); return RMW_RET_OK; } From 152508851fdb99a1b76a3512ff248f7f2a431668 Mon Sep 17 00:00:00 2001 From: Emerson Knapp Date: Wed, 15 Mar 2023 12:54:42 -0700 Subject: [PATCH 6/9] Use new signatures Signed-off-by: Emerson Knapp --- rmw_connextdds_common/src/common/rmw_graph.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/rmw_connextdds_common/src/common/rmw_graph.cpp b/rmw_connextdds_common/src/common/rmw_graph.cpp index 30371113..2ba8cc8d 100644 --- a/rmw_connextdds_common/src/common/rmw_graph.cpp +++ b/rmw_connextdds_common/src/common/rmw_graph.cpp @@ -990,8 +990,12 @@ rmw_connextdds_graph_add_remote_entity( const uint8_t * user_data_data = DDS_OctetSeq_get_contiguous_buffer(&user_data->value); const size_t user_data_size = DDS_OctetSeq_get_length(&user_data->value); - rosidl_type_hash_t type_hash = rmw_dds_common::parse_type_hash_from_user_data( - user_data_data, user_data_size); + rosidl_type_hash_t type_hash; + rmw_ret_t ret = rmw_dds_common::parse_type_hash_from_user_data( + user_data_data, user_data_size, type_hash); + if (ret != RMW_RET_OK) { + type_hash = rosidl_get_zero_initialized_type_hash(); + } rmw_ret_t rc = rmw_connextdds_graph_add_entityEA( ctx, From 38024de9cd2341b50c215dc68a6667646aa0aa3f Mon Sep 17 00:00:00 2001 From: Emerson Knapp Date: Wed, 15 Mar 2023 19:22:50 -0700 Subject: [PATCH 7/9] Address review comments Signed-off-by: Emerson Knapp --- .../include/rmw_connextdds/type_support.hpp | 8 +++++--- rmw_connextdds_common/src/common/rmw_graph.cpp | 16 +++++++++------- rmw_connextdds_common/src/common/rmw_impl.cpp | 9 +++++++-- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/rmw_connextdds_common/include/rmw_connextdds/type_support.hpp b/rmw_connextdds_common/include/rmw_connextdds/type_support.hpp index 4ecbddb0..ec56a36a 100644 --- a/rmw_connextdds_common/include/rmw_connextdds/type_support.hpp +++ b/rmw_connextdds_common/include/rmw_connextdds/type_support.hpp @@ -20,6 +20,8 @@ #include "rmw_connextdds/context.hpp" +#include "rosidl_runtime_c/type_hash.h" + #include "rosidl_typesupport_fastrtps_c/identifier.h" #include "rosidl_typesupport_fastrtps_cpp/identifier.hpp" #include "rosidl_typesupport_fastrtps_cpp/message_type_support.h" @@ -82,10 +84,10 @@ class RMW_Connext_MessageTypeSupport return this->_type_name.c_str(); } - const rosidl_type_hash_t * type_hash() const + const rosidl_type_hash_t & type_hash() const { - return &(static_cast( - this->_type_support_fastrtps->data)->type_hash_); + return static_cast( + this->_type_support_fastrtps->data)->type_hash_; } uint32_t type_serialized_size_max() const diff --git a/rmw_connextdds_common/src/common/rmw_graph.cpp b/rmw_connextdds_common/src/common/rmw_graph.cpp index 2ba8cc8d..e3a8c561 100644 --- a/rmw_connextdds_common/src/common/rmw_graph.cpp +++ b/rmw_connextdds_common/src/common/rmw_graph.cpp @@ -17,6 +17,8 @@ #include "rmw_connextdds/discovery.hpp" #include "rmw_connextdds/graph_cache.hpp" +#include "rosidl_runtime_c/type_hash.h" + // Aliases for rmw.h functions referenced by rmw_dds_common inline functions #define rmw_publish rmw_api_connextdds_publish @@ -27,7 +29,7 @@ rmw_connextdds_graph_add_entityEA( const DDS_GUID_t * const dp_guid, const char * const topic_name, const char * const type_name, - const rosidl_type_hash_t * type_hash, + const rosidl_type_hash_t & type_hash, const DDS_HistoryQosPolicy * const history, const DDS_ReliabilityQosPolicy * const reliability, const DDS_DurabilityQosPolicy * const durability, @@ -728,7 +730,7 @@ rmw_connextdds_graph_add_entityEA( const DDS_GUID_t * const dp_guid, const char * const topic_name, const char * const type_name, - const rosidl_type_hash_t * type_hash, + const rosidl_type_hash_t & type_hash, const DDS_HistoryQosPolicy * const history, const DDS_ReliabilityQosPolicy * const reliability, const DDS_DurabilityQosPolicy * const durability, @@ -790,7 +792,7 @@ rmw_connextdds_graph_add_entityEA( gid, std::string(topic_name), std::string(type_name), - *type_hash, + type_hash, dp_gid, qos_profile, is_reader)) @@ -991,9 +993,9 @@ rmw_connextdds_graph_add_remote_entity( const uint8_t * user_data_data = DDS_OctetSeq_get_contiguous_buffer(&user_data->value); const size_t user_data_size = DDS_OctetSeq_get_length(&user_data->value); rosidl_type_hash_t type_hash; - rmw_ret_t ret = rmw_dds_common::parse_type_hash_from_user_data( - user_data_data, user_data_size, type_hash); - if (ret != RMW_RET_OK) { + if (RMW_RET_OK != rmw_dds_common::parse_type_hash_from_user_data( + user_data_data, user_data_size, type_hash)) + { type_hash = rosidl_get_zero_initialized_type_hash(); } @@ -1003,7 +1005,7 @@ rmw_connextdds_graph_add_remote_entity( dp_guid, topic_name, type_name, - &type_hash, + type_hash, nullptr /* history (not propagated via discovery) */, reliability, durability, diff --git a/rmw_connextdds_common/src/common/rmw_impl.cpp b/rmw_connextdds_common/src/common/rmw_impl.cpp index bbf28047..9352b60e 100644 --- a/rmw_connextdds_common/src/common/rmw_impl.cpp +++ b/rmw_connextdds_common/src/common/rmw_impl.cpp @@ -20,6 +20,7 @@ #include #include "rmw_dds_common/time_utils.hpp" +#include "rmw_dds_common/qos.hpp" #include "rmw_connextdds/graph_cache.hpp" @@ -454,8 +455,12 @@ rmw_connextdds_get_readerwriter_qos( } #endif /* RMW_CONNEXT_DDS_API == RMW_CONNEXT_DDS_API_PRO */ - auto user_data_str = rmw_dds_common::encode_type_hash_for_user_data_qos( - *type_support->type_hash()); + std::string user_data_str; + if (RMW_RET_OK != rmw_dds_common::encode_type_hash_for_user_data_qos( + type_support->type_hash(), user_data_str)) + { + user_data_str.clear(); + } DDS_OctetSeq_from_array( &user_data->value, reinterpret_cast(user_data_str.c_str()), From fd4dc091c17e8d2efaf1857e911d61fc4b5c2e9c Mon Sep 17 00:00:00 2001 From: Emerson Knapp Date: Tue, 21 Mar 2023 22:56:51 -0700 Subject: [PATCH 8/9] Use message typesupport hash Signed-off-by: Emerson Knapp --- rmw_connextdds_common/include/rmw_connextdds/type_support.hpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/rmw_connextdds_common/include/rmw_connextdds/type_support.hpp b/rmw_connextdds_common/include/rmw_connextdds/type_support.hpp index ec56a36a..87eb9ac9 100644 --- a/rmw_connextdds_common/include/rmw_connextdds/type_support.hpp +++ b/rmw_connextdds_common/include/rmw_connextdds/type_support.hpp @@ -86,8 +86,7 @@ class RMW_Connext_MessageTypeSupport const rosidl_type_hash_t & type_hash() const { - return static_cast( - this->_type_support_fastrtps->data)->type_hash_; + return *_type_support_fastrtps->type_hash; } uint32_t type_serialized_size_max() const From 4e527bdf730cee368a4273a55b7ff0d023be56bb Mon Sep 17 00:00:00 2001 From: Emerson Knapp Date: Tue, 21 Mar 2023 23:23:55 -0700 Subject: [PATCH 9/9] Re-add warning messages i clobbered Signed-off-by: Emerson Knapp --- rmw_connextdds_common/src/common/rmw_graph.cpp | 4 ++++ rmw_connextdds_common/src/common/rmw_impl.cpp | 2 ++ 2 files changed, 6 insertions(+) diff --git a/rmw_connextdds_common/src/common/rmw_graph.cpp b/rmw_connextdds_common/src/common/rmw_graph.cpp index e3a8c561..332299dd 100644 --- a/rmw_connextdds_common/src/common/rmw_graph.cpp +++ b/rmw_connextdds_common/src/common/rmw_graph.cpp @@ -996,6 +996,10 @@ rmw_connextdds_graph_add_remote_entity( if (RMW_RET_OK != rmw_dds_common::parse_type_hash_from_user_data( user_data_data, user_data_size, type_hash)) { + RMW_CONNEXT_LOG_WARNING_A( + "Failed to parse type hash for topic '%s' with type '%s' from USER_DATA '%*s'.", + topic_name, type_name, + static_cast(user_data_size), reinterpret_cast(user_data_data)); type_hash = rosidl_get_zero_initialized_type_hash(); } diff --git a/rmw_connextdds_common/src/common/rmw_impl.cpp b/rmw_connextdds_common/src/common/rmw_impl.cpp index 9352b60e..d81ddf54 100644 --- a/rmw_connextdds_common/src/common/rmw_impl.cpp +++ b/rmw_connextdds_common/src/common/rmw_impl.cpp @@ -459,6 +459,8 @@ rmw_connextdds_get_readerwriter_qos( if (RMW_RET_OK != rmw_dds_common::encode_type_hash_for_user_data_qos( type_support->type_hash(), user_data_str)) { + RMW_CONNEXT_LOG_WARNING( + "Failed to encode type hash for topic, will not distribute it in USER_DATA."); user_data_str.clear(); } DDS_OctetSeq_from_array(