pulsar-client-cpp
Consumer.h
1 
19 #ifndef CONSUMER_HPP_
20 #define CONSUMER_HPP_
21 
22 #include <boost/date_time/posix_time/ptime.hpp>
23 #include <iostream>
24 #include <pulsar/BrokerConsumerStats.h>
25 #include <pulsar/ConsumerConfiguration.h>
26 #pragma GCC visibility push(default)
27 
28 
29 namespace pulsar {
30 class PulsarWrapper;
31 class ConsumerImplBase;
32 class PulsarFriend;
36 class Consumer {
37  public:
41  Consumer();
42 
46  const std::string& getTopic() const;
47 
51  const std::string& getSubscriptionName() const;
52 
67 
79  void unsubscribeAsync(ResultCallback callback);
80 
91  Result receive(Message& msg);
92 
101  Result receive(Message& msg, int timeoutMs);
102 
114  Result acknowledge(const Message& message);
115  Result acknowledge(const MessageId& messageId);
116 
126  void acknowledgeAsync(const Message& message, ResultCallback callback);
127  void acknowledgeAsync(const MessageId& messageID, ResultCallback callback);
128 
145  Result acknowledgeCumulative(const Message& message);
146  Result acknowledgeCumulative(const MessageId& messageId);
147 
158  void acknowledgeCumulativeAsync(const Message& message, ResultCallback callback);
159  void acknowledgeCumulativeAsync(const MessageId& messageId, ResultCallback callback);
160 
161  Result close();
162 
163  void closeAsync(ResultCallback callback);
164 
165  /*
166  * Pause receiving messages via the messageListener, till resumeMessageListener() is called.
167  */
168  Result pauseMessageListener();
169 
170  /*
171  * Resume receiving the messages via the messageListener.
172  * Asynchronously receive all the messages enqueued from time pauseMessageListener() was called.
173  */
174  Result resumeMessageListener();
175 
183 
194  Result getBrokerConsumerStats(BrokerConsumerStats& brokerConsumerStats);
195 
205  void getBrokerConsumerStatsAsync(BrokerConsumerStatsCallback callback);
206 private:
207  typedef boost::shared_ptr<ConsumerImplBase> ConsumerImplBasePtr;
208  ConsumerImplBasePtr impl_;
209  explicit Consumer(ConsumerImplBasePtr);
210 
211  friend class PulsarFriend;
212  friend class PulsarWrapper;
213  friend class PartitionedConsumerImpl;
214  friend class ConsumerImpl;
215  friend class ClientImpl;
216  friend class ConsumerTest;
217 };
218 
219 }
220 
221 #pragma GCC visibility pop
222 
223 #endif /* CONSUMER_HPP_ */
Result acknowledgeCumulative(const Message &message)
boost::function< void(Result result)> ResultCallback
Callback definition for non-data operation.
Definition: ConsumerConfiguration.h:32
Definition: Authentication.h:31
void acknowledgeAsync(const Message &message, ResultCallback callback)
void unsubscribeAsync(ResultCallback callback)
const std::string & getSubscriptionName() const
Definition: Message.h:42
void acknowledgeCumulativeAsync(const Message &message, ResultCallback callback)
Definition: Consumer.h:36
Result getBrokerConsumerStats(BrokerConsumerStats &brokerConsumerStats)
Result
Definition: Result.h:31
void redeliverUnacknowledgedMessages()
Result acknowledge(const Message &message)
const std::string & getTopic() const
Result receive(Message &msg)
Definition: MessageId.h:33
void getBrokerConsumerStatsAsync(BrokerConsumerStatsCallback callback)
Result unsubscribe()
Definition: BrokerConsumerStats.h:35