This is an automated email from the ASF dual-hosted git repository. baodi pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/pulsar-client-cpp.git
The following commit(s) were added to refs/heads/main by this push: new 4d659a8 [feat] Support set consumer regex subscription mode for C client. (#247) 4d659a8 is described below commit 4d659a81aff34794a3f0a977057b72a37204b347 Author: Baodi Shi <ba...@apache.org> AuthorDate: Fri Apr 14 21:40:12 2023 +0800 [feat] Support set consumer regex subscription mode for C client. (#247) --- include/pulsar/c/consumer_configuration.h | 18 ++++++++++++++++++ lib/c/c_ConsumerConfiguration.cc | 13 +++++++++++++ tests/c/c_ConsumerConfigurationTest.cc | 5 +++++ 3 files changed, 36 insertions(+) diff --git a/include/pulsar/c/consumer_configuration.h b/include/pulsar/c/consumer_configuration.h index d6c4fcd..16124a8 100644 --- a/include/pulsar/c/consumer_configuration.h +++ b/include/pulsar/c/consumer_configuration.h @@ -79,6 +79,16 @@ typedef enum pulsar_ConsumerConsume } pulsar_consumer_crypto_failure_action; +typedef enum +{ + // Only subscribe to persistent topics. + pulsar_consumer_regex_sub_mode_PersistentOnly = 0, + // Only subscribe to non-persistent topics. + pulsar_consumer_regex_sub_mode_NonPersistentOnly = 1, + // Subscribe to both persistent and non-persistent topics. + pulsar_consumer_regex_sub_mode_AllTopics = 2 +} pulsar_consumer_regex_subscription_mode; + /// Callback definition for MessageListener typedef void (*pulsar_message_listener)(pulsar_consumer_t *consumer, pulsar_message_t *msg, void *ctx); @@ -310,6 +320,14 @@ PULSAR_PUBLIC void pulsar_consumer_configuration_set_batch_index_ack_enabled( PULSAR_PUBLIC int pulsar_consumer_configuration_is_batch_index_ack_enabled( pulsar_consumer_configuration_t *consumer_configuration); +PULSAR_PUBLIC void pulsar_consumer_configuration_set_regex_subscription_mode( + pulsar_consumer_configuration_t *consumer_configuration, + pulsar_consumer_regex_subscription_mode regex_sub_mode); + +PULSAR_PUBLIC pulsar_consumer_regex_subscription_mode +pulsar_consumer_configuration_get_regex_subscription_mode( + pulsar_consumer_configuration_t *consumer_configuration); + // const CryptoKeyReaderPtr getCryptoKeyReader() // // const; diff --git a/lib/c/c_ConsumerConfiguration.cc b/lib/c/c_ConsumerConfiguration.cc index 8a03d3d..9cc3f20 100644 --- a/lib/c/c_ConsumerConfiguration.cc +++ b/lib/c/c_ConsumerConfiguration.cc @@ -237,3 +237,16 @@ int pulsar_consumer_configuration_is_batch_index_ack_enabled( pulsar_consumer_configuration_t *consumer_configuration) { return consumer_configuration->consumerConfiguration.isBatchIndexAckEnabled(); } + +void pulsar_consumer_configuration_set_regex_subscription_mode( + pulsar_consumer_configuration_t *consumer_configuration, + pulsar_consumer_regex_subscription_mode regex_sub_mode) { + consumer_configuration->consumerConfiguration.setRegexSubscriptionMode( + (pulsar::RegexSubscriptionMode)regex_sub_mode); +} + +pulsar_consumer_regex_subscription_mode pulsar_consumer_configuration_get_regex_subscription_mode( + pulsar_consumer_configuration_t *consumer_configuration) { + return (pulsar_consumer_regex_subscription_mode) + consumer_configuration->consumerConfiguration.getRegexSubscriptionMode(); +} diff --git a/tests/c/c_ConsumerConfigurationTest.cc b/tests/c/c_ConsumerConfigurationTest.cc index 03204cc..3984e6d 100644 --- a/tests/c/c_ConsumerConfigurationTest.cc +++ b/tests/c/c_ConsumerConfigurationTest.cc @@ -37,4 +37,9 @@ TEST(C_ConsumerConfigurationTest, testCApiConfig) { pulsar_consumer_configuration_set_batch_index_ack_enabled(consumer_conf, 1); ASSERT_EQ(pulsar_consumer_configuration_is_batch_index_ack_enabled(consumer_conf), 1); + + pulsar_consumer_configuration_set_regex_subscription_mode( + consumer_conf, pulsar_consumer_regex_sub_mode_NonPersistentOnly); + ASSERT_EQ(pulsar_consumer_configuration_get_regex_subscription_mode(consumer_conf), + pulsar_consumer_regex_sub_mode_NonPersistentOnly); }