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:
54 Client(const std::string& serviceUrl);
55
64 Client(const std::string& serviceUrl, const ClientConfiguration& clientConfiguration);
65
76 Result createProducer(const std::string& topic, Producer& producer);
77
89 Result createProducer(const std::string& topic, const ProducerConfiguration& conf, Producer& producer);
90
99 void createProducerAsync(const std::string& topic, CreateProducerCallback callback);
100
108 void createProducerAsync(const std::string& topic, ProducerConfiguration conf,
109 CreateProducerCallback callback);
110
119 Result subscribe(const std::string& topic, const std::string& subscriptionName, Consumer& consumer);
120
129 Result subscribe(const std::string& topic, const std::string& subscriptionName,
130 const ConsumerConfiguration& conf, Consumer& consumer);
131
141 void subscribeAsync(const std::string& topic, const std::string& subscriptionName,
142 SubscribeCallback callback);
143
154 void subscribeAsync(const std::string& topic, const std::string& subscriptionName,
155 const ConsumerConfiguration& conf, SubscribeCallback callback);
156
164 Result subscribe(const std::vector<std::string>& topics, const std::string& subscriptionName,
165 Consumer& consumer);
166
175 Result subscribe(const std::vector<std::string>& topics, const std::string& subscriptionName,
176 const ConsumerConfiguration& conf, Consumer& consumer);
177
188 void subscribeAsync(const std::vector<std::string>& topics, const std::string& subscriptionName,
189 SubscribeCallback callback);
190
201 void subscribeAsync(const std::vector<std::string>& topics, const std::string& subscriptionName,
202 const ConsumerConfiguration& conf, SubscribeCallback callback);
203
207 Result subscribeWithRegex(const std::string& regexPattern, const std::string& subscriptionName,
208 Consumer& consumer);
209
214 Result subscribeWithRegex(const std::string& regexPattern, const std::string& subscriptionName,
215 const ConsumerConfiguration& conf, Consumer& consumer);
216
224 void subscribeWithRegexAsync(const std::string& regexPattern, const std::string& subscriptionName,
225 SubscribeCallback callback);
226
237 void subscribeWithRegexAsync(const std::string& regexPattern, const std::string& subscriptionName,
238 const ConsumerConfiguration& conf, SubscribeCallback callback);
239
269 Result createReader(const std::string& topic, const MessageId& startMessageId,
270 const ReaderConfiguration& conf, Reader& reader);
271
298 void createReaderAsync(const std::string& topic, const MessageId& startMessageId,
299 const ReaderConfiguration& conf, ReaderCallback callback);
300
314 Result getPartitionsForTopic(const std::string& topic, std::vector<std::string>& partitions);
315
331 void getPartitionsForTopicAsync(const std::string& topic, GetPartitionsCallback callback);
332
338
348 void closeAsync(CloseCallback callback);
349
356 void shutdown();
357
364
371
372 private:
373 Client(const std::string& serviceUrl, const ClientConfiguration& clientConfiguration,
374 bool poolConnections);
375 Client(const std::shared_ptr<ClientImpl>);
376
377 friend class PulsarFriend;
378 friend class PulsarWrapper;
379 std::shared_ptr<ClientImpl> impl_;
380};
381} // namespace pulsar
382
383#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:51
Definition: Consumer.h:35
Definition: MessageId.h:32
Definition: ProducerConfiguration.h:44
Definition: Producer.h:35
Definition: ReaderConfiguration.h:47
Definition: Reader.h:37
Definition: Authentication.h:30
Result
Definition: Result.h:31