21#include <pulsar/defines.h>
23#include "producer_configuration.h"
29typedef struct _pulsar_consumer_configuration pulsar_consumer_configuration_t;
36 pulsar_ConsumerExclusive,
42 pulsar_ConsumerShared,
47 pulsar_ConsumerFailover,
53 pulsar_ConsumerKeyShared
54} pulsar_consumer_type;
61 initial_position_latest,
65 initial_position_earliest
73 pulsar_ConsumerDiscard,
78 pulsar_ConsumerConsume
79} pulsar_consumer_crypto_failure_action;
82typedef void (*pulsar_message_listener)(pulsar_consumer_t *consumer, pulsar_message_t *msg,
void *ctx);
84PULSAR_PUBLIC pulsar_consumer_configuration_t *pulsar_consumer_configuration_create();
86PULSAR_PUBLIC
void pulsar_consumer_configuration_free(
87 pulsar_consumer_configuration_t *consumer_configuration);
101PULSAR_PUBLIC
void pulsar_consumer_configuration_set_consumer_type(
102 pulsar_consumer_configuration_t *consumer_configuration, pulsar_consumer_type consumerType);
104PULSAR_PUBLIC pulsar_consumer_type
105pulsar_consumer_configuration_get_consumer_type(pulsar_consumer_configuration_t *consumer_configuration);
107PULSAR_PUBLIC
void pulsar_consumer_configuration_set_schema_info(
108 pulsar_consumer_configuration_t *consumer_configuration, pulsar_schema_type schemaType,
const char *name,
109 const char *schema, pulsar_string_map_t *properties);
116PULSAR_PUBLIC
void pulsar_consumer_configuration_set_message_listener(
117 pulsar_consumer_configuration_t *consumer_configuration, pulsar_message_listener messageListener,
120PULSAR_PUBLIC
int pulsar_consumer_configuration_has_message_listener(
121 pulsar_consumer_configuration_t *consumer_configuration);
144PULSAR_PUBLIC
void pulsar_consumer_configuration_set_receiver_queue_size(
145 pulsar_consumer_configuration_t *consumer_configuration,
int size);
147PULSAR_PUBLIC
int pulsar_consumer_configuration_get_receiver_queue_size(
148 pulsar_consumer_configuration_t *consumer_configuration);
158PULSAR_PUBLIC
void pulsar_consumer_set_max_total_receiver_queue_size_across_partitions(
159 pulsar_consumer_configuration_t *consumer_configuration,
int maxTotalReceiverQueueSizeAcrossPartitions);
164PULSAR_PUBLIC
int pulsar_consumer_get_max_total_receiver_queue_size_across_partitions(
165 pulsar_consumer_configuration_t *consumer_configuration);
167PULSAR_PUBLIC
void pulsar_consumer_set_consumer_name(pulsar_consumer_configuration_t *consumer_configuration,
168 const char *consumerName);
170PULSAR_PUBLIC
const char *pulsar_consumer_get_consumer_name(
171 pulsar_consumer_configuration_t *consumer_configuration);
180PULSAR_PUBLIC
void pulsar_consumer_set_unacked_messages_timeout_ms(
181 pulsar_consumer_configuration_t *consumer_configuration,
const uint64_t milliSeconds);
186PULSAR_PUBLIC
long pulsar_consumer_get_unacked_messages_timeout_ms(
187 pulsar_consumer_configuration_t *consumer_configuration);
201PULSAR_PUBLIC
void pulsar_configure_set_negative_ack_redelivery_delay_ms(
202 pulsar_consumer_configuration_t *consumer_configuration,
long redeliveryDelayMillis);
210PULSAR_PUBLIC
long pulsar_configure_get_negative_ack_redelivery_delay_ms(
211 pulsar_consumer_configuration_t *consumer_configuration);
222PULSAR_PUBLIC
void pulsar_configure_set_ack_grouping_time_ms(
223 pulsar_consumer_configuration_t *consumer_configuration,
long ackGroupingMillis);
231PULSAR_PUBLIC
long pulsar_configure_get_ack_grouping_time_ms(
232 pulsar_consumer_configuration_t *consumer_configuration);
241PULSAR_PUBLIC
void pulsar_configure_set_ack_grouping_max_size(
242 pulsar_consumer_configuration_t *consumer_configuration,
long maxGroupingSize);
250PULSAR_PUBLIC
long pulsar_configure_get_ack_grouping_max_size(
251 pulsar_consumer_configuration_t *consumer_configuration);
253PULSAR_PUBLIC
int pulsar_consumer_is_encryption_enabled(
254 pulsar_consumer_configuration_t *consumer_configuration);
256PULSAR_PUBLIC
void pulsar_consumer_configuration_set_default_crypto_key_reader(
257 pulsar_consumer_configuration_t *consumer_configuration,
const char *public_key_path,
258 const char *private_key_path);
260PULSAR_PUBLIC pulsar_consumer_crypto_failure_action pulsar_consumer_configuration_get_crypto_failure_action(
261 pulsar_consumer_configuration_t *consumer_configuration);
263PULSAR_PUBLIC
void pulsar_consumer_configuration_set_crypto_failure_action(
264 pulsar_consumer_configuration_t *consumer_configuration,
265 pulsar_consumer_crypto_failure_action cryptoFailureAction);
267PULSAR_PUBLIC
int pulsar_consumer_is_read_compacted(pulsar_consumer_configuration_t *consumer_configuration);
269PULSAR_PUBLIC
void pulsar_consumer_set_read_compacted(pulsar_consumer_configuration_t *consumer_configuration,
272PULSAR_PUBLIC
int pulsar_consumer_get_subscription_initial_position(
273 pulsar_consumer_configuration_t *consumer_configuration);
275PULSAR_PUBLIC
void pulsar_consumer_set_subscription_initial_position(
276 pulsar_consumer_configuration_t *consumer_configuration, initial_position subscriptionInitialPosition);
278PULSAR_PUBLIC
void pulsar_consumer_configuration_set_property(pulsar_consumer_configuration_t *conf,
279 const char *name,
const char *value);
281PULSAR_PUBLIC
void pulsar_consumer_configuration_set_priority_level(
282 pulsar_consumer_configuration_t *consumer_configuration,
int priority_level);
284PULSAR_PUBLIC
int pulsar_consumer_configuration_get_priority_level(
285 pulsar_consumer_configuration_t *consumer_configuration);
287PULSAR_PUBLIC
void pulsar_consumer_configuration_set_max_pending_chunked_message(
288 pulsar_consumer_configuration_t *consumer_configuration,
int max_pending_chunked_message);
290PULSAR_PUBLIC
int pulsar_consumer_configuration_get_max_pending_chunked_message(
291 pulsar_consumer_configuration_t *consumer_configuration);
293PULSAR_PUBLIC
void pulsar_consumer_configuration_set_auto_ack_oldest_chunked_message_on_queue_full(
294 pulsar_consumer_configuration_t *consumer_configuration,
295 int auto_ack_oldest_chunked_message_on_queue_full);
297PULSAR_PUBLIC
int pulsar_consumer_configuration_is_auto_ack_oldest_chunked_message_on_queue_full(
298 pulsar_consumer_configuration_t *consumer_configuration);
300PULSAR_PUBLIC
void pulsar_consumer_configuration_set_start_message_id_inclusive(
301 pulsar_consumer_configuration_t *consumer_configuration,
int start_message_id_inclusive);
303PULSAR_PUBLIC
int pulsar_consumer_configuration_is_start_message_id_inclusive(
304 pulsar_consumer_configuration_t *consumer_configuration);