22 #include <pulsar/defines.h>
29 #include "MessageId.h"
34 class MessageMetadata;
35 class SingleMessageMetadata;
45 typedef std::map<std::string, std::string> StringMap;
55 const StringMap& getProperties()
const;
64 bool hasProperty(
const std::string& name)
const;
72 const std::string& getProperty(
const std::string& name)
const;
80 const void* getData()
const;
87 std::size_t getLength()
const;
97 #if defined(_MSC_VER) && !defined(NDEBUG)
98 const std::string& getDataAsString()
const;
100 std::string getDataAsString()
const;
125 void setMessageId(
const MessageId& messageId)
const;
131 const std::string& getPartitionKey()
const;
136 bool hasPartitionKey()
const;
143 const std::string& getOrderingKey()
const;
151 bool hasOrderingKey()
const;
157 uint64_t getPublishTimestamp()
const;
162 uint64_t getEventTimestamp()
const;
167 const std::string& getTopicName()
const;
172 const int getRedeliveryCount()
const;
177 bool hasSchemaVersion()
const;
184 int64_t getLongSchemaVersion()
const;
189 const std::string& getSchemaVersion()
const;
191 bool operator==(
const Message& msg)
const;
194 typedef std::shared_ptr<MessageImpl> MessageImplPtr;
195 MessageImplPtr impl_;
198 Message(
const MessageId& messageId, proto::MessageMetadata& metadata, SharedBuffer& payload);
200 Message(
const MessageId& messageId, proto::MessageMetadata& metadata, SharedBuffer& payload,
201 proto::SingleMessageMetadata& singleMetadata,
const std::shared_ptr<std::string>& topicName);
202 friend class PartitionedProducerImpl;
203 friend class MultiTopicsConsumerImpl;
205 friend class ConsumerImpl;
206 friend class ProducerImpl;
207 friend class Commands;
208 friend class BatchMessageContainerBase;
209 friend class BatchAcknowledgementTracker;
210 friend class PulsarWrapper;
212 friend struct OpSendMsg;
214 friend PULSAR_PUBLIC std::ostream& operator<<(std::ostream& s,
const StringMap& map);
215 friend PULSAR_PUBLIC std::ostream& operator<<(std::ostream& s,
const Message& msg);
216 friend class PulsarFriend;