pulsar-client-cpp
Loading...
Searching...
No Matches
client.h
1
20#pragma once
21
22#include <pulsar/defines.h>
23#include <pulsar/c/client_configuration.h>
24#include <pulsar/c/message.h>
25#include <pulsar/c/message_id.h>
26#include <pulsar/c/producer.h>
27#include <pulsar/c/consumer.h>
28#include <pulsar/c/reader.h>
29#include <pulsar/c/consumer_configuration.h>
30#include <pulsar/c/producer_configuration.h>
31#include <pulsar/c/reader_configuration.h>
32#include <pulsar/c/result.h>
33#include <pulsar/c/string_list.h>
34
35#ifdef __cplusplus
36extern "C" {
37#endif
38
39typedef struct _pulsar_client pulsar_client_t;
40typedef struct _pulsar_producer pulsar_producer_t;
41typedef struct _pulsar_string_list pulsar_string_list_t;
42
43typedef struct _pulsar_client_configuration pulsar_client_configuration_t;
44typedef struct _pulsar_producer_configuration pulsar_producer_configuration_t;
45
46typedef void (*pulsar_create_producer_callback)(pulsar_result result, pulsar_producer_t *producer, void *ctx);
47
48typedef void (*pulsar_subscribe_callback)(pulsar_result result, pulsar_consumer_t *consumer, void *ctx);
49typedef void (*pulsar_reader_callback)(pulsar_result result, pulsar_reader_t *reader, void *ctx);
50typedef void (*pulsar_get_partitions_callback)(pulsar_result result, pulsar_string_list_t *partitions,
51 void *ctx);
52
53typedef void (*pulsar_close_callback)(pulsar_result result, void *ctx);
54
62PULSAR_PUBLIC pulsar_client_t *pulsar_client_create(const char *serviceUrl,
63 const pulsar_client_configuration_t *clientConfiguration);
64
75PULSAR_PUBLIC pulsar_result pulsar_client_create_producer(pulsar_client_t *client, const char *topic,
76 const pulsar_producer_configuration_t *conf,
77 pulsar_producer_t **producer);
78
79PULSAR_PUBLIC void pulsar_client_create_producer_async(pulsar_client_t *client, const char *topic,
80 const pulsar_producer_configuration_t *conf,
81 pulsar_create_producer_callback callback, void *ctx);
82
83PULSAR_PUBLIC pulsar_result pulsar_client_subscribe(pulsar_client_t *client, const char *topic,
84 const char *subscriptionName,
85 const pulsar_consumer_configuration_t *conf,
86 pulsar_consumer_t **consumer);
87
88PULSAR_PUBLIC void pulsar_client_subscribe_async(pulsar_client_t *client, const char *topic,
89 const char *subscriptionName,
90 const pulsar_consumer_configuration_t *conf,
91 pulsar_subscribe_callback callback, void *ctx);
92
93PULSAR_PUBLIC void pulsar_client_subscribe_multi_topics_async(pulsar_client_t *client, const char **topics,
94 int topicsCount, const char *subscriptionName,
95 const pulsar_consumer_configuration_t *conf,
96 pulsar_subscribe_callback callback, void *ctx);
97
98PULSAR_PUBLIC void pulsar_client_subscribe_pattern_async(pulsar_client_t *client, const char *topicPattern,
99 const char *subscriptionName,
100 const pulsar_consumer_configuration_t *conf,
101 pulsar_subscribe_callback callback, void *ctx);
102
132PULSAR_PUBLIC pulsar_result pulsar_client_create_reader(pulsar_client_t *client, const char *topic,
133 const pulsar_message_id_t *startMessageId,
134 pulsar_reader_configuration_t *conf,
135 pulsar_reader_t **reader);
136
137PULSAR_PUBLIC void pulsar_client_create_reader_async(pulsar_client_t *client, const char *topic,
138 const pulsar_message_id_t *startMessageId,
139 pulsar_reader_configuration_t *conf,
140 pulsar_reader_callback callback, void *ctx);
141
142PULSAR_PUBLIC pulsar_result pulsar_client_get_topic_partitions(pulsar_client_t *client, const char *topic,
143 pulsar_string_list_t **partitions);
144
145PULSAR_PUBLIC void pulsar_client_get_topic_partitions_async(pulsar_client_t *client, const char *topic,
146 pulsar_get_partitions_callback callback,
147 void *ctx);
148
149PULSAR_PUBLIC pulsar_result pulsar_client_close(pulsar_client_t *client);
150
151PULSAR_PUBLIC void pulsar_client_close_async(pulsar_client_t *client, pulsar_close_callback callback,
152 void *ctx);
153
154PULSAR_PUBLIC void pulsar_client_free(pulsar_client_t *client);
155
156#ifdef __cplusplus
157}
158#endif