pulsar-client-cpp
client.h
1 
20 #pragma once
21 
22 #include <pulsar/c/client_configuration.h>
23 #include <pulsar/c/consumer.h>
24 #include <pulsar/c/consumer_configuration.h>
25 #include <pulsar/c/message.h>
26 #include <pulsar/c/message_id.h>
27 #include <pulsar/c/producer.h>
28 #include <pulsar/c/producer_configuration.h>
29 #include <pulsar/c/reader.h>
30 #include <pulsar/c/reader_configuration.h>
31 #include <pulsar/c/result.h>
32 #include <pulsar/c/string_list.h>
33 #include <pulsar/defines.h>
34 
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38 
39 typedef struct _pulsar_client pulsar_client_t;
40 typedef struct _pulsar_producer pulsar_producer_t;
41 typedef struct _pulsar_string_list pulsar_string_list_t;
42 
43 typedef struct _pulsar_client_configuration pulsar_client_configuration_t;
44 typedef struct _pulsar_producer_configuration pulsar_producer_configuration_t;
45 
46 typedef void (*pulsar_create_producer_callback)(pulsar_result result, pulsar_producer_t *producer, void *ctx);
47 
48 typedef void (*pulsar_subscribe_callback)(pulsar_result result, pulsar_consumer_t *consumer, void *ctx);
49 typedef void (*pulsar_reader_callback)(pulsar_result result, pulsar_reader_t *reader, void *ctx);
50 typedef void (*pulsar_get_partitions_callback)(pulsar_result result, pulsar_string_list_t *partitions,
51  void *ctx);
52 
53 typedef void (*pulsar_close_callback)(pulsar_result result, void *ctx);
54 
62 PULSAR_PUBLIC pulsar_client_t *pulsar_client_create(const char *serviceUrl,
63  const pulsar_client_configuration_t *clientConfiguration);
64 
75 PULSAR_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 
79 PULSAR_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 
83 PULSAR_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 
88 PULSAR_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 
105 PULSAR_PUBLIC pulsar_result pulsar_client_subscribe_multi_topics(pulsar_client_t *client, const char **topics,
106  int topicsCount,
107  const char *subscriptionName,
108  const pulsar_consumer_configuration_t *conf,
109  pulsar_consumer_t **consumer);
110 
111 PULSAR_PUBLIC void pulsar_client_subscribe_multi_topics_async(pulsar_client_t *client, const char **topics,
112  int topicsCount, const char *subscriptionName,
113  const pulsar_consumer_configuration_t *conf,
114  pulsar_subscribe_callback callback, void *ctx);
115 
127 PULSAR_PUBLIC pulsar_result pulsar_client_subscribe_pattern(pulsar_client_t *client, const char *topicPattern,
128  const char *subscriptionName,
129  const pulsar_consumer_configuration_t *conf,
130  pulsar_consumer_t **consumer);
131 
132 PULSAR_PUBLIC void pulsar_client_subscribe_pattern_async(pulsar_client_t *client, const char *topicPattern,
133  const char *subscriptionName,
134  const pulsar_consumer_configuration_t *conf,
135  pulsar_subscribe_callback callback, void *ctx);
136 
166 PULSAR_PUBLIC pulsar_result pulsar_client_create_reader(pulsar_client_t *client, const char *topic,
167  const pulsar_message_id_t *startMessageId,
168  pulsar_reader_configuration_t *conf,
169  pulsar_reader_t **reader);
170 
171 PULSAR_PUBLIC void pulsar_client_create_reader_async(pulsar_client_t *client, const char *topic,
172  const pulsar_message_id_t *startMessageId,
173  pulsar_reader_configuration_t *conf,
174  pulsar_reader_callback callback, void *ctx);
175 
176 PULSAR_PUBLIC pulsar_result pulsar_client_get_topic_partitions(pulsar_client_t *client, const char *topic,
177  pulsar_string_list_t **partitions);
178 
179 PULSAR_PUBLIC void pulsar_client_get_topic_partitions_async(pulsar_client_t *client, const char *topic,
180  pulsar_get_partitions_callback callback,
181  void *ctx);
182 
183 PULSAR_PUBLIC pulsar_result pulsar_client_close(pulsar_client_t *client);
184 
185 PULSAR_PUBLIC void pulsar_client_close_async(pulsar_client_t *client, pulsar_close_callback callback,
186  void *ctx);
187 
188 PULSAR_PUBLIC void pulsar_client_free(pulsar_client_t *client);
189 
190 #ifdef __cplusplus
191 }
192 #endif