pulsar-client-cpp
Loading...
Searching...
No Matches
Client.h
1
19#ifndef PULSAR_CLIENT_HPP_
20#define PULSAR_CLIENT_HPP_
21
22#include <pulsar/defines.h>
23#include <pulsar/Consumer.h>
24#include <pulsar/Producer.h>
25#include <pulsar/Reader.h>
26#include <pulsar/Result.h>
27#include <pulsar/Message.h>
28#include <pulsar/MessageBuilder.h>
29#include <pulsar/ClientConfiguration.h>
30#include <pulsar/Schema.h>
31#include <pulsar/ConsoleLoggerFactory.h>
32#include <pulsar/FileLoggerFactory.h>
33#include <string>
34
35namespace pulsar {
36typedef std::function<void(Result, Producer)> CreateProducerCallback;
37typedef std::function<void(Result, Consumer)> SubscribeCallback;
38typedef std::function<void(Result, Reader)> ReaderCallback;
39typedef std::function<void(Result, const std::vector<std::string>&)> GetPartitionsCallback;
40typedef std::function<void(Result)> CloseCallback;
41
42class ClientImpl;
43class PulsarFriend;
44class PulsarWrapper;
45
46class PULSAR_PUBLIC Client {
47 public:
55 Client(const std::string& serviceUrl);
56
66 Client(const std::string& serviceUrl, const ClientConfiguration& clientConfiguration);
67
78 Result createProducer(const std::string& topic, Producer& producer);
79
91 Result createProducer(const std::string& topic, const ProducerConfiguration& conf, Producer& producer);
92
101 void createProducerAsync(const std::string& topic, CreateProducerCallback callback);
102
110 void createProducerAsync(const std::string& topic, ProducerConfiguration conf,
111 CreateProducerCallback callback);
112
121 Result subscribe(const std::string& topic, const std::string& subscriptionName, Consumer& consumer);
122
131 Result subscribe(const std::string& topic, const std::string& subscriptionName,
132 const ConsumerConfiguration& conf, Consumer& consumer);
133
143 void subscribeAsync(const std::string& topic, const std::string& subscriptionName,
144 SubscribeCallback callback);
145
156 void subscribeAsync(const std::string& topic, const std::string& subscriptionName,
157 const ConsumerConfiguration& conf, SubscribeCallback callback);
158
166 Result subscribe(const std::vector<std::string>& topics, const std::string& subscriptionName,
167 Consumer& consumer);
168
177 Result subscribe(const std::vector<std::string>& topics, const std::string& subscriptionName,
178 const ConsumerConfiguration& conf, Consumer& consumer);
179
190 void subscribeAsync(const std::vector<std::string>& topics, const std::string& subscriptionName,
191 SubscribeCallback callback);
192
203 void subscribeAsync(const std::vector<std::string>& topics, const std::string& subscriptionName,
204 const ConsumerConfiguration& conf, SubscribeCallback callback);
205
209 Result subscribeWithRegex(const std::string& regexPattern, const std::string& subscriptionName,
210 Consumer& consumer);
211
216 Result subscribeWithRegex(const std::string& regexPattern, const std::string& subscriptionName,
217 const ConsumerConfiguration& conf, Consumer& consumer);
218
226 void subscribeWithRegexAsync(const std::string& regexPattern, const std::string& subscriptionName,
227 SubscribeCallback callback);
228
239 void subscribeWithRegexAsync(const std::string& regexPattern, const std::string& subscriptionName,
240 const ConsumerConfiguration& conf, SubscribeCallback callback);
241
271 Result createReader(const std::string& topic, const MessageId& startMessageId,
272 const ReaderConfiguration& conf, Reader& reader);
273
300 void createReaderAsync(const std::string& topic, const MessageId& startMessageId,
301 const ReaderConfiguration& conf, ReaderCallback callback);
302
316 Result getPartitionsForTopic(const std::string& topic, std::vector<std::string>& partitions);
317
333 void getPartitionsForTopicAsync(const std::string& topic, GetPartitionsCallback callback);
334
340
350 void closeAsync(CloseCallback callback);
351
358 void shutdown();
359
366
373
374 private:
375 Client(const std::string& serviceUrl, const ClientConfiguration& clientConfiguration,
376 bool poolConnections);
377 Client(const std::shared_ptr<ClientImpl>);
378
379 friend class PulsarFriend;
380 friend class PulsarWrapper;
381 std::shared_ptr<ClientImpl> impl_;
382};
383} // namespace pulsar
384
385#endif /* PULSAR_CLIENT_HPP_ */
Definition: ClientConfiguration.h:29
Definition: Client.h:46
Result subscribeWithRegex(const std::string &regexPattern, const std::string &subscriptionName, Consumer &consumer)
Result subscribeWithRegex(const std::string &regexPattern, const std::string &subscriptionName, const ConsumerConfiguration &conf, Consumer &consumer)
uint64_t getNumberOfConsumers()
Get the number of alive consumers on the current client.
Result subscribe(const std::string &topic, const std::string &subscriptionName, const ConsumerConfiguration &conf, Consumer &consumer)
Client(const std::string &serviceUrl, const ClientConfiguration &clientConfiguration)
Result getPartitionsForTopic(const std::string &topic, std::vector< std::string > &partitions)
void getPartitionsForTopicAsync(const std::string &topic, GetPartitionsCallback callback)
void subscribeAsync(const std::vector< std::string > &topics, const std::string &subscriptionName, SubscribeCallback callback)
void createProducerAsync(const std::string &topic, ProducerConfiguration conf, CreateProducerCallback callback)
void subscribeWithRegexAsync(const std::string &regexPattern, const std::string &subscriptionName, SubscribeCallback callback)
uint64_t getNumberOfProducers()
Get the number of alive producers on the current client.
void subscribeAsync(const std::string &topic, const std::string &subscriptionName, SubscribeCallback callback)
void createProducerAsync(const std::string &topic, CreateProducerCallback callback)
void subscribeAsync(const std::string &topic, const std::string &subscriptionName, const ConsumerConfiguration &conf, SubscribeCallback callback)
Result subscribe(const std::vector< std::string > &topics, const std::string &subscriptionName, const ConsumerConfiguration &conf, Consumer &consumer)
Result createProducer(const std::string &topic, Producer &producer)
Result subscribe(const std::string &topic, const std::string &subscriptionName, Consumer &consumer)
Result createProducer(const std::string &topic, const ProducerConfiguration &conf, Producer &producer)
void createReaderAsync(const std::string &topic, const MessageId &startMessageId, const ReaderConfiguration &conf, ReaderCallback callback)
void subscribeWithRegexAsync(const std::string &regexPattern, const std::string &subscriptionName, const ConsumerConfiguration &conf, SubscribeCallback callback)
Result close()
Client(const std::string &serviceUrl)
void closeAsync(CloseCallback callback)
Result createReader(const std::string &topic, const MessageId &startMessageId, const ReaderConfiguration &conf, Reader &reader)
Result subscribe(const std::vector< std::string > &topics, const std::string &subscriptionName, Consumer &consumer)
void subscribeAsync(const std::vector< std::string > &topics, const std::string &subscriptionName, const ConsumerConfiguration &conf, SubscribeCallback callback)
Definition: ConsumerConfiguration.h:58
Definition: Consumer.h:35
Definition: MessageId.h:32
Definition: ProducerConfiguration.h:44
Definition: Producer.h:35
Definition: ReaderConfiguration.h:48
Definition: Reader.h:36
Definition: Authentication.h:30
Result
Definition: Result.h:31