pulsar-client-cpp
Reader.h
1 
19 #ifndef PULSAR_READER_HPP_
20 #define PULSAR_READER_HPP_
21 
22 #include <pulsar/Message.h>
23 #include <pulsar/ReaderConfiguration.h>
24 
25 #pragma GCC visibility push(default)
26 
27 namespace pulsar {
28 class PulsarWrapper;
29 class PulsarFriend;
30 class ReaderImpl;
31 
32 typedef std::function<void(Result result, bool hasMessageAvailable)> HasMessageAvailableCallback;
33 
37 class Reader {
38  public:
42  Reader();
43 
47  const std::string& getTopic() const;
48 
59  Result readNext(Message& msg);
60 
70  Result readNext(Message& msg, int timeoutMs);
71 
72  Result close();
73 
74  void closeAsync(ResultCallback callback);
75 
79  void hasMessageAvailableAsync(HasMessageAvailableCallback callback);
80 
85 
86  private:
87  typedef std::shared_ptr<ReaderImpl> ReaderImplPtr;
88  ReaderImplPtr impl_;
89  explicit Reader(ReaderImplPtr);
90 
91  friend class PulsarFriend;
92  friend class PulsarWrapper;
93  friend class ReaderImpl;
94  friend class ReaderTest;
95 };
96 } // namespace pulsar
97 
98 #pragma GCC visibility pop
99 
100 #endif /* PULSAR_READER_HPP_ */
pulsar::Result
Result
Definition: Result.h:31
pulsar::Reader::getTopic
const std::string & getTopic() const
pulsar::Reader::Reader
Reader()
pulsar::Reader::hasMessageAvailableAsync
void hasMessageAvailableAsync(HasMessageAvailableCallback callback)
pulsar::Message
Definition: Message.h:43
pulsar::Reader
Definition: Reader.h:37
pulsar::Reader::readNext
Result readNext(Message &msg)
pulsar
Definition: Authentication.h:31
pulsar::Reader::hasMessageAvailable
Result hasMessageAvailable(bool &hasMessageAvailable)
pulsar::ResultCallback
std::function< void(Result result)> ResultCallback
Callback definition for non-data operation.
Definition: ConsumerConfiguration.h:36