21#include <pulsar/defines.h>
27#include <pulsar/c/message.h>
28#include <pulsar/c/result.h>
31typedef struct _pulsar_consumer pulsar_consumer_t;
33typedef void (*pulsar_result_callback)(pulsar_result,
void *);
35typedef void (*pulsar_receive_callback)(pulsar_result result, pulsar_message_t *msg,
void *ctx);
40PULSAR_PUBLIC
const char *pulsar_consumer_get_topic(pulsar_consumer_t *consumer);
45PULSAR_PUBLIC
const char *pulsar_consumer_get_subscription_name(pulsar_consumer_t *consumer);
60PULSAR_PUBLIC pulsar_result pulsar_consumer_unsubscribe(pulsar_consumer_t *consumer);
73PULSAR_PUBLIC
void pulsar_consumer_unsubscribe_async(pulsar_consumer_t *consumer,
74 pulsar_result_callback callback,
void *ctx);
86PULSAR_PUBLIC pulsar_result pulsar_consumer_receive(pulsar_consumer_t *consumer, pulsar_message_t **msg);
96PULSAR_PUBLIC pulsar_result pulsar_consumer_receive_with_timeout(pulsar_consumer_t *consumer,
97 pulsar_message_t **msg,
int timeoutMs);
107PULSAR_PUBLIC
void pulsar_consumer_receive_async(pulsar_consumer_t *consumer,
108 pulsar_receive_callback callback,
void *ctx);
121PULSAR_PUBLIC pulsar_result pulsar_consumer_acknowledge(pulsar_consumer_t *consumer,
122 pulsar_message_t *message);
124PULSAR_PUBLIC pulsar_result pulsar_consumer_acknowledge_id(pulsar_consumer_t *consumer,
125 pulsar_message_id_t *messageId);
136PULSAR_PUBLIC
void pulsar_consumer_acknowledge_async(pulsar_consumer_t *consumer, pulsar_message_t *message,
137 pulsar_result_callback callback,
void *ctx);
139PULSAR_PUBLIC
void pulsar_consumer_acknowledge_async_id(pulsar_consumer_t *consumer,
140 pulsar_message_id_t *messageId,
141 pulsar_result_callback callback,
void *ctx);
160PULSAR_PUBLIC pulsar_result pulsar_consumer_acknowledge_cumulative(pulsar_consumer_t *consumer,
161 pulsar_message_t *message);
163PULSAR_PUBLIC pulsar_result pulsar_consumer_acknowledge_cumulative_id(pulsar_consumer_t *consumer,
164 pulsar_message_id_t *messageId);
176PULSAR_PUBLIC
void pulsar_consumer_acknowledge_cumulative_async(pulsar_consumer_t *consumer,
177 pulsar_message_t *message,
178 pulsar_result_callback callback,
void *ctx);
180PULSAR_PUBLIC
void pulsar_consumer_acknowledge_cumulative_async_id(pulsar_consumer_t *consumer,
181 pulsar_message_id_t *messageId,
182 pulsar_result_callback callback,
197PULSAR_PUBLIC
void pulsar_consumer_negative_acknowledge(pulsar_consumer_t *consumer,
198 pulsar_message_t *message);
212PULSAR_PUBLIC
void pulsar_consumer_negative_acknowledge_id(pulsar_consumer_t *consumer,
213 pulsar_message_id_t *messageId);
215PULSAR_PUBLIC pulsar_result pulsar_consumer_close(pulsar_consumer_t *consumer);
217PULSAR_PUBLIC
void pulsar_consumer_close_async(pulsar_consumer_t *consumer, pulsar_result_callback callback,
220PULSAR_PUBLIC
void pulsar_consumer_free(pulsar_consumer_t *consumer);
225PULSAR_PUBLIC pulsar_result pulsar_consumer_pause_message_listener(pulsar_consumer_t *consumer);
231PULSAR_PUBLIC pulsar_result resume_message_listener(pulsar_consumer_t *consumer);
242PULSAR_PUBLIC
void pulsar_consumer_redeliver_unacknowledged_messages(pulsar_consumer_t *consumer);
253PULSAR_PUBLIC
void pulsar_consumer_seek_async(pulsar_consumer_t *consumer, pulsar_message_id_t *messageId,
254 pulsar_result_callback callback,
void *ctx);
264PULSAR_PUBLIC pulsar_result pulsar_consumer_seek(pulsar_consumer_t *consumer, pulsar_message_id_t *messageId);
275PULSAR_PUBLIC
void pulsar_consumer_seek_by_timestamp_async(pulsar_consumer_t *consumer, uint64_t timestamp,
276 pulsar_result_callback callback,
void *ctx);
286PULSAR_PUBLIC pulsar_result pulsar_consumer_seek_by_timestamp(pulsar_consumer_t *consumer,
289PULSAR_PUBLIC
int pulsar_consumer_is_connected(pulsar_consumer_t *consumer);
291PULSAR_PUBLIC pulsar_result pulsar_consumer_get_last_message_id(pulsar_consumer_t *consumer,
292 pulsar_message_id_t *messageId);