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;
84 pulsar_ProducerAccessModeShared = 0,
87 pulsar_ProducerAccessModeExclusive = 1,
89 pulsar_ProducerAccessModeWaitForExclusive = 2,
92 pulsar_ProducerAccessModeExclusiveWithFencing = 3
94 } pulsar_producer_access_mode;
96 typedef struct _pulsar_producer_configuration pulsar_producer_configuration_t;
98 typedef struct _pulsar_crypto_key_reader pulsar_crypto_key_reader;
100 PULSAR_PUBLIC pulsar_producer_configuration_t *pulsar_producer_configuration_create();
102 PULSAR_PUBLIC
void pulsar_producer_configuration_free(pulsar_producer_configuration_t *conf);
104 PULSAR_PUBLIC
void pulsar_producer_configuration_set_producer_name(pulsar_producer_configuration_t *conf,
105 const char *producerName);
107 PULSAR_PUBLIC
const char *pulsar_producer_configuration_get_producer_name(
108 pulsar_producer_configuration_t *conf);
110 PULSAR_PUBLIC
void pulsar_producer_configuration_set_send_timeout(pulsar_producer_configuration_t *conf,
113 PULSAR_PUBLIC
int pulsar_producer_configuration_get_send_timeout(pulsar_producer_configuration_t *conf);
115 PULSAR_PUBLIC
void pulsar_producer_configuration_set_initial_sequence_id(
116 pulsar_producer_configuration_t *conf, int64_t initialSequenceId);
118 PULSAR_PUBLIC int64_t
119 pulsar_producer_configuration_get_initial_sequence_id(pulsar_producer_configuration_t *conf);
121 PULSAR_PUBLIC
void pulsar_producer_configuration_set_compression_type(
122 pulsar_producer_configuration_t *conf, pulsar_compression_type compressionType);
124 PULSAR_PUBLIC pulsar_compression_type
125 pulsar_producer_configuration_get_compression_type(pulsar_producer_configuration_t *conf);
127 PULSAR_PUBLIC
void pulsar_producer_configuration_set_schema_info(pulsar_producer_configuration_t *conf,
128 pulsar_schema_type schemaType,
129 const char *name,
const char *schema,
130 pulsar_string_map_t *properties);
132 PULSAR_PUBLIC
void pulsar_producer_configuration_set_max_pending_messages(
133 pulsar_producer_configuration_t *conf,
int maxPendingMessages);
134 PULSAR_PUBLIC
int pulsar_producer_configuration_get_max_pending_messages(
135 pulsar_producer_configuration_t *conf);
145 PULSAR_PUBLIC
void pulsar_producer_configuration_set_max_pending_messages_across_partitions(
146 pulsar_producer_configuration_t *conf,
int maxPendingMessagesAcrossPartitions);
152 PULSAR_PUBLIC
int pulsar_producer_configuration_get_max_pending_messages_across_partitions(
153 pulsar_producer_configuration_t *conf);
155 PULSAR_PUBLIC
void pulsar_producer_configuration_set_partitions_routing_mode(
156 pulsar_producer_configuration_t *conf, pulsar_partitions_routing_mode mode);
158 PULSAR_PUBLIC pulsar_partitions_routing_mode
159 pulsar_producer_configuration_get_partitions_routing_mode(pulsar_producer_configuration_t *conf);
161 PULSAR_PUBLIC
void pulsar_producer_configuration_set_message_router(pulsar_producer_configuration_t *conf,
162 pulsar_message_router router,
void *ctx);
164 PULSAR_PUBLIC
void pulsar_producer_configuration_set_hashing_scheme(pulsar_producer_configuration_t *conf,
165 pulsar_hashing_scheme scheme);
167 PULSAR_PUBLIC pulsar_hashing_scheme
168 pulsar_producer_configuration_get_hashing_scheme(pulsar_producer_configuration_t *conf);
170 PULSAR_PUBLIC
void pulsar_producer_configuration_set_lazy_start_partitioned_producers(
171 pulsar_producer_configuration_t *conf,
int useLazyStartPartitionedProducers);
173 PULSAR_PUBLIC
int pulsar_producer_configuration_get_lazy_start_partitioned_producers(
174 pulsar_producer_configuration_t *conf);
176 PULSAR_PUBLIC
void pulsar_producer_configuration_set_block_if_queue_full(
177 pulsar_producer_configuration_t *conf,
int blockIfQueueFull);
179 PULSAR_PUBLIC
int pulsar_producer_configuration_get_block_if_queue_full(
180 pulsar_producer_configuration_t *conf);
183 PULSAR_PUBLIC
void pulsar_producer_configuration_set_batching_enabled(pulsar_producer_configuration_t *conf,
184 int batchingEnabled);
186 PULSAR_PUBLIC
int pulsar_producer_configuration_get_batching_enabled(pulsar_producer_configuration_t *conf);
188 PULSAR_PUBLIC
void pulsar_producer_configuration_set_batching_max_messages(
189 pulsar_producer_configuration_t *conf,
unsigned int batchingMaxMessages);
191 PULSAR_PUBLIC
unsigned int pulsar_producer_configuration_get_batching_max_messages(
192 pulsar_producer_configuration_t *conf);
194 PULSAR_PUBLIC
void pulsar_producer_configuration_set_batching_max_allowed_size_in_bytes(
195 pulsar_producer_configuration_t *conf,
unsigned long batchingMaxAllowedSizeInBytes);
197 PULSAR_PUBLIC
unsigned long pulsar_producer_configuration_get_batching_max_allowed_size_in_bytes(
198 pulsar_producer_configuration_t *conf);
200 PULSAR_PUBLIC
void pulsar_producer_configuration_set_batching_max_publish_delay_ms(
201 pulsar_producer_configuration_t *conf,
unsigned long batchingMaxPublishDelayMs);
203 PULSAR_PUBLIC
unsigned long pulsar_producer_configuration_get_batching_max_publish_delay_ms(
204 pulsar_producer_configuration_t *conf);
206 PULSAR_PUBLIC
void pulsar_producer_configuration_set_property(pulsar_producer_configuration_t *conf,
207 const char *name,
const char *value);
209 PULSAR_PUBLIC
int pulsar_producer_is_encryption_enabled(pulsar_producer_configuration_t *conf);
211 PULSAR_PUBLIC
void pulsar_producer_configuration_set_default_crypto_key_reader(
212 pulsar_producer_configuration_t *conf,
const char *public_key_path,
const char *private_key_path);
214 PULSAR_PUBLIC pulsar_producer_crypto_failure_action
215 pulsar_producer_configuration_get_crypto_failure_action(pulsar_producer_configuration_t *conf);
217 PULSAR_PUBLIC
void pulsar_producer_configuration_set_crypto_failure_action(
218 pulsar_producer_configuration_t *conf, pulsar_producer_crypto_failure_action cryptoFailureAction);
220 PULSAR_PUBLIC
void pulsar_producer_configuration_set_encryption_key(pulsar_producer_configuration_t *conf,
223 PULSAR_PUBLIC
void pulsar_producer_configuration_set_chunking_enabled(pulsar_producer_configuration_t *conf,
224 int chunkingEnabled);
226 PULSAR_PUBLIC
int pulsar_producer_configuration_is_chunking_enabled(pulsar_producer_configuration_t *conf);
228 PULSAR_PUBLIC pulsar_producer_access_mode
229 pulsar_producer_configuration_get_access_mode(pulsar_producer_configuration_t *conf);
231 PULSAR_PUBLIC
void pulsar_producer_configuration_set_access_mode(pulsar_producer_configuration_t *conf,
232 pulsar_producer_access_mode accessMode);