34class PULSAR_PUBLIC MessageId {
36 MessageId& operator=(
const MessageId&);
51 explicit MessageId(int32_t partition, int64_t ledgerId, int64_t entryId, int32_t batchIndex);
84 static MessageId
deserialize(
const std::string& serializedMessageId);
87 bool operator<(
const MessageId& other)
const;
88 bool operator<=(
const MessageId& other)
const;
89 bool operator>(
const MessageId& other)
const;
90 bool operator>=(
const MessageId& other)
const;
91 bool operator==(
const MessageId& other)
const;
92 bool operator!=(
const MessageId& other)
const;
94 int64_t ledgerId()
const;
95 int64_t entryId()
const;
96 int32_t batchIndex()
const;
97 int32_t partition()
const;
98 int32_t batchSize()
const;
101 friend class ConsumerImpl;
102 friend class ReaderImpl;
103 friend class Message;
104 friend class MessageImpl;
105 friend class Commands;
106 friend class PartitionedProducerImpl;
107 friend class MultiTopicsConsumerImpl;
108 friend class UnAckedMessageTrackerEnabled;
109 friend class BatchAcknowledgementTracker;
110 friend class PulsarWrapper;
111 friend class PulsarFriend;
112 friend class NegativeAcksTracker;
113 friend class MessageIdBuilder;
114 friend class ChunkMessageIdImpl;
116 void setTopicName(
const std::shared_ptr<std::string>& topic);
118 friend PULSAR_PUBLIC std::ostream& operator<<(std::ostream& s,
const MessageId& messageId);
120 typedef std::shared_ptr<MessageIdImpl> MessageIdImplPtr;
121 MessageIdImplPtr impl_;
123 explicit MessageId(
const MessageIdImplPtr& impl);