pulsar-client-cpp
MessageBuilder.h
1 
19 #ifndef MESSAGE_BUILDER_H
20 #define MESSAGE_BUILDER_H
21 
22 #include <pulsar/KeyValue.h>
23 #include <pulsar/Message.h>
24 #include <pulsar/defines.h>
25 
26 #include <chrono>
27 #include <string>
28 #include <vector>
29 
30 namespace pulsar {
31 class PulsarWrapper;
32 
33 class PULSAR_PUBLIC MessageBuilder {
34  public:
36 
37  typedef std::map<std::string, std::string> StringMap;
38 
42  Message build();
43 
47  MessageBuilder& setContent(const void* data, size_t size);
48 
55  MessageBuilder& setContent(const std::string& data);
56 
62  MessageBuilder& setContent(std::string&& data);
63 
69  MessageBuilder& setContent(const KeyValue& data);
70 
76  MessageBuilder& setAllocatedContent(void* data, size_t size);
77 
83  MessageBuilder& setProperty(const std::string& name, const std::string& value);
84 
88  MessageBuilder& setProperties(const StringMap& properties);
89 
94  MessageBuilder& setPartitionKey(const std::string& partitionKey);
95 
100  MessageBuilder& setOrderingKey(const std::string& orderingKey);
101 
107  MessageBuilder& setDeliverAfter(const std::chrono::milliseconds delay);
108 
115  MessageBuilder& setDeliverAt(uint64_t deliveryTimestamp);
116 
120  MessageBuilder& setEventTimestamp(uint64_t eventTimestamp);
121 
138  MessageBuilder& setSequenceId(int64_t sequenceId);
139 
150  MessageBuilder& setReplicationClusters(const std::vector<std::string>& clusters);
151 
157  MessageBuilder& disableReplication(bool flag);
158 
163  MessageBuilder& create();
164 
165  protected:
166  const char* data() const;
167  std::size_t size() const;
168 
169  private:
170  void checkMetadata();
171  static std::shared_ptr<MessageImpl> createMessageImpl();
172  Message::MessageImplPtr impl_;
173 
174  friend class PulsarWrapper;
175 };
176 } // namespace pulsar
177 
178 #endif
pulsar::Message
Definition: Message.h:43
pulsar::KeyValue
Definition: KeyValue.h:35
pulsar::MessageBuilder
Definition: MessageBuilder.h:33
pulsar
Definition: Authentication.h:31