21 #include <pulsar/defines.h>
27 #include <pulsar/c/message.h>
28 #include <pulsar/c/messages.h>
29 #include <pulsar/c/result.h>
32 typedef struct _pulsar_consumer pulsar_consumer_t;
34 typedef void (*pulsar_result_callback)(pulsar_result,
void *);
36 typedef void (*pulsar_receive_callback)(pulsar_result result, pulsar_message_t *msg,
void *ctx);
38 typedef void (*pulsar_batch_receive_callback)(pulsar_result result, pulsar_messages_t *msgs,
void *ctx);
43 PULSAR_PUBLIC
const char *pulsar_consumer_get_topic(pulsar_consumer_t *consumer);
48 PULSAR_PUBLIC
const char *pulsar_consumer_get_subscription_name(pulsar_consumer_t *consumer);
63 PULSAR_PUBLIC pulsar_result pulsar_consumer_unsubscribe(pulsar_consumer_t *consumer);
76 PULSAR_PUBLIC
void pulsar_consumer_unsubscribe_async(pulsar_consumer_t *consumer,
77 pulsar_result_callback callback,
void *ctx);
89 PULSAR_PUBLIC pulsar_result pulsar_consumer_receive(pulsar_consumer_t *consumer, pulsar_message_t **msg);
99 PULSAR_PUBLIC pulsar_result pulsar_consumer_receive_with_timeout(pulsar_consumer_t *consumer,
100 pulsar_message_t **msg,
int timeoutMs);
110 PULSAR_PUBLIC
void pulsar_consumer_receive_async(pulsar_consumer_t *consumer,
111 pulsar_receive_callback callback,
void *ctx);
121 PULSAR_PUBLIC pulsar_result pulsar_consumer_batch_receive(pulsar_consumer_t *consumer,
122 pulsar_messages_t **msgs);
132 PULSAR_PUBLIC
void pulsar_consumer_batch_receive_async(pulsar_consumer_t *consumer,
133 pulsar_batch_receive_callback callback,
void *ctx);
146 PULSAR_PUBLIC pulsar_result pulsar_consumer_acknowledge(pulsar_consumer_t *consumer,
147 pulsar_message_t *message);
149 PULSAR_PUBLIC pulsar_result pulsar_consumer_acknowledge_id(pulsar_consumer_t *consumer,
150 pulsar_message_id_t *messageId);
161 PULSAR_PUBLIC
void pulsar_consumer_acknowledge_async(pulsar_consumer_t *consumer, pulsar_message_t *message,
162 pulsar_result_callback callback,
void *ctx);
164 PULSAR_PUBLIC
void pulsar_consumer_acknowledge_async_id(pulsar_consumer_t *consumer,
165 pulsar_message_id_t *messageId,
166 pulsar_result_callback callback,
void *ctx);
185 PULSAR_PUBLIC pulsar_result pulsar_consumer_acknowledge_cumulative(pulsar_consumer_t *consumer,
186 pulsar_message_t *message);
188 PULSAR_PUBLIC pulsar_result pulsar_consumer_acknowledge_cumulative_id(pulsar_consumer_t *consumer,
189 pulsar_message_id_t *messageId);
201 PULSAR_PUBLIC
void pulsar_consumer_acknowledge_cumulative_async(pulsar_consumer_t *consumer,
202 pulsar_message_t *message,
203 pulsar_result_callback callback,
void *ctx);
205 PULSAR_PUBLIC
void pulsar_consumer_acknowledge_cumulative_async_id(pulsar_consumer_t *consumer,
206 pulsar_message_id_t *messageId,
207 pulsar_result_callback callback,
222 PULSAR_PUBLIC
void pulsar_consumer_negative_acknowledge(pulsar_consumer_t *consumer,
223 pulsar_message_t *message);
237 PULSAR_PUBLIC
void pulsar_consumer_negative_acknowledge_id(pulsar_consumer_t *consumer,
238 pulsar_message_id_t *messageId);
240 PULSAR_PUBLIC pulsar_result pulsar_consumer_close(pulsar_consumer_t *consumer);
242 PULSAR_PUBLIC
void pulsar_consumer_close_async(pulsar_consumer_t *consumer, pulsar_result_callback callback,
245 PULSAR_PUBLIC
void pulsar_consumer_free(pulsar_consumer_t *consumer);
250 PULSAR_PUBLIC pulsar_result pulsar_consumer_pause_message_listener(pulsar_consumer_t *consumer);
256 PULSAR_PUBLIC pulsar_result resume_message_listener(pulsar_consumer_t *consumer);
267 PULSAR_PUBLIC
void pulsar_consumer_redeliver_unacknowledged_messages(pulsar_consumer_t *consumer);
278 PULSAR_PUBLIC
void pulsar_consumer_seek_async(pulsar_consumer_t *consumer, pulsar_message_id_t *messageId,
279 pulsar_result_callback callback,
void *ctx);
289 PULSAR_PUBLIC pulsar_result pulsar_consumer_seek(pulsar_consumer_t *consumer, pulsar_message_id_t *messageId);
300 PULSAR_PUBLIC
void pulsar_consumer_seek_by_timestamp_async(pulsar_consumer_t *consumer, uint64_t timestamp,
301 pulsar_result_callback callback,
void *ctx);
311 PULSAR_PUBLIC pulsar_result pulsar_consumer_seek_by_timestamp(pulsar_consumer_t *consumer,
314 PULSAR_PUBLIC
int pulsar_consumer_is_connected(pulsar_consumer_t *consumer);
316 PULSAR_PUBLIC pulsar_result pulsar_consumer_get_last_message_id(pulsar_consumer_t *consumer,
317 pulsar_message_id_t *messageId);