21#include <pulsar/defines.h>
24#include "producer_configuration.h"
30typedef struct _pulsar_consumer_configuration pulsar_consumer_configuration_t;
37 pulsar_ConsumerExclusive,
43 pulsar_ConsumerShared,
48 pulsar_ConsumerFailover,
54 pulsar_ConsumerKeyShared
55} pulsar_consumer_type;
62 initial_position_latest,
66 initial_position_earliest
74 pulsar_ConsumerDiscard,
79 pulsar_ConsumerConsume
80} pulsar_consumer_crypto_failure_action;
83typedef void (*pulsar_message_listener)(pulsar_consumer_t *consumer, pulsar_message_t *msg,
void *ctx);
85PULSAR_PUBLIC pulsar_consumer_configuration_t *pulsar_consumer_configuration_create();
87PULSAR_PUBLIC
void pulsar_consumer_configuration_free(
88 pulsar_consumer_configuration_t *consumer_configuration);
102PULSAR_PUBLIC
void pulsar_consumer_configuration_set_consumer_type(
103 pulsar_consumer_configuration_t *consumer_configuration, pulsar_consumer_type consumerType);
105PULSAR_PUBLIC pulsar_consumer_type
106pulsar_consumer_configuration_get_consumer_type(pulsar_consumer_configuration_t *consumer_configuration);
108PULSAR_PUBLIC
void pulsar_consumer_configuration_set_schema_info(
109 pulsar_consumer_configuration_t *consumer_configuration, pulsar_schema_type schemaType,
const char *name,
110 const char *schema, pulsar_string_map_t *properties);
117PULSAR_PUBLIC
void pulsar_consumer_configuration_set_message_listener(
118 pulsar_consumer_configuration_t *consumer_configuration, pulsar_message_listener messageListener,
121PULSAR_PUBLIC
int pulsar_consumer_configuration_has_message_listener(
122 pulsar_consumer_configuration_t *consumer_configuration);
145PULSAR_PUBLIC
void pulsar_consumer_configuration_set_receiver_queue_size(
146 pulsar_consumer_configuration_t *consumer_configuration,
int size);
148PULSAR_PUBLIC
int pulsar_consumer_configuration_get_receiver_queue_size(
149 pulsar_consumer_configuration_t *consumer_configuration);
159PULSAR_PUBLIC
void pulsar_consumer_set_max_total_receiver_queue_size_across_partitions(
160 pulsar_consumer_configuration_t *consumer_configuration,
int maxTotalReceiverQueueSizeAcrossPartitions);
165PULSAR_PUBLIC
int pulsar_consumer_get_max_total_receiver_queue_size_across_partitions(
166 pulsar_consumer_configuration_t *consumer_configuration);
168PULSAR_PUBLIC
void pulsar_consumer_set_consumer_name(pulsar_consumer_configuration_t *consumer_configuration,
169 const char *consumerName);
171PULSAR_PUBLIC
const char *pulsar_consumer_get_consumer_name(
172 pulsar_consumer_configuration_t *consumer_configuration);
181PULSAR_PUBLIC
void pulsar_consumer_set_unacked_messages_timeout_ms(
182 pulsar_consumer_configuration_t *consumer_configuration,
const uint64_t milliSeconds);
187PULSAR_PUBLIC
long pulsar_consumer_get_unacked_messages_timeout_ms(
188 pulsar_consumer_configuration_t *consumer_configuration);
202PULSAR_PUBLIC
void pulsar_configure_set_negative_ack_redelivery_delay_ms(
203 pulsar_consumer_configuration_t *consumer_configuration,
long redeliveryDelayMillis);
211PULSAR_PUBLIC
long pulsar_configure_get_negative_ack_redelivery_delay_ms(
212 pulsar_consumer_configuration_t *consumer_configuration);
223PULSAR_PUBLIC
void pulsar_configure_set_ack_grouping_time_ms(
224 pulsar_consumer_configuration_t *consumer_configuration,
long ackGroupingMillis);
232PULSAR_PUBLIC
long pulsar_configure_get_ack_grouping_time_ms(
233 pulsar_consumer_configuration_t *consumer_configuration);
242PULSAR_PUBLIC
void pulsar_configure_set_ack_grouping_max_size(
243 pulsar_consumer_configuration_t *consumer_configuration,
long maxGroupingSize);
251PULSAR_PUBLIC
long pulsar_configure_get_ack_grouping_max_size(
252 pulsar_consumer_configuration_t *consumer_configuration);
254PULSAR_PUBLIC
int pulsar_consumer_is_encryption_enabled(
255 pulsar_consumer_configuration_t *consumer_configuration);
257PULSAR_PUBLIC
void pulsar_consumer_configuration_set_default_crypto_key_reader(
258 pulsar_consumer_configuration_t *consumer_configuration,
const char *public_key_path,
259 const char *private_key_path);
261PULSAR_PUBLIC pulsar_consumer_crypto_failure_action pulsar_consumer_configuration_get_crypto_failure_action(
262 pulsar_consumer_configuration_t *consumer_configuration);
264PULSAR_PUBLIC
void pulsar_consumer_configuration_set_crypto_failure_action(
265 pulsar_consumer_configuration_t *consumer_configuration,
266 pulsar_consumer_crypto_failure_action cryptoFailureAction);
268PULSAR_PUBLIC
int pulsar_consumer_is_read_compacted(pulsar_consumer_configuration_t *consumer_configuration);
270PULSAR_PUBLIC
void pulsar_consumer_set_read_compacted(pulsar_consumer_configuration_t *consumer_configuration,
273PULSAR_PUBLIC
int pulsar_consumer_get_subscription_initial_position(
274 pulsar_consumer_configuration_t *consumer_configuration);
276PULSAR_PUBLIC
void pulsar_consumer_set_subscription_initial_position(
277 pulsar_consumer_configuration_t *consumer_configuration, initial_position subscriptionInitialPosition);
279PULSAR_PUBLIC
void pulsar_consumer_configuration_set_property(pulsar_consumer_configuration_t *conf,
280 const char *name,
const char *value);
282PULSAR_PUBLIC
void pulsar_consumer_configuration_set_priority_level(
283 pulsar_consumer_configuration_t *consumer_configuration,
int priority_level);
285PULSAR_PUBLIC
int pulsar_consumer_configuration_get_priority_level(
286 pulsar_consumer_configuration_t *consumer_configuration);
288PULSAR_PUBLIC
void pulsar_consumer_configuration_set_max_pending_chunked_message(
289 pulsar_consumer_configuration_t *consumer_configuration,
int max_pending_chunked_message);
291PULSAR_PUBLIC
int pulsar_consumer_configuration_get_max_pending_chunked_message(
292 pulsar_consumer_configuration_t *consumer_configuration);
294PULSAR_PUBLIC
void pulsar_consumer_configuration_set_auto_ack_oldest_chunked_message_on_queue_full(
295 pulsar_consumer_configuration_t *consumer_configuration,
296 int auto_ack_oldest_chunked_message_on_queue_full);
298PULSAR_PUBLIC
int pulsar_consumer_configuration_is_auto_ack_oldest_chunked_message_on_queue_full(
299 pulsar_consumer_configuration_t *consumer_configuration);
301PULSAR_PUBLIC
void pulsar_consumer_configuration_set_start_message_id_inclusive(
302 pulsar_consumer_configuration_t *consumer_configuration,
int start_message_id_inclusive);
304PULSAR_PUBLIC
int pulsar_consumer_configuration_is_start_message_id_inclusive(
305 pulsar_consumer_configuration_t *consumer_configuration);