From 7e2fd321f7b0c413f16797412759449cd0150870 Mon Sep 17 00:00:00 2001 From: "Chen.Lihui" Date: Wed, 2 Dec 2020 14:27:44 +0800 Subject: [PATCH 1/4] Add content filter topic feature empty stub Signed-off-by: Chen.Lihui --- rmw_cyclonedds_cpp/src/rmw_node.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/rmw_cyclonedds_cpp/src/rmw_node.cpp b/rmw_cyclonedds_cpp/src/rmw_node.cpp index 681bb03e..83311244 100644 --- a/rmw_cyclonedds_cpp/src/rmw_node.cpp +++ b/rmw_cyclonedds_cpp/src/rmw_node.cpp @@ -3012,6 +3012,32 @@ extern "C" rmw_ret_t rmw_subscription_get_actual_qos( return RMW_RET_ERROR; } +extern "C" rmw_ret_t rmw_subscription_set_cft_expression_parameters( + const rmw_subscription_t * subscription, + const char * filter_expression, + const rcutils_string_array_t * expression_parameters) +{ + static_cast(subscription); + static_cast(filter_expression); + static_cast(expression_parameters); + + RMW_SET_ERROR_MSG("rmw_subscription_set_cft_expression_parameters: unimplemented"); + return RMW_RET_UNSUPPORTED; +} + +extern "C" rmw_ret_t rmw_subscription_get_cft_expression_parameters( + const rmw_subscription_t * subscription, + char ** filter_expression, + rcutils_string_array_t * expression_parameters) +{ + static_cast(subscription); + static_cast(filter_expression); + static_cast(expression_parameters); + + RMW_SET_ERROR_MSG("rmw_subscription_get_cft_expression_parameters: unimplemented"); + return RMW_RET_UNSUPPORTED; +} + static rmw_ret_t destroy_subscription(rmw_subscription_t * subscription) { rmw_ret_t ret = RMW_RET_OK; From 1c39607624cde3ffc1ccf8d246365833b4b29282 Mon Sep 17 00:00:00 2001 From: Chen Lihui Date: Fri, 12 Mar 2021 13:05:12 +0800 Subject: [PATCH 2/4] to support reset content filtered topic with empty string. remove constness for rmw_subscription because is_cft_supported might be updated Signed-off-by: Chen Lihui --- rmw_cyclonedds_cpp/src/rmw_node.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rmw_cyclonedds_cpp/src/rmw_node.cpp b/rmw_cyclonedds_cpp/src/rmw_node.cpp index 83311244..8489a57d 100644 --- a/rmw_cyclonedds_cpp/src/rmw_node.cpp +++ b/rmw_cyclonedds_cpp/src/rmw_node.cpp @@ -2887,6 +2887,7 @@ static rmw_subscription_t * create_subscription( memcpy(const_cast(rmw_subscription->topic_name), topic_name, strlen(topic_name) + 1); rmw_subscription->options = *subscription_options; rmw_subscription->can_loan_messages = sub->is_loaning_available; + rmw_subscription->is_cft_supported = false; cleanup_subscription.cancel(); cleanup_rmw_subscription.cancel(); @@ -3013,7 +3014,7 @@ extern "C" rmw_ret_t rmw_subscription_get_actual_qos( } extern "C" rmw_ret_t rmw_subscription_set_cft_expression_parameters( - const rmw_subscription_t * subscription, + rmw_subscription_t * subscription, const char * filter_expression, const rcutils_string_array_t * expression_parameters) { From d024950d26377603bdf8df8ea9e00befe2538b4f Mon Sep 17 00:00:00 2001 From: Chen Lihui Date: Mon, 11 Oct 2021 13:09:05 +0800 Subject: [PATCH 3/4] Update interface Signed-off-by: Chen Lihui --- rmw_cyclonedds_cpp/src/rmw_node.cpp | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/rmw_cyclonedds_cpp/src/rmw_node.cpp b/rmw_cyclonedds_cpp/src/rmw_node.cpp index 8489a57d..7220f902 100644 --- a/rmw_cyclonedds_cpp/src/rmw_node.cpp +++ b/rmw_cyclonedds_cpp/src/rmw_node.cpp @@ -2887,7 +2887,7 @@ static rmw_subscription_t * create_subscription( memcpy(const_cast(rmw_subscription->topic_name), topic_name, strlen(topic_name) + 1); rmw_subscription->options = *subscription_options; rmw_subscription->can_loan_messages = sub->is_loaning_available; - rmw_subscription->is_cft_supported = false; + rmw_subscription->is_cft_enabled = false; cleanup_subscription.cancel(); cleanup_rmw_subscription.cancel(); @@ -3015,12 +3015,10 @@ extern "C" rmw_ret_t rmw_subscription_get_actual_qos( extern "C" rmw_ret_t rmw_subscription_set_cft_expression_parameters( rmw_subscription_t * subscription, - const char * filter_expression, - const rcutils_string_array_t * expression_parameters) + const rmw_subscription_content_filtered_topic_options_t * options) { static_cast(subscription); - static_cast(filter_expression); - static_cast(expression_parameters); + static_cast(options); RMW_SET_ERROR_MSG("rmw_subscription_set_cft_expression_parameters: unimplemented"); return RMW_RET_UNSUPPORTED; @@ -3028,12 +3026,12 @@ extern "C" rmw_ret_t rmw_subscription_set_cft_expression_parameters( extern "C" rmw_ret_t rmw_subscription_get_cft_expression_parameters( const rmw_subscription_t * subscription, - char ** filter_expression, - rcutils_string_array_t * expression_parameters) + rcutils_allocator_t * allocator, + rmw_subscription_content_filtered_topic_options_t * options) { static_cast(subscription); - static_cast(filter_expression); - static_cast(expression_parameters); + static_cast(allocator); + static_cast(options); RMW_SET_ERROR_MSG("rmw_subscription_get_cft_expression_parameters: unimplemented"); return RMW_RET_UNSUPPORTED; From 905e63cd317371ce92f3a66f4261a1b27b1399a2 Mon Sep 17 00:00:00 2001 From: Chen Lihui Date: Tue, 26 Oct 2021 14:25:52 +0800 Subject: [PATCH 4/4] rename Signed-off-by: Chen Lihui --- rmw_cyclonedds_cpp/src/rmw_node.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/rmw_cyclonedds_cpp/src/rmw_node.cpp b/rmw_cyclonedds_cpp/src/rmw_node.cpp index 7220f902..ca4c3505 100644 --- a/rmw_cyclonedds_cpp/src/rmw_node.cpp +++ b/rmw_cyclonedds_cpp/src/rmw_node.cpp @@ -3013,27 +3013,27 @@ extern "C" rmw_ret_t rmw_subscription_get_actual_qos( return RMW_RET_ERROR; } -extern "C" rmw_ret_t rmw_subscription_set_cft_expression_parameters( +extern "C" rmw_ret_t rmw_subscription_set_content_filter( rmw_subscription_t * subscription, - const rmw_subscription_content_filtered_topic_options_t * options) + const rmw_subscription_content_filter_options_t * options) { static_cast(subscription); static_cast(options); - RMW_SET_ERROR_MSG("rmw_subscription_set_cft_expression_parameters: unimplemented"); + RMW_SET_ERROR_MSG("rmw_subscription_set_content_filter: unimplemented"); return RMW_RET_UNSUPPORTED; } -extern "C" rmw_ret_t rmw_subscription_get_cft_expression_parameters( +extern "C" rmw_ret_t rmw_subscription_get_content_filter( const rmw_subscription_t * subscription, rcutils_allocator_t * allocator, - rmw_subscription_content_filtered_topic_options_t * options) + rmw_subscription_content_filter_options_t * options) { static_cast(subscription); static_cast(allocator); static_cast(options); - RMW_SET_ERROR_MSG("rmw_subscription_get_cft_expression_parameters: unimplemented"); + RMW_SET_ERROR_MSG("rmw_subscription_get_content_filter: unimplemented"); return RMW_RET_UNSUPPORTED; }