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:
32 
34 
35  typedef std::map<std::string, std::string> StringMap;
36 
40  Message build();
41 
45  MessageBuilder& setContent(const void* data, size_t size);
46  MessageBuilder& setContent(const std::string& data);
47 
53  MessageBuilder& setAllocatedContent(void* data, size_t size);
54 
60  MessageBuilder& setProperty(const std::string& name, const std::string& value);
61 
65  MessageBuilder& setProperties(const StringMap& properties);
66 
67  /*
68  * set partition key for the message routing
69  * @param hash of this key is used to determine message's destination partition
70  */
71  MessageBuilder& setPartitionKey(const std::string& partitionKey);
72 
83  MessageBuilder& setReplicationClusters(const std::vector<std::string>& clusters);
84 
91 
97  private:
99  void checkMetadata();
100  static boost::shared_ptr<MessageImpl> createMessageImpl();
101  Message::MessageImplPtr impl_;
102 
103  friend class PulsarWrapper;
104 };
105 
106 }
107 
108 #pragma GCC visibility pop
109 
110 #endif
Definition: MessageBuilder.h:30
MessageBuilder & setProperties(const StringMap &properties)
MessageBuilder & create()
Definition: Authentication.h:31
MessageBuilder & setProperty(const std::string &name, const std::string &value)
MessageBuilder & disableReplication(bool flag)
Definition: Message.h:42
MessageBuilder & setReplicationClusters(const std::vector< std::string > &clusters)
MessageBuilder & setAllocatedContent(void *data, size_t size)
MessageBuilder & setContent(const void *data, size_t size)