21#include <pulsar/defines.h>
27#include <pulsar/c/result.h>
28#include <pulsar/c/message.h>
32typedef struct _pulsar_consumer pulsar_consumer_t;
34typedef void (*pulsar_result_callback)(pulsar_result,
void *);
36typedef void (*pulsar_receive_callback)(pulsar_result result, pulsar_message_t *msg,
void *ctx);
41PULSAR_PUBLIC
const char *pulsar_consumer_get_topic(pulsar_consumer_t *consumer);
46PULSAR_PUBLIC
const char *pulsar_consumer_get_subscription_name(pulsar_consumer_t *consumer);
61PULSAR_PUBLIC pulsar_result pulsar_consumer_unsubscribe(pulsar_consumer_t *consumer);
74PULSAR_PUBLIC
void pulsar_consumer_unsubscribe_async(pulsar_consumer_t *consumer,
75 pulsar_result_callback callback,
void *ctx);
87PULSAR_PUBLIC pulsar_result pulsar_consumer_receive(pulsar_consumer_t *consumer, pulsar_message_t **msg);
97PULSAR_PUBLIC pulsar_result pulsar_consumer_receive_with_timeout(pulsar_consumer_t *consumer,
98 pulsar_message_t **msg,
int timeoutMs);
108PULSAR_PUBLIC
void pulsar_consumer_receive_async(pulsar_consumer_t *consumer,
109 pulsar_receive_callback callback,
void *ctx);
122PULSAR_PUBLIC pulsar_result pulsar_consumer_acknowledge(pulsar_consumer_t *consumer,
123 pulsar_message_t *message);
125PULSAR_PUBLIC pulsar_result pulsar_consumer_acknowledge_id(pulsar_consumer_t *consumer,
126 pulsar_message_id_t *messageId);
137PULSAR_PUBLIC
void pulsar_consumer_acknowledge_async(pulsar_consumer_t *consumer, pulsar_message_t *message,
138 pulsar_result_callback callback,
void *ctx);
140PULSAR_PUBLIC
void pulsar_consumer_acknowledge_async_id(pulsar_consumer_t *consumer,
141 pulsar_message_id_t *messageId,
142 pulsar_result_callback callback,
void *ctx);
161PULSAR_PUBLIC pulsar_result pulsar_consumer_acknowledge_cumulative(pulsar_consumer_t *consumer,
162 pulsar_message_t *message);
164PULSAR_PUBLIC pulsar_result pulsar_consumer_acknowledge_cumulative_id(pulsar_consumer_t *consumer,
165 pulsar_message_id_t *messageId);
177PULSAR_PUBLIC
void pulsar_consumer_acknowledge_cumulative_async(pulsar_consumer_t *consumer,
178 pulsar_message_t *message,
179 pulsar_result_callback callback,
void *ctx);
181PULSAR_PUBLIC
void pulsar_consumer_acknowledge_cumulative_async_id(pulsar_consumer_t *consumer,
182 pulsar_message_id_t *messageId,
183 pulsar_result_callback callback,
198PULSAR_PUBLIC
void pulsar_consumer_negative_acknowledge(pulsar_consumer_t *consumer,
199 pulsar_message_t *message);
213PULSAR_PUBLIC
void pulsar_consumer_negative_acknowledge_id(pulsar_consumer_t *consumer,
214 pulsar_message_id_t *messageId);
216PULSAR_PUBLIC pulsar_result pulsar_consumer_close(pulsar_consumer_t *consumer);
218PULSAR_PUBLIC
void pulsar_consumer_close_async(pulsar_consumer_t *consumer, pulsar_result_callback callback,
221PULSAR_PUBLIC
void pulsar_consumer_free(pulsar_consumer_t *consumer);
226PULSAR_PUBLIC pulsar_result pulsar_consumer_pause_message_listener(pulsar_consumer_t *consumer);
232PULSAR_PUBLIC pulsar_result resume_message_listener(pulsar_consumer_t *consumer);
243PULSAR_PUBLIC
void pulsar_consumer_redeliver_unacknowledged_messages(pulsar_consumer_t *consumer);
245PULSAR_PUBLIC
void pulsar_consumer_seek_async(pulsar_consumer_t *consumer, pulsar_message_id_t *messageId,
246 pulsar_result_callback callback,
void *ctx);
248PULSAR_PUBLIC pulsar_result pulsar_consumer_seek(pulsar_consumer_t *consumer, pulsar_message_id_t *messageId);
250PULSAR_PUBLIC
int pulsar_consumer_is_connected(pulsar_consumer_t *consumer);
252PULSAR_PUBLIC pulsar_result pulsar_consumer_get_last_message_id(pulsar_consumer_t *consumer,
253 pulsar_message_id_t *messageId);