pulsar-client-cpp
Loading...
Searching...
No Matches
consumer_configuration.h
1
19#pragma once
20
21#include <pulsar/defines.h>
22
23#include "consumer.h"
24#include "producer_configuration.h"
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
30typedef struct _pulsar_consumer_configuration pulsar_consumer_configuration_t;
31
32typedef enum
33{
37 pulsar_ConsumerExclusive,
38
43 pulsar_ConsumerShared,
44
48 pulsar_ConsumerFailover,
49
54 pulsar_ConsumerKeyShared
55} pulsar_consumer_type;
56
57typedef enum
58{
62 initial_position_latest,
66 initial_position_earliest
67} initial_position;
68
69typedef enum
70{
71 // This is the default option to fail consume until crypto succeeds
72 pulsar_ConsumerFail,
73 // Message is silently acknowledged and not delivered to the application
74 pulsar_ConsumerDiscard,
75 // Deliver the encrypted message to the application. It's the application's
76 // responsibility to decrypt the message. If message is also compressed,
77 // decompression will fail. If message contain batch messages, client will
78 // not be able to retrieve individual messages in the batch
79 pulsar_ConsumerConsume
80} pulsar_consumer_crypto_failure_action;
81
83typedef void (*pulsar_message_listener)(pulsar_consumer_t *consumer, pulsar_message_t *msg, void *ctx);
84
85PULSAR_PUBLIC pulsar_consumer_configuration_t *pulsar_consumer_configuration_create();
86
87PULSAR_PUBLIC void pulsar_consumer_configuration_free(
88 pulsar_consumer_configuration_t *consumer_configuration);
89
102PULSAR_PUBLIC void pulsar_consumer_configuration_set_consumer_type(
103 pulsar_consumer_configuration_t *consumer_configuration, pulsar_consumer_type consumerType);
104
105PULSAR_PUBLIC pulsar_consumer_type
106pulsar_consumer_configuration_get_consumer_type(pulsar_consumer_configuration_t *consumer_configuration);
107
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);
111
117PULSAR_PUBLIC void pulsar_consumer_configuration_set_message_listener(
118 pulsar_consumer_configuration_t *consumer_configuration, pulsar_message_listener messageListener,
119 void *ctx);
120
121PULSAR_PUBLIC int pulsar_consumer_configuration_has_message_listener(
122 pulsar_consumer_configuration_t *consumer_configuration);
123
145PULSAR_PUBLIC void pulsar_consumer_configuration_set_receiver_queue_size(
146 pulsar_consumer_configuration_t *consumer_configuration, int size);
147
148PULSAR_PUBLIC int pulsar_consumer_configuration_get_receiver_queue_size(
149 pulsar_consumer_configuration_t *consumer_configuration);
150
159PULSAR_PUBLIC void pulsar_consumer_set_max_total_receiver_queue_size_across_partitions(
160 pulsar_consumer_configuration_t *consumer_configuration, int maxTotalReceiverQueueSizeAcrossPartitions);
161
165PULSAR_PUBLIC int pulsar_consumer_get_max_total_receiver_queue_size_across_partitions(
166 pulsar_consumer_configuration_t *consumer_configuration);
167
168PULSAR_PUBLIC void pulsar_consumer_set_consumer_name(pulsar_consumer_configuration_t *consumer_configuration,
169 const char *consumerName);
170
171PULSAR_PUBLIC const char *pulsar_consumer_get_consumer_name(
172 pulsar_consumer_configuration_t *consumer_configuration);
173
181PULSAR_PUBLIC void pulsar_consumer_set_unacked_messages_timeout_ms(
182 pulsar_consumer_configuration_t *consumer_configuration, const uint64_t milliSeconds);
183
187PULSAR_PUBLIC long pulsar_consumer_get_unacked_messages_timeout_ms(
188 pulsar_consumer_configuration_t *consumer_configuration);
189
202PULSAR_PUBLIC void pulsar_configure_set_negative_ack_redelivery_delay_ms(
203 pulsar_consumer_configuration_t *consumer_configuration, long redeliveryDelayMillis);
204
211PULSAR_PUBLIC long pulsar_configure_get_negative_ack_redelivery_delay_ms(
212 pulsar_consumer_configuration_t *consumer_configuration);
213
223PULSAR_PUBLIC void pulsar_configure_set_ack_grouping_time_ms(
224 pulsar_consumer_configuration_t *consumer_configuration, long ackGroupingMillis);
225
232PULSAR_PUBLIC long pulsar_configure_get_ack_grouping_time_ms(
233 pulsar_consumer_configuration_t *consumer_configuration);
234
242PULSAR_PUBLIC void pulsar_configure_set_ack_grouping_max_size(
243 pulsar_consumer_configuration_t *consumer_configuration, long maxGroupingSize);
244
251PULSAR_PUBLIC long pulsar_configure_get_ack_grouping_max_size(
252 pulsar_consumer_configuration_t *consumer_configuration);
253
254PULSAR_PUBLIC int pulsar_consumer_is_encryption_enabled(
255 pulsar_consumer_configuration_t *consumer_configuration);
256
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);
260
261PULSAR_PUBLIC pulsar_consumer_crypto_failure_action pulsar_consumer_configuration_get_crypto_failure_action(
262 pulsar_consumer_configuration_t *consumer_configuration);
263
264PULSAR_PUBLIC void pulsar_consumer_configuration_set_crypto_failure_action(
265 pulsar_consumer_configuration_t *consumer_configuration,
266 pulsar_consumer_crypto_failure_action cryptoFailureAction);
267
268PULSAR_PUBLIC int pulsar_consumer_is_read_compacted(pulsar_consumer_configuration_t *consumer_configuration);
269
270PULSAR_PUBLIC void pulsar_consumer_set_read_compacted(pulsar_consumer_configuration_t *consumer_configuration,
271 int compacted);
272
273PULSAR_PUBLIC int pulsar_consumer_get_subscription_initial_position(
274 pulsar_consumer_configuration_t *consumer_configuration);
275
276PULSAR_PUBLIC void pulsar_consumer_set_subscription_initial_position(
277 pulsar_consumer_configuration_t *consumer_configuration, initial_position subscriptionInitialPosition);
278
279PULSAR_PUBLIC void pulsar_consumer_configuration_set_property(pulsar_consumer_configuration_t *conf,
280 const char *name, const char *value);
281
282PULSAR_PUBLIC void pulsar_consumer_configuration_set_priority_level(
283 pulsar_consumer_configuration_t *consumer_configuration, int priority_level);
284
285PULSAR_PUBLIC int pulsar_consumer_configuration_get_priority_level(
286 pulsar_consumer_configuration_t *consumer_configuration);
287
288PULSAR_PUBLIC void pulsar_consumer_configuration_set_max_pending_chunked_message(
289 pulsar_consumer_configuration_t *consumer_configuration, int max_pending_chunked_message);
290
291PULSAR_PUBLIC int pulsar_consumer_configuration_get_max_pending_chunked_message(
292 pulsar_consumer_configuration_t *consumer_configuration);
293
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);
297
298PULSAR_PUBLIC int pulsar_consumer_configuration_is_auto_ack_oldest_chunked_message_on_queue_full(
299 pulsar_consumer_configuration_t *consumer_configuration);
300
301PULSAR_PUBLIC void pulsar_consumer_configuration_set_start_message_id_inclusive(
302 pulsar_consumer_configuration_t *consumer_configuration, int start_message_id_inclusive);
303
304PULSAR_PUBLIC int pulsar_consumer_configuration_is_start_message_id_inclusive(
305 pulsar_consumer_configuration_t *consumer_configuration);
306
307// const CryptoKeyReaderPtr getCryptoKeyReader()
308//
309// const;
310// ConsumerConfiguration&
311// setCryptoKeyReader(CryptoKeyReaderPtr
312// cryptoKeyReader);
313//
314// ConsumerCryptoFailureAction getCryptoFailureAction()
315//
316// const;
317// ConsumerConfiguration&
318// setCryptoFailureAction(ConsumerCryptoFailureAction
319// action);
320
321#ifdef __cplusplus
322}
323#endif