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
32{
36 pulsar_ConsumerExclusive,
37
42 pulsar_ConsumerShared,
43
47 pulsar_ConsumerFailover,
48
53 pulsar_ConsumerKeyShared
54} pulsar_consumer_type;
55
56typedef enum
57{
61 initial_position_latest,
65 initial_position_earliest
66} initial_position;
67
68typedef enum
69{
70 // This is the default option to fail consume until crypto succeeds
71 pulsar_ConsumerFail,
72 // Message is silently acknowledged and not delivered to the application
73 pulsar_ConsumerDiscard,
74 // Deliver the encrypted message to the application. It's the application's
75 // responsibility to decrypt the message. If message is also compressed,
76 // decompression will fail. If message contain batch messages, client will
77 // not be able to retrieve individual messages in the batch
78 pulsar_ConsumerConsume
79} pulsar_consumer_crypto_failure_action;
80
82typedef void (*pulsar_message_listener)(pulsar_consumer_t *consumer, pulsar_message_t *msg, void *ctx);
83
84PULSAR_PUBLIC pulsar_consumer_configuration_t *pulsar_consumer_configuration_create();
85
86PULSAR_PUBLIC void pulsar_consumer_configuration_free(
87 pulsar_consumer_configuration_t *consumer_configuration);
88
101PULSAR_PUBLIC void pulsar_consumer_configuration_set_consumer_type(
102 pulsar_consumer_configuration_t *consumer_configuration, pulsar_consumer_type consumerType);
103
104PULSAR_PUBLIC pulsar_consumer_type
105pulsar_consumer_configuration_get_consumer_type(pulsar_consumer_configuration_t *consumer_configuration);
106
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);
110
116PULSAR_PUBLIC void pulsar_consumer_configuration_set_message_listener(
117 pulsar_consumer_configuration_t *consumer_configuration, pulsar_message_listener messageListener,
118 void *ctx);
119
120PULSAR_PUBLIC int pulsar_consumer_configuration_has_message_listener(
121 pulsar_consumer_configuration_t *consumer_configuration);
122
144PULSAR_PUBLIC void pulsar_consumer_configuration_set_receiver_queue_size(
145 pulsar_consumer_configuration_t *consumer_configuration, int size);
146
147PULSAR_PUBLIC int pulsar_consumer_configuration_get_receiver_queue_size(
148 pulsar_consumer_configuration_t *consumer_configuration);
149
158PULSAR_PUBLIC void pulsar_consumer_set_max_total_receiver_queue_size_across_partitions(
159 pulsar_consumer_configuration_t *consumer_configuration, int maxTotalReceiverQueueSizeAcrossPartitions);
160
164PULSAR_PUBLIC int pulsar_consumer_get_max_total_receiver_queue_size_across_partitions(
165 pulsar_consumer_configuration_t *consumer_configuration);
166
167PULSAR_PUBLIC void pulsar_consumer_set_consumer_name(pulsar_consumer_configuration_t *consumer_configuration,
168 const char *consumerName);
169
170PULSAR_PUBLIC const char *pulsar_consumer_get_consumer_name(
171 pulsar_consumer_configuration_t *consumer_configuration);
172
180PULSAR_PUBLIC void pulsar_consumer_set_unacked_messages_timeout_ms(
181 pulsar_consumer_configuration_t *consumer_configuration, const uint64_t milliSeconds);
182
186PULSAR_PUBLIC long pulsar_consumer_get_unacked_messages_timeout_ms(
187 pulsar_consumer_configuration_t *consumer_configuration);
188
201PULSAR_PUBLIC void pulsar_configure_set_negative_ack_redelivery_delay_ms(
202 pulsar_consumer_configuration_t *consumer_configuration, long redeliveryDelayMillis);
203
210PULSAR_PUBLIC long pulsar_configure_get_negative_ack_redelivery_delay_ms(
211 pulsar_consumer_configuration_t *consumer_configuration);
212
222PULSAR_PUBLIC void pulsar_configure_set_ack_grouping_time_ms(
223 pulsar_consumer_configuration_t *consumer_configuration, long ackGroupingMillis);
224
231PULSAR_PUBLIC long pulsar_configure_get_ack_grouping_time_ms(
232 pulsar_consumer_configuration_t *consumer_configuration);
233
241PULSAR_PUBLIC void pulsar_configure_set_ack_grouping_max_size(
242 pulsar_consumer_configuration_t *consumer_configuration, long maxGroupingSize);
243
250PULSAR_PUBLIC long pulsar_configure_get_ack_grouping_max_size(
251 pulsar_consumer_configuration_t *consumer_configuration);
252
253PULSAR_PUBLIC int pulsar_consumer_is_encryption_enabled(
254 pulsar_consumer_configuration_t *consumer_configuration);
255
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);
259
260PULSAR_PUBLIC pulsar_consumer_crypto_failure_action pulsar_consumer_configuration_get_crypto_failure_action(
261 pulsar_consumer_configuration_t *consumer_configuration);
262
263PULSAR_PUBLIC void pulsar_consumer_configuration_set_crypto_failure_action(
264 pulsar_consumer_configuration_t *consumer_configuration,
265 pulsar_consumer_crypto_failure_action cryptoFailureAction);
266
267PULSAR_PUBLIC int pulsar_consumer_is_read_compacted(pulsar_consumer_configuration_t *consumer_configuration);
268
269PULSAR_PUBLIC void pulsar_consumer_set_read_compacted(pulsar_consumer_configuration_t *consumer_configuration,
270 int compacted);
271
272PULSAR_PUBLIC int pulsar_consumer_get_subscription_initial_position(
273 pulsar_consumer_configuration_t *consumer_configuration);
274
275PULSAR_PUBLIC void pulsar_consumer_set_subscription_initial_position(
276 pulsar_consumer_configuration_t *consumer_configuration, initial_position subscriptionInitialPosition);
277
278PULSAR_PUBLIC void pulsar_consumer_configuration_set_property(pulsar_consumer_configuration_t *conf,
279 const char *name, const char *value);
280
281PULSAR_PUBLIC void pulsar_consumer_configuration_set_priority_level(
282 pulsar_consumer_configuration_t *consumer_configuration, int priority_level);
283
284PULSAR_PUBLIC int pulsar_consumer_configuration_get_priority_level(
285 pulsar_consumer_configuration_t *consumer_configuration);
286
287PULSAR_PUBLIC void pulsar_consumer_configuration_set_max_pending_chunked_message(
288 pulsar_consumer_configuration_t *consumer_configuration, int max_pending_chunked_message);
289
290PULSAR_PUBLIC int pulsar_consumer_configuration_get_max_pending_chunked_message(
291 pulsar_consumer_configuration_t *consumer_configuration);
292
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);
296
297PULSAR_PUBLIC int pulsar_consumer_configuration_is_auto_ack_oldest_chunked_message_on_queue_full(
298 pulsar_consumer_configuration_t *consumer_configuration);
299
300PULSAR_PUBLIC void pulsar_consumer_configuration_set_start_message_id_inclusive(
301 pulsar_consumer_configuration_t *consumer_configuration, int start_message_id_inclusive);
302
303PULSAR_PUBLIC int pulsar_consumer_configuration_is_start_message_id_inclusive(
304 pulsar_consumer_configuration_t *consumer_configuration);
305
306// const CryptoKeyReaderPtr getCryptoKeyReader()
307//
308// const;
309// ConsumerConfiguration&
310// setCryptoKeyReader(CryptoKeyReaderPtr
311// cryptoKeyReader);
312//
313// ConsumerCryptoFailureAction getCryptoFailureAction()
314//
315// const;
316// ConsumerConfiguration&
317// setCryptoFailureAction(ConsumerCryptoFailureAction
318// action);
319
320#ifdef __cplusplus
321}
322#endif