22#include <pulsar/c/message_router.h>
23#include <pulsar/defines.h>
32 pulsar_UseSinglePartition,
33 pulsar_RoundRobinDistribution,
34 pulsar_CustomPartition
35} pulsar_partitions_routing_mode;
39 pulsar_Murmur3_32Hash,
42} pulsar_hashing_scheme;
46 pulsar_CompressionNone = 0,
47 pulsar_CompressionLZ4 = 1,
48 pulsar_CompressionZLib = 2,
49 pulsar_CompressionZSTD = 3,
50 pulsar_CompressionSNAPPY = 4
51} pulsar_compression_type;
69 pulsar_AutoConsume = -3,
70 pulsar_AutoPublish = -4,
79} pulsar_producer_crypto_failure_action;
81typedef struct _pulsar_producer_configuration pulsar_producer_configuration_t;
83typedef struct _pulsar_crypto_key_reader pulsar_crypto_key_reader;
85PULSAR_PUBLIC pulsar_producer_configuration_t *pulsar_producer_configuration_create();
87PULSAR_PUBLIC
void pulsar_producer_configuration_free(pulsar_producer_configuration_t *conf);
89PULSAR_PUBLIC
void pulsar_producer_configuration_set_producer_name(pulsar_producer_configuration_t *conf,
90 const char *producerName);
92PULSAR_PUBLIC
const char *pulsar_producer_configuration_get_producer_name(
93 pulsar_producer_configuration_t *conf);
95PULSAR_PUBLIC
void pulsar_producer_configuration_set_send_timeout(pulsar_producer_configuration_t *conf,
98PULSAR_PUBLIC
int pulsar_producer_configuration_get_send_timeout(pulsar_producer_configuration_t *conf);
100PULSAR_PUBLIC
void pulsar_producer_configuration_set_initial_sequence_id(
101 pulsar_producer_configuration_t *conf, int64_t initialSequenceId);
104pulsar_producer_configuration_get_initial_sequence_id(pulsar_producer_configuration_t *conf);
106PULSAR_PUBLIC
void pulsar_producer_configuration_set_compression_type(
107 pulsar_producer_configuration_t *conf, pulsar_compression_type compressionType);
109PULSAR_PUBLIC pulsar_compression_type
110pulsar_producer_configuration_get_compression_type(pulsar_producer_configuration_t *conf);
112PULSAR_PUBLIC
void pulsar_producer_configuration_set_schema_info(pulsar_producer_configuration_t *conf,
113 pulsar_schema_type schemaType,
114 const char *name,
const char *schema,
115 pulsar_string_map_t *properties);
117PULSAR_PUBLIC
void pulsar_producer_configuration_set_max_pending_messages(
118 pulsar_producer_configuration_t *conf,
int maxPendingMessages);
119PULSAR_PUBLIC
int pulsar_producer_configuration_get_max_pending_messages(
120 pulsar_producer_configuration_t *conf);
130PULSAR_PUBLIC
void pulsar_producer_configuration_set_max_pending_messages_across_partitions(
131 pulsar_producer_configuration_t *conf,
int maxPendingMessagesAcrossPartitions);
137PULSAR_PUBLIC
int pulsar_producer_configuration_get_max_pending_messages_across_partitions(
138 pulsar_producer_configuration_t *conf);
140PULSAR_PUBLIC
void pulsar_producer_configuration_set_partitions_routing_mode(
141 pulsar_producer_configuration_t *conf, pulsar_partitions_routing_mode mode);
143PULSAR_PUBLIC pulsar_partitions_routing_mode
144pulsar_producer_configuration_get_partitions_routing_mode(pulsar_producer_configuration_t *conf);
146PULSAR_PUBLIC
void pulsar_producer_configuration_set_message_router(pulsar_producer_configuration_t *conf,
147 pulsar_message_router router,
void *ctx);
149PULSAR_PUBLIC
void pulsar_producer_configuration_set_hashing_scheme(pulsar_producer_configuration_t *conf,
150 pulsar_hashing_scheme scheme);
152PULSAR_PUBLIC pulsar_hashing_scheme
153pulsar_producer_configuration_get_hashing_scheme(pulsar_producer_configuration_t *conf);
155PULSAR_PUBLIC
void pulsar_producer_configuration_set_lazy_start_partitioned_producers(
156 pulsar_producer_configuration_t *conf,
int useLazyStartPartitionedProducers);
158PULSAR_PUBLIC
int pulsar_producer_configuration_get_lazy_start_partitioned_producers(
159 pulsar_producer_configuration_t *conf);
161PULSAR_PUBLIC
void pulsar_producer_configuration_set_block_if_queue_full(
162 pulsar_producer_configuration_t *conf,
int blockIfQueueFull);
164PULSAR_PUBLIC
int pulsar_producer_configuration_get_block_if_queue_full(
165 pulsar_producer_configuration_t *conf);
168PULSAR_PUBLIC
void pulsar_producer_configuration_set_batching_enabled(pulsar_producer_configuration_t *conf,
169 int batchingEnabled);
171PULSAR_PUBLIC
int pulsar_producer_configuration_get_batching_enabled(pulsar_producer_configuration_t *conf);
173PULSAR_PUBLIC
void pulsar_producer_configuration_set_batching_max_messages(
174 pulsar_producer_configuration_t *conf,
unsigned int batchingMaxMessages);
176PULSAR_PUBLIC
unsigned int pulsar_producer_configuration_get_batching_max_messages(
177 pulsar_producer_configuration_t *conf);
179PULSAR_PUBLIC
void pulsar_producer_configuration_set_batching_max_allowed_size_in_bytes(
180 pulsar_producer_configuration_t *conf,
unsigned long batchingMaxAllowedSizeInBytes);
182PULSAR_PUBLIC
unsigned long pulsar_producer_configuration_get_batching_max_allowed_size_in_bytes(
183 pulsar_producer_configuration_t *conf);
185PULSAR_PUBLIC
void pulsar_producer_configuration_set_batching_max_publish_delay_ms(
186 pulsar_producer_configuration_t *conf,
unsigned long batchingMaxPublishDelayMs);
188PULSAR_PUBLIC
unsigned long pulsar_producer_configuration_get_batching_max_publish_delay_ms(
189 pulsar_producer_configuration_t *conf);
191PULSAR_PUBLIC
void pulsar_producer_configuration_set_property(pulsar_producer_configuration_t *conf,
192 const char *name,
const char *value);
194PULSAR_PUBLIC
int pulsar_producer_is_encryption_enabled(pulsar_producer_configuration_t *conf);
196PULSAR_PUBLIC
void pulsar_producer_configuration_set_default_crypto_key_reader(
197 pulsar_producer_configuration_t *conf,
const char *public_key_path,
const char *private_key_path);
199PULSAR_PUBLIC pulsar_producer_crypto_failure_action
200pulsar_producer_configuration_get_crypto_failure_action(pulsar_producer_configuration_t *conf);
202PULSAR_PUBLIC
void pulsar_producer_configuration_set_crypto_failure_action(
203 pulsar_producer_configuration_t *conf, pulsar_producer_crypto_failure_action cryptoFailureAction);
205PULSAR_PUBLIC
void pulsar_producer_configuration_set_encryption_key(pulsar_producer_configuration_t *conf,
208PULSAR_PUBLIC
void pulsar_producer_configuration_set_chunking_enabled(pulsar_producer_configuration_t *conf,
209 int chunkingEnabled);
211PULSAR_PUBLIC
int pulsar_producer_configuration_is_chunking_enabled(pulsar_producer_configuration_t *conf);