pulsar-client-cpp
MessageId.h
1 
19 #ifndef MESSAGE_ID_H
20 #define MESSAGE_ID_H
21 
22 #include <iosfwd>
23 #include <stdint.h>
24 #include <memory>
25 //#include <lib/MessageIdImpl.h>
26 
27 #pragma GCC visibility push(default)
28 
29 namespace pulsar {
30 
31 class MessageIdImpl;
32 
33 class MessageId {
34  public:
35  MessageId& operator=(const MessageId&);
36  MessageId();
37  explicit MessageId(int32_t partition, int64_t ledgerId, int64_t entryId, int32_t batchIndex);
38 
42  static const MessageId& earliest();
43 
47  static const MessageId& latest();
48 
52  void serialize(std::string& result) const;
53 
57  const std::string& getTopicName() const;
58 
62  void setTopicName(const std::string& topicName);
63 
67  static MessageId deserialize(const std::string& serializedMessageId);
68 
69  // These functions compare the message order as stored in bookkeeper
70  bool operator<(const MessageId& other) const;
71  bool operator<=(const MessageId& other) const;
72  bool operator>(const MessageId& other) const;
73  bool operator>=(const MessageId& other) const;
74  bool operator==(const MessageId& other) const;
75  bool operator!=(const MessageId& other) const;
76 
77  private:
78  friend class ConsumerImpl;
79  friend class ReaderImpl;
80  friend class Message;
81  friend class MessageImpl;
82  friend class Commands;
83  friend class PartitionedProducerImpl;
84  friend class PartitionedConsumerImpl;
85  friend class MultiTopicsConsumerImpl;
86  friend class UnAckedMessageTrackerEnabled;
87  friend class BatchAcknowledgementTracker;
88  friend class PulsarWrapper;
89  friend class PulsarFriend;
90 
91  friend std::ostream& operator<<(std::ostream& s, const MessageId& messageId);
92 
93  int64_t ledgerId() const;
94  int64_t entryId() const;
95  int32_t batchIndex() const;
96  int32_t partition() const;
97 
98  typedef std::shared_ptr<MessageIdImpl> MessageIdImplPtr;
99  MessageIdImplPtr impl_;
100 };
101 } // namespace pulsar
102 
103 #pragma GCC visibility pop
104 
105 #endif // MESSAGE_ID_H
pulsar::MessageId::setTopicName
void setTopicName(const std::string &topicName)
pulsar::MessageId::deserialize
static MessageId deserialize(const std::string &serializedMessageId)
pulsar::MessageId
Definition: MessageId.h:33
pulsar::MessageId::serialize
void serialize(std::string &result) const
pulsar::MessageId::getTopicName
const std::string & getTopicName() const
pulsar::MessageId::earliest
static const MessageId & earliest()
pulsar::Message
Definition: Message.h:43
pulsar
Definition: Authentication.h:31
pulsar::MessageId::latest
static const MessageId & latest()