pulsar-client-cpp
MessageBuilder.h
1 
19 #ifndef MESSAGE_BUILDER_H
20 #define MESSAGE_BUILDER_H
21 
22 #include <vector>
23 #include "Message.h"
24 
25 #pragma GCC visibility push(default)
26 
27 namespace pulsar {
28 class PulsarWrapper;
29 
31  public:
33 
34  typedef std::map<std::string, std::string> StringMap;
35 
39  Message build();
40 
44  MessageBuilder& setContent(const void* data, size_t size);
45  MessageBuilder& setContent(const std::string& data);
46 
52  MessageBuilder& setAllocatedContent(void* data, size_t size);
53 
59  MessageBuilder& setProperty(const std::string& name, const std::string& value);
60 
64  MessageBuilder& setProperties(const StringMap& properties);
65 
66  /*
67  * set partition key for the message routing
68  * @param hash of this key is used to determine message's topic partition
69  */
70  MessageBuilder& setPartitionKey(const std::string& partitionKey);
71 
75  MessageBuilder& setEventTimestamp(uint64_t eventTimestamp);
76 
93  MessageBuilder& setSequenceId(int64_t sequenceId);
94 
105  MessageBuilder& setReplicationClusters(const std::vector<std::string>& clusters);
106 
113 
119 
120  private:
122  void checkMetadata();
123  static std::shared_ptr<MessageImpl> createMessageImpl();
124  Message::MessageImplPtr impl_;
125 
126  friend class PulsarWrapper;
127 };
128 } // namespace pulsar
129 
130 #pragma GCC visibility pop
131 
132 #endif
pulsar::MessageBuilder::setSequenceId
MessageBuilder & setSequenceId(int64_t sequenceId)
pulsar::MessageBuilder::setReplicationClusters
MessageBuilder & setReplicationClusters(const std::vector< std::string > &clusters)
pulsar::MessageBuilder::setProperty
MessageBuilder & setProperty(const std::string &name, const std::string &value)
pulsar::Message
Definition: Message.h:43
pulsar::MessageBuilder::disableReplication
MessageBuilder & disableReplication(bool flag)
pulsar::MessageBuilder
Definition: MessageBuilder.h:30
pulsar
Definition: Authentication.h:31
pulsar::MessageBuilder::setProperties
MessageBuilder & setProperties(const StringMap &properties)
pulsar::MessageBuilder::setContent
MessageBuilder & setContent(const void *data, size_t size)
pulsar::MessageBuilder::create
MessageBuilder & create()
pulsar::MessageBuilder::setEventTimestamp
MessageBuilder & setEventTimestamp(uint64_t eventTimestamp)
pulsar::MessageBuilder::setAllocatedContent
MessageBuilder & setAllocatedContent(void *data, size_t size)
pulsar::MessageBuilder::build
Message build()