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 #include <pulsar/defines.h>
25 
26 namespace pulsar {
27 class PulsarWrapper;
28 class PulsarFriend;
29 class ReaderImpl;
30 
31 typedef std::function<void(Result result, bool hasMessageAvailable)> HasMessageAvailableCallback;
32 typedef std::function<void(Result result, const Message& message)> ReadNextCallback;
33 
37 class PULSAR_PUBLIC 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 
77  void readNextAsync(ReadNextCallback callback);
78 
84  Result close();
85 
91  void closeAsync(ResultCallback callback);
92 
96  void hasMessageAvailableAsync(HasMessageAvailableCallback callback);
97 
101  Result hasMessageAvailable(bool& hasMessageAvailable);
102 
113  Result seek(const MessageId& msgId);
114 
121  Result seek(uint64_t timestamp);
122 
133  void seekAsync(const MessageId& msgId, ResultCallback callback);
134 
141  void seekAsync(uint64_t timestamp, ResultCallback callback);
142 
146  bool isConnected() const;
147 
152  void getLastMessageIdAsync(GetLastMessageIdCallback callback);
153 
157  Result getLastMessageId(MessageId& messageId);
158 
159  private:
160  typedef std::shared_ptr<ReaderImpl> ReaderImplPtr;
161  ReaderImplPtr impl_;
162  explicit Reader(ReaderImplPtr);
163 
164  friend class PulsarFriend;
165  friend class PulsarWrapper;
166  friend class ReaderImpl;
167  friend class TableViewImpl;
168  friend class ReaderTest;
169 };
170 } // namespace pulsar
171 
172 #endif /* PULSAR_READER_HPP_ */
pulsar::MessageId
Definition: MessageId.h:34
pulsar::Result
Result
Definition: Result.h:31
pulsar::Message
Definition: Message.h:43
pulsar::Reader
Definition: Reader.h:37
pulsar
Definition: Authentication.h:31
pulsar::ResultCallback
std::function< void(Result result)> ResultCallback
Callback definition for non-data operation.
Definition: ConsumerConfiguration.h:50