pulsar-client-cpp
Loading...
Searching...
No Matches
consumer_configuration.h
1
19#pragma once
20
21#include <pulsar/defines.h>
22#include "consumer.h"
23#include "producer_configuration.h"
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
29typedef struct _pulsar_consumer_configuration pulsar_consumer_configuration_t;
30
31typedef enum {
35 pulsar_ConsumerExclusive,
36
41 pulsar_ConsumerShared,
42
46 pulsar_ConsumerFailover,
47
52 pulsar_ConsumerKeyShared
53} pulsar_consumer_type;
54
55typedef enum {
59 initial_position_latest,
63 initial_position_earliest
64} initial_position;
65
66typedef enum {
67 // This is the default option to fail consume until crypto succeeds
68 pulsar_ConsumerFail,
69 // Message is silently acknowledged and not delivered to the application
70 pulsar_ConsumerDiscard,
71 // Deliver the encrypted message to the application. It's the application's
72 // responsibility to decrypt the message. If message is also compressed,
73 // decompression will fail. If message contain batch messages, client will
74 // not be able to retrieve individual messages in the batch
75 pulsar_ConsumerConsume
76} pulsar_consumer_crypto_failure_action;
77
79typedef void (*pulsar_message_listener)(pulsar_consumer_t *consumer, pulsar_message_t *msg, void *ctx);
80
81PULSAR_PUBLIC pulsar_consumer_configuration_t *pulsar_consumer_configuration_create();
82
83PULSAR_PUBLIC void pulsar_consumer_configuration_free(
84 pulsar_consumer_configuration_t *consumer_configuration);
85
98PULSAR_PUBLIC void pulsar_consumer_configuration_set_consumer_type(
99 pulsar_consumer_configuration_t *consumer_configuration, pulsar_consumer_type consumerType);
100
101PULSAR_PUBLIC pulsar_consumer_type
102pulsar_consumer_configuration_get_consumer_type(pulsar_consumer_configuration_t *consumer_configuration);
103
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);
107
113PULSAR_PUBLIC void pulsar_consumer_configuration_set_message_listener(
114 pulsar_consumer_configuration_t *consumer_configuration, pulsar_message_listener messageListener,
115 void *ctx);
116
117PULSAR_PUBLIC int pulsar_consumer_configuration_has_message_listener(
118 pulsar_consumer_configuration_t *consumer_configuration);
119
141PULSAR_PUBLIC void pulsar_consumer_configuration_set_receiver_queue_size(
142 pulsar_consumer_configuration_t *consumer_configuration, int size);
143
144PULSAR_PUBLIC int pulsar_consumer_configuration_get_receiver_queue_size(
145 pulsar_consumer_configuration_t *consumer_configuration);
146
155PULSAR_PUBLIC void pulsar_consumer_set_max_total_receiver_queue_size_across_partitions(
156 pulsar_consumer_configuration_t *consumer_configuration, int maxTotalReceiverQueueSizeAcrossPartitions);
157
161PULSAR_PUBLIC int pulsar_consumer_get_max_total_receiver_queue_size_across_partitions(
162 pulsar_consumer_configuration_t *consumer_configuration);
163
164PULSAR_PUBLIC void pulsar_consumer_set_consumer_name(pulsar_consumer_configuration_t *consumer_configuration,
165 const char *consumerName);
166
167PULSAR_PUBLIC const char *pulsar_consumer_get_consumer_name(
168 pulsar_consumer_configuration_t *consumer_configuration);
169
177PULSAR_PUBLIC void pulsar_consumer_set_unacked_messages_timeout_ms(
178 pulsar_consumer_configuration_t *consumer_configuration, const uint64_t milliSeconds);
179
183PULSAR_PUBLIC long pulsar_consumer_get_unacked_messages_timeout_ms(
184 pulsar_consumer_configuration_t *consumer_configuration);
185
198PULSAR_PUBLIC void pulsar_configure_set_negative_ack_redelivery_delay_ms(
199 pulsar_consumer_configuration_t *consumer_configuration, long redeliveryDelayMillis);
200
207PULSAR_PUBLIC long pulsar_configure_get_negative_ack_redelivery_delay_ms(
208 pulsar_consumer_configuration_t *consumer_configuration);
209
219PULSAR_PUBLIC void pulsar_configure_set_ack_grouping_time_ms(
220 pulsar_consumer_configuration_t *consumer_configuration, long ackGroupingMillis);
221
228PULSAR_PUBLIC long pulsar_configure_get_ack_grouping_time_ms(
229 pulsar_consumer_configuration_t *consumer_configuration);
230
238PULSAR_PUBLIC void pulsar_configure_set_ack_grouping_max_size(
239 pulsar_consumer_configuration_t *consumer_configuration, long maxGroupingSize);
240
247PULSAR_PUBLIC long pulsar_configure_get_ack_grouping_max_size(
248 pulsar_consumer_configuration_t *consumer_configuration);
249
250PULSAR_PUBLIC int pulsar_consumer_is_encryption_enabled(
251 pulsar_consumer_configuration_t *consumer_configuration);
252
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);
256
257PULSAR_PUBLIC pulsar_consumer_crypto_failure_action pulsar_consumer_configuration_get_crypto_failure_action(
258 pulsar_consumer_configuration_t *consumer_configuration);
259
260PULSAR_PUBLIC void pulsar_consumer_configuration_set_crypto_failure_action(
261 pulsar_consumer_configuration_t *consumer_configuration,
262 pulsar_consumer_crypto_failure_action cryptoFailureAction);
263
264PULSAR_PUBLIC int pulsar_consumer_is_read_compacted(pulsar_consumer_configuration_t *consumer_configuration);
265
266PULSAR_PUBLIC void pulsar_consumer_set_read_compacted(pulsar_consumer_configuration_t *consumer_configuration,
267 int compacted);
268
269PULSAR_PUBLIC int pulsar_consumer_get_subscription_initial_position(
270 pulsar_consumer_configuration_t *consumer_configuration);
271
272PULSAR_PUBLIC void pulsar_consumer_set_subscription_initial_position(
273 pulsar_consumer_configuration_t *consumer_configuration, initial_position subscriptionInitialPosition);
274
275PULSAR_PUBLIC void pulsar_consumer_configuration_set_property(pulsar_consumer_configuration_t *conf,
276 const char *name, const char *value);
277
278// const CryptoKeyReaderPtr getCryptoKeyReader()
279//
280// const;
281// ConsumerConfiguration&
282// setCryptoKeyReader(CryptoKeyReaderPtr
283// cryptoKeyReader);
284//
285// ConsumerCryptoFailureAction getCryptoFailureAction()
286//
287// const;
288// ConsumerConfiguration&
289// setCryptoFailureAction(ConsumerCryptoFailureAction
290// action);
291
292#ifdef __cplusplus
293}
294#endif