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/ServiceInfo.h>
33#include <pulsar/ServiceInfoProvider.h>
34#include <pulsar/TableView.h>
35#include <pulsar/defines.h>
36
37#include <memory>
38#include <string>
39
40namespace pulsar {
41typedef std::function<void(Result, Producer)> CreateProducerCallback;
42typedef std::function<void(Result, Consumer)> SubscribeCallback;
43typedef std::function<void(Result, Reader)> ReaderCallback;
44typedef std::function<void(Result, TableView)> TableViewCallback;
45typedef std::function<void(Result, const std::vector<std::string>&)> GetPartitionsCallback;
46typedef std::function<void(Result)> CloseCallback;
47
48class ClientImpl;
49class PulsarFriend;
50class PulsarWrapper;
51
52class PULSAR_PUBLIC Client {
53 public:
61 Client(const std::string& serviceUrl);
62
72 Client(const std::string& serviceUrl, const ClientConfiguration& clientConfiguration);
73
85 static Client create(std::unique_ptr<ServiceInfoProvider> serviceInfoProvider,
86 const ClientConfiguration& clientConfiguration);
87
98 Result createProducer(const std::string& topic, Producer& producer);
99
111 Result createProducer(const std::string& topic, const ProducerConfiguration& conf, Producer& producer);
112
121 void createProducerAsync(const std::string& topic, const CreateProducerCallback& callback);
122
130 void createProducerAsync(const std::string& topic, const ProducerConfiguration& conf,
131 const CreateProducerCallback& callback);
132
141 Result subscribe(const std::string& topic, const std::string& subscriptionName, Consumer& consumer);
142
151 Result subscribe(const std::string& topic, const std::string& subscriptionName,
152 const ConsumerConfiguration& conf, Consumer& consumer);
153
163 void subscribeAsync(const std::string& topic, const std::string& subscriptionName,
164 const SubscribeCallback& callback);
165
176 void subscribeAsync(const std::string& topic, const std::string& subscriptionName,
177 const ConsumerConfiguration& conf, const SubscribeCallback& callback);
178
186 Result subscribe(const std::vector<std::string>& topics, const std::string& subscriptionName,
187 Consumer& consumer);
188
197 Result subscribe(const std::vector<std::string>& topics, const std::string& subscriptionName,
198 const ConsumerConfiguration& conf, Consumer& consumer);
199
210 void subscribeAsync(const std::vector<std::string>& topics, const std::string& subscriptionName,
211 const SubscribeCallback& callback);
212
223 void subscribeAsync(const std::vector<std::string>& topics, const std::string& subscriptionName,
224 const ConsumerConfiguration& conf, const SubscribeCallback& callback);
225
229 Result subscribeWithRegex(const std::string& regexPattern, const std::string& subscriptionName,
230 Consumer& consumer);
231
236 Result subscribeWithRegex(const std::string& regexPattern, const std::string& subscriptionName,
237 const ConsumerConfiguration& conf, Consumer& consumer);
238
246 void subscribeWithRegexAsync(const std::string& regexPattern, const std::string& subscriptionName,
247 const SubscribeCallback& callback);
248
259 void subscribeWithRegexAsync(const std::string& regexPattern, const std::string& subscriptionName,
260 const ConsumerConfiguration& conf, const SubscribeCallback& callback);
261
291 Result createReader(const std::string& topic, const MessageId& startMessageId,
292 const ReaderConfiguration& conf, Reader& reader);
293
320 void createReaderAsync(const std::string& topic, const MessageId& startMessageId,
321 const ReaderConfiguration& conf, const ReaderCallback& callback);
322
335 Result createTableView(const std::string& topic, const TableViewConfiguration& conf,
336 TableView& tableView);
337
350 void createTableViewAsync(const std::string& topic, const TableViewConfiguration& conf,
351 const TableViewCallback& callBack);
352
366 Result getPartitionsForTopic(const std::string& topic, std::vector<std::string>& partitions);
367
383 void getPartitionsForTopicAsync(const std::string& topic, const GetPartitionsCallback& callback);
384
390
400 void closeAsync(const CloseCallback& callback);
401
408 void shutdown();
409
416
423
431 void getSchemaInfoAsync(const std::string& topic, int64_t version,
432 std::function<void(Result, const SchemaInfo&)> callback);
433
440
441 private:
442 Client(const std::shared_ptr<ClientImpl>&);
443
444 friend class PulsarFriend;
445 friend class PulsarWrapper;
446 std::shared_ptr<ClientImpl> impl_;
447};
448} // namespace pulsar
449
450#endif /* PULSAR_CLIENT_HPP_ */
Definition ClientConfiguration.h:31
static Client create(std::unique_ptr< ServiceInfoProvider > serviceInfoProvider, const ClientConfiguration &clientConfiguration)
void closeAsync(const CloseCallback &callback)
Result subscribeWithRegex(const std::string &regexPattern, const std::string &subscriptionName, Consumer &consumer)
void subscribeAsync(const std::string &topic, const std::string &subscriptionName, const ConsumerConfiguration &conf, const SubscribeCallback &callback)
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 subscribeAsync(const std::string &topic, const std::string &subscriptionName, const SubscribeCallback &callback)
void subscribeAsync(const std::vector< std::string > &topics, const std::string &subscriptionName, const SubscribeCallback &callback)
void subscribeWithRegexAsync(const std::string &regexPattern, const std::string &subscriptionName, const SubscribeCallback &callback)
void createReaderAsync(const std::string &topic, const MessageId &startMessageId, const ReaderConfiguration &conf, const ReaderCallback &callback)
ServiceInfo getServiceInfo() const
void createProducerAsync(const std::string &topic, const ProducerConfiguration &conf, const CreateProducerCallback &callback)
uint64_t getNumberOfProducers()
Get the number of alive producers on the current client.
void createProducerAsync(const std::string &topic, const CreateProducerCallback &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)
void getSchemaInfoAsync(const std::string &topic, int64_t version, std::function< void(Result, const SchemaInfo &)> callback)
void subscribeAsync(const std::vector< std::string > &topics, const std::string &subscriptionName, const ConsumerConfiguration &conf, const SubscribeCallback &callback)
Result createProducer(const std::string &topic, const ProducerConfiguration &conf, Producer &producer)
Result createTableView(const std::string &topic, const TableViewConfiguration &conf, TableView &tableView)
Result close()
Client(const std::string &serviceUrl)
void subscribeWithRegexAsync(const std::string &regexPattern, const std::string &subscriptionName, const ConsumerConfiguration &conf, const SubscribeCallback &callback)
void createTableViewAsync(const std::string &topic, const TableViewConfiguration &conf, const TableViewCallback &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 getPartitionsForTopicAsync(const std::string &topic, const GetPartitionsCallback &callback)
Definition ConsumerConfiguration.h:65
Definition Consumer.h:37
Definition MessageId.h:34
Definition ProducerConfiguration.h:46
Definition Producer.h:36
Definition ReaderConfiguration.h:49
Definition Reader.h:37
Definition Schema.h:147
Definition ServiceInfo.h:33
Definition TableView.h:38
Definition Authentication.h:31
Result
Definition Result.h:33
Definition TableViewConfiguration.h:27