22 #include <pulsar/defines.h>
51 explicit MessageId(int32_t partition, int64_t ledgerId, int64_t entryId, int32_t batchIndex);
66 void serialize(std::string& result)
const;
73 const std::string& getTopicName()
const;
79 void setTopicName(
const std::string& topicName);
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;
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;
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);
126 typedef std::vector<MessageId> MessageIdList;
129 #endif // MESSAGE_ID_H