pulsar-client-cpp
Loading...
Searching...
No Matches
Client.h
1
19#ifndef PULSAR_CLIENT_HPP_
20#define PULSAR_CLIENT_HPP_
21
22#include <pulsar/ClientConfiguration.h>
23#include <pulsar/ConsoleLoggerFactory.h>
24#include <pulsar/Consumer.h>
25#include <pulsar/FileLoggerFactory.h>
26#include <pulsar/Message.h>
27#include <pulsar/MessageBuilder.h>
28#include <pulsar/Producer.h>
29#include <pulsar/Reader.h>
30#include <pulsar/Result.h>
31#include <pulsar/Schema.h>
32#include <pulsar/defines.h>
33
34#include <string>
35
36namespace pulsar {
37typedef std::function<void(Result, Producer)> CreateProducerCallback;
38typedef std::function<void(Result, Consumer)> SubscribeCallback;
39typedef std::function<void(Result, Reader)> ReaderCallback;
40typedef std::function<void(Result, const std::vector<std::string>&)> GetPartitionsCallback;
41typedef std::function<void(Result)> CloseCallback;
42
43class ClientImpl;
44class PulsarFriend;
45class PulsarWrapper;
46
47class PULSAR_PUBLIC Client {
48 public:
56 Client(const std::string& serviceUrl);
57
67 Client(const std::string& serviceUrl, const ClientConfiguration& clientConfiguration);
68
79 Result createProducer(const std::string& topic, Producer& producer);
80
92 Result createProducer(const std::string& topic, const ProducerConfiguration& conf, Producer& producer);
93
102 void createProducerAsync(const std::string& topic, CreateProducerCallback callback);
103
111 void createProducerAsync(const std::string& topic, ProducerConfiguration conf,
112 CreateProducerCallback callback);
113
122 Result subscribe(const std::string& topic, const std::string& subscriptionName, Consumer& consumer);
123
132 Result subscribe(const std::string& topic, const std::string& subscriptionName,
133 const ConsumerConfiguration& conf, Consumer& consumer);
134
144 void subscribeAsync(const std::string& topic, const std::string& subscriptionName,
145 SubscribeCallback callback);
146
157 void subscribeAsync(const std::string& topic, const std::string& subscriptionName,
158 const ConsumerConfiguration& conf, SubscribeCallback callback);
159
167 Result subscribe(const std::vector<std::string>& topics, const std::string& subscriptionName,
168 Consumer& consumer);
169
178 Result subscribe(const std::vector<std::string>& topics, const std::string& subscriptionName,
179 const ConsumerConfiguration& conf, Consumer& consumer);
180
191 void subscribeAsync(const std::vector<std::string>& topics, const std::string& subscriptionName,
192 SubscribeCallback callback);
193
204 void subscribeAsync(const std::vector<std::string>& topics, const std::string& subscriptionName,
205 const ConsumerConfiguration& conf, SubscribeCallback callback);
206
210 Result subscribeWithRegex(const std::string& regexPattern, const std::string& subscriptionName,
211 Consumer& consumer);
212
217 Result subscribeWithRegex(const std::string& regexPattern, const std::string& subscriptionName,
218 const ConsumerConfiguration& conf, Consumer& consumer);
219
227 void subscribeWithRegexAsync(const std::string& regexPattern, const std::string& subscriptionName,
228 SubscribeCallback callback);
229
240 void subscribeWithRegexAsync(const std::string& regexPattern, const std::string& subscriptionName,
241 const ConsumerConfiguration& conf, SubscribeCallback callback);
242
272 Result createReader(const std::string& topic, const MessageId& startMessageId,
273 const ReaderConfiguration& conf, Reader& reader);
274
301 void createReaderAsync(const std::string& topic, const MessageId& startMessageId,
302 const ReaderConfiguration& conf, ReaderCallback callback);
303
317 Result getPartitionsForTopic(const std::string& topic, std::vector<std::string>& partitions);
318
334 void getPartitionsForTopicAsync(const std::string& topic, GetPartitionsCallback callback);
335
341
351 void closeAsync(CloseCallback callback);
352
359 void shutdown();
360
367
374
375 private:
376 Client(const std::string& serviceUrl, const ClientConfiguration& clientConfiguration,
377 bool poolConnections);
378 Client(const std::shared_ptr<ClientImpl>);
379
380 friend class PulsarFriend;
381 friend class PulsarWrapper;
382 std::shared_ptr<ClientImpl> impl_;
383};
384} // namespace pulsar
385
386#endif /* PULSAR_CLIENT_HPP_ */
Definition: ClientConfiguration.h:29
Definition: Client.h:47
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:60
Definition: Consumer.h:36
Definition: MessageId.h:34
Definition: ProducerConfiguration.h:44
Definition: Producer.h:36
Definition: ReaderConfiguration.h:49
Definition: Reader.h:36
Definition: Authentication.h:31
Result
Definition: Result.h:32