19 #ifndef PULSAR_READER_HPP_
20 #define PULSAR_READER_HPP_
22 #include <pulsar/Message.h>
23 #include <pulsar/ReaderConfiguration.h>
24 #include <pulsar/defines.h>
31 typedef std::function<void(
Result result,
bool hasMessageAvailable)> HasMessageAvailableCallback;
32 typedef std::function<void(
Result result,
const Message& message)> ReadNextCallback;
47 const std::string& getTopic()
const;
77 void readNextAsync(ReadNextCallback callback);
96 void hasMessageAvailableAsync(HasMessageAvailableCallback callback);
101 Result hasMessageAvailable(
bool& hasMessageAvailable);
121 Result seek(uint64_t timestamp);
146 bool isConnected()
const;
152 void getLastMessageIdAsync(GetLastMessageIdCallback callback);
160 typedef std::shared_ptr<ReaderImpl> ReaderImplPtr;
162 explicit Reader(ReaderImplPtr);
164 friend class PulsarFriend;
165 friend class PulsarWrapper;
166 friend class ReaderImpl;
167 friend class TableViewImpl;
168 friend class ReaderTest;