21#include <pulsar/defines.h>
23#include "producer_configuration.h"
29typedef struct _pulsar_consumer_configuration pulsar_consumer_configuration_t;
35 pulsar_ConsumerExclusive,
41 pulsar_ConsumerShared,
46 pulsar_ConsumerFailover,
52 pulsar_ConsumerKeyShared
53} pulsar_consumer_type;
59 initial_position_latest,
63 initial_position_earliest
70 pulsar_ConsumerDiscard,
75 pulsar_ConsumerConsume
76} pulsar_consumer_crypto_failure_action;
79typedef void (*pulsar_message_listener)(pulsar_consumer_t *consumer, pulsar_message_t *msg,
void *ctx);
81PULSAR_PUBLIC pulsar_consumer_configuration_t *pulsar_consumer_configuration_create();
83PULSAR_PUBLIC
void pulsar_consumer_configuration_free(
84 pulsar_consumer_configuration_t *consumer_configuration);
98PULSAR_PUBLIC
void pulsar_consumer_configuration_set_consumer_type(
99 pulsar_consumer_configuration_t *consumer_configuration, pulsar_consumer_type consumerType);
101PULSAR_PUBLIC pulsar_consumer_type
102pulsar_consumer_configuration_get_consumer_type(pulsar_consumer_configuration_t *consumer_configuration);
104PULSAR_PUBLIC
void pulsar_consumer_configuration_set_schema_info(
105 pulsar_consumer_configuration_t *consumer_configuration, pulsar_schema_type schemaType,
const char *name,
106 const char *schema, pulsar_string_map_t *properties);
113PULSAR_PUBLIC
void pulsar_consumer_configuration_set_message_listener(
114 pulsar_consumer_configuration_t *consumer_configuration, pulsar_message_listener messageListener,
117PULSAR_PUBLIC
int pulsar_consumer_configuration_has_message_listener(
118 pulsar_consumer_configuration_t *consumer_configuration);
141PULSAR_PUBLIC
void pulsar_consumer_configuration_set_receiver_queue_size(
142 pulsar_consumer_configuration_t *consumer_configuration,
int size);
144PULSAR_PUBLIC
int pulsar_consumer_configuration_get_receiver_queue_size(
145 pulsar_consumer_configuration_t *consumer_configuration);
155PULSAR_PUBLIC
void pulsar_consumer_set_max_total_receiver_queue_size_across_partitions(
156 pulsar_consumer_configuration_t *consumer_configuration,
int maxTotalReceiverQueueSizeAcrossPartitions);
161PULSAR_PUBLIC
int pulsar_consumer_get_max_total_receiver_queue_size_across_partitions(
162 pulsar_consumer_configuration_t *consumer_configuration);
164PULSAR_PUBLIC
void pulsar_consumer_set_consumer_name(pulsar_consumer_configuration_t *consumer_configuration,
165 const char *consumerName);
167PULSAR_PUBLIC
const char *pulsar_consumer_get_consumer_name(
168 pulsar_consumer_configuration_t *consumer_configuration);
177PULSAR_PUBLIC
void pulsar_consumer_set_unacked_messages_timeout_ms(
178 pulsar_consumer_configuration_t *consumer_configuration,
const uint64_t milliSeconds);
183PULSAR_PUBLIC
long pulsar_consumer_get_unacked_messages_timeout_ms(
184 pulsar_consumer_configuration_t *consumer_configuration);
198PULSAR_PUBLIC
void pulsar_configure_set_negative_ack_redelivery_delay_ms(
199 pulsar_consumer_configuration_t *consumer_configuration,
long redeliveryDelayMillis);
207PULSAR_PUBLIC
long pulsar_configure_get_negative_ack_redelivery_delay_ms(
208 pulsar_consumer_configuration_t *consumer_configuration);
219PULSAR_PUBLIC
void pulsar_configure_set_ack_grouping_time_ms(
220 pulsar_consumer_configuration_t *consumer_configuration,
long ackGroupingMillis);
228PULSAR_PUBLIC
long pulsar_configure_get_ack_grouping_time_ms(
229 pulsar_consumer_configuration_t *consumer_configuration);
238PULSAR_PUBLIC
void pulsar_configure_set_ack_grouping_max_size(
239 pulsar_consumer_configuration_t *consumer_configuration,
long maxGroupingSize);
247PULSAR_PUBLIC
long pulsar_configure_get_ack_grouping_max_size(
248 pulsar_consumer_configuration_t *consumer_configuration);
250PULSAR_PUBLIC
int pulsar_consumer_is_encryption_enabled(
251 pulsar_consumer_configuration_t *consumer_configuration);
253PULSAR_PUBLIC
void pulsar_consumer_configuration_set_default_crypto_key_reader(
254 pulsar_consumer_configuration_t *consumer_configuration,
const char *public_key_path,
255 const char *private_key_path);
257PULSAR_PUBLIC pulsar_consumer_crypto_failure_action pulsar_consumer_configuration_get_crypto_failure_action(
258 pulsar_consumer_configuration_t *consumer_configuration);
260PULSAR_PUBLIC
void pulsar_consumer_configuration_set_crypto_failure_action(
261 pulsar_consumer_configuration_t *consumer_configuration,
262 pulsar_consumer_crypto_failure_action cryptoFailureAction);
264PULSAR_PUBLIC
int pulsar_consumer_is_read_compacted(pulsar_consumer_configuration_t *consumer_configuration);
266PULSAR_PUBLIC
void pulsar_consumer_set_read_compacted(pulsar_consumer_configuration_t *consumer_configuration,
269PULSAR_PUBLIC
int pulsar_consumer_get_subscription_initial_position(
270 pulsar_consumer_configuration_t *consumer_configuration);
272PULSAR_PUBLIC
void pulsar_consumer_set_subscription_initial_position(
273 pulsar_consumer_configuration_t *consumer_configuration, initial_position subscriptionInitialPosition);
275PULSAR_PUBLIC
void pulsar_consumer_configuration_set_property(pulsar_consumer_configuration_t *conf,
276 const char *name,
const char *value);