pulsar-client-cpp
Client.h
1 
19 #ifndef PULSAR_CLIENT_HPP_
20 #define PULSAR_CLIENT_HPP_
21 
22 #include <pulsar/Consumer.h>
23 #include <pulsar/Producer.h>
24 #include <pulsar/Result.h>
25 #include <pulsar/Message.h>
26 #include <pulsar/MessageBuilder.h>
27 #include <pulsar/ClientConfiguration.h>
28 #include <string>
29 
30 #pragma GCC visibility push(default)
31 
32 namespace pulsar {
33 typedef boost::function<void(Result, Producer)> CreateProducerCallback;
34 typedef boost::function<void(Result, Consumer)> SubscribeCallback;
35 typedef boost::function<void(Result)> CloseCallback;
36 
37 class ClientImpl;
38 class PulsarFriend;
39 class PulsarWrapper;
40 
41 class Client {
42  public:
48  Client(const std::string& serviceUrl);
49 
56  Client(const std::string& serviceUrl, const ClientConfiguration& clientConfiguration);
57 
68  Result createProducer(const std::string& topic, Producer& producer);
69 
81  Result createProducer(const std::string& topic, const ProducerConfiguration& conf,
82  Producer& producer);
83 
84  void createProducerAsync(const std::string& topic, CreateProducerCallback callback);
85 
86  void createProducerAsync(const std::string& topic, ProducerConfiguration conf,
87  CreateProducerCallback callback);
88 
89  Result subscribe(const std::string& topic, const std::string& consumerName, Consumer& consumer);
90  Result subscribe(const std::string& topic, const std::string& consumerName,
91  const ConsumerConfiguration& conf, Consumer& consumer);
92 
93  void subscribeAsync(const std::string& topic, const std::string& consumerName,
94  SubscribeCallback callback);
95  void subscribeAsync(const std::string& topic, const std::string& consumerName,
96  const ConsumerConfiguration& conf, SubscribeCallback callback);
97 
102  Result close();
103 
104  void closeAsync(CloseCallback callback);
105 
106  void shutdown();
107 
108  private:
109  Client(const std::string& serviceUrl, const ClientConfiguration& clientConfiguration, bool poolConnections);
110  Client(const boost::shared_ptr<ClientImpl>);
111 
112  friend class PulsarFriend;
113  friend class PulsarWrapper;
114  boost::shared_ptr<ClientImpl> impl_;
115 };
116 
117 }
118 
119 #pragma GCC visibility pop
120 
121 #endif /* PULSAR_CLIENT_HPP_ */
Result createProducer(const std::string &topic, Producer &producer)
Client(const std::string &serviceUrl)
Definition: Producer.h:32
Definition: Authentication.h:31
Definition: ConsumerConfiguration.h:45
Definition: Consumer.h:36
Result
Definition: Result.h:31
Definition: ProducerConfiguration.h:39
Definition: Client.h:41
Result close()
Definition: ClientConfiguration.h:27