pulsar-client-cpp
Loading...
Searching...
No Matches
ProducerConfiguration.h
1
19#ifndef PULSAR_PRODUCERCONFIGURATION_H_
20#define PULSAR_PRODUCERCONFIGURATION_H_
21#include <pulsar/CompressionType.h>
22#include <pulsar/CryptoKeyReader.h>
23#include <pulsar/Message.h>
24#include <pulsar/MessageRoutingPolicy.h>
25#include <pulsar/ProducerCryptoFailureAction.h>
26#include <pulsar/Result.h>
27#include <pulsar/Schema.h>
28#include <pulsar/defines.h>
29
30#include <functional>
31#include <set>
32
33namespace pulsar {
34
35typedef std::function<void(Result, const MessageId& messageId)> SendCallback;
36typedef std::function<void(Result)> CloseCallback;
37
38struct ProducerConfigurationImpl;
39class PulsarWrapper;
40
44class PULSAR_PUBLIC ProducerConfiguration {
45 public:
46 enum PartitionsRoutingMode
47 {
48 UseSinglePartition,
49 RoundRobinDistribution,
50 CustomPartition
51 };
52 enum HashingScheme
53 {
54 Murmur3_32Hash,
55 BoostHash,
56 JavaStringHash
57 };
59 {
70
80 KeyBasedBatching
81 };
83 {
87 Shared = 0,
88
92 Exclusive = 1,
93
97 WaitForExclusive = 2
98 };
99
104
111 ProducerConfiguration& setProducerName(const std::string& producerName);
112
116 const std::string& getProducerName() const;
117
131
135 const SchemaInfo& getSchema() const;
136
141
152 int getSendTimeout() const;
153
165 ProducerConfiguration& setInitialSequenceId(int64_t initialSequenceId);
166
170 int64_t getInitialSequenceId() const;
171
187 ProducerConfiguration& setCompressionType(CompressionType compressionType);
188
192 CompressionType getCompressionType() const;
193
206
211
222 ProducerConfiguration& setMaxPendingMessagesAcrossPartitions(int maxPendingMessagesAcrossPartitions);
223
228
237 ProducerConfiguration& setPartitionsRoutingMode(const PartitionsRoutingMode& mode);
238
242 PartitionsRoutingMode getPartitionsRoutingMode() const;
243
250 ProducerConfiguration& setMessageRouter(const MessageRoutingPolicyPtr& router);
251
255 const MessageRoutingPolicyPtr& getMessageRouterPtr() const;
256
275 ProducerConfiguration& setHashingScheme(const HashingScheme& scheme);
276
280 HashingScheme getHashingScheme() const;
281
297
302
307
313
314 // Zero queue size feature will not be supported on consumer end if batching is enabled
315
331 ProducerConfiguration& setBatchingEnabled(const bool& batchingEnabled);
332
340 const bool& getBatchingEnabled() const;
341
353 ProducerConfiguration& setBatchingMaxMessages(const unsigned int& batchingMaxMessages);
354
358 const unsigned int& getBatchingMaxMessages() const;
359
373 const unsigned long& batchingMaxAllowedSizeInBytes);
374
378 const unsigned long& getBatchingMaxAllowedSizeInBytes() const;
379
387 ProducerConfiguration& setBatchingMaxPublishDelayMs(const unsigned long& batchingMaxPublishDelayMs);
388
392 const unsigned long& getBatchingMaxPublishDelayMs() const;
393
400
406
410 const CryptoKeyReaderPtr getCryptoKeyReader() const;
411
418 ProducerConfiguration& setCryptoKeyReader(CryptoKeyReaderPtr cryptoKeyReader);
419
423 ProducerCryptoFailureAction getCryptoFailureAction() const;
424
432 ProducerConfiguration& setCryptoFailureAction(ProducerCryptoFailureAction action);
433
437 const std::set<std::string>& getEncryptionKeys() const;
438
443
457
465 bool hasProperty(const std::string& name) const;
466
473 const std::string& getProperty(const std::string& name) const;
474
478 std::map<std::string, std::string>& getProperties() const;
479
486 ProducerConfiguration& setProperty(const std::string& name, const std::string& value);
487
491 ProducerConfiguration& setProperties(const std::map<std::string, std::string>& properties);
492
515
519 bool isChunkingEnabled() const;
520
529
534
535 friend class PulsarWrapper;
536
537 private:
538 struct Impl;
539 std::shared_ptr<ProducerConfigurationImpl> impl_;
540};
541} // namespace pulsar
542#endif /* PULSAR_PRODUCERCONFIGURATION_H_ */
Definition: ProducerConfiguration.h:44
const std::string & getProperty(const std::string &name) const
const SchemaInfo & getSchema() const
ProducerConfiguration & setBatchingMaxMessages(const unsigned int &batchingMaxMessages)
ProducerConfiguration & setSendTimeout(int sendTimeoutMs)
ProducerConfiguration & setAccessMode(const ProducerAccessMode &accessMode)
const unsigned int & getBatchingMaxMessages() const
ProducerConfiguration & setBatchingMaxPublishDelayMs(const unsigned long &batchingMaxPublishDelayMs)
ProducerConfiguration & setCompressionType(CompressionType compressionType)
std::map< std::string, std::string > & getProperties() const
const CryptoKeyReaderPtr getCryptoKeyReader() const
ProducerConfiguration & setProperties(const std::map< std::string, std::string > &properties)
ProducerAccessMode getAccessMode() const
const std::string & getProducerName() const
ProducerConfiguration & setHashingScheme(const HashingScheme &scheme)
const std::set< std::string > & getEncryptionKeys() const
ProducerConfiguration & addEncryptionKey(std::string key)
CompressionType getCompressionType() const
ProducerConfiguration & setPartitionsRoutingMode(const PartitionsRoutingMode &mode)
ProducerConfiguration & setCryptoKeyReader(CryptoKeyReaderPtr cryptoKeyReader)
const unsigned long & getBatchingMaxAllowedSizeInBytes() const
bool hasProperty(const std::string &name) const
const MessageRoutingPolicyPtr & getMessageRouterPtr() const
ProducerConfiguration & setProducerName(const std::string &producerName)
ProducerCryptoFailureAction getCryptoFailureAction() const
ProducerConfiguration & setInitialSequenceId(int64_t initialSequenceId)
BatchingType getBatchingType() const
int64_t getInitialSequenceId() const
ProducerAccessMode
Definition: ProducerConfiguration.h:83
ProducerConfiguration & setProperty(const std::string &name, const std::string &value)
int getMaxPendingMessagesAcrossPartitions() const
ProducerConfiguration & setBatchingMaxAllowedSizeInBytes(const unsigned long &batchingMaxAllowedSizeInBytes)
HashingScheme getHashingScheme() const
ProducerConfiguration & setBatchingType(BatchingType batchingType)
ProducerConfiguration & setMessageRouter(const MessageRoutingPolicyPtr &router)
ProducerConfiguration & setMaxPendingMessagesAcrossPartitions(int maxPendingMessagesAcrossPartitions)
ProducerConfiguration & setCryptoFailureAction(ProducerCryptoFailureAction action)
bool getLazyStartPartitionedProducers() const
const unsigned long & getBatchingMaxPublishDelayMs() const
ProducerConfiguration & setChunkingEnabled(bool chunkingEnabled)
BatchingType
Definition: ProducerConfiguration.h:59
@ DefaultBatching
Definition: ProducerConfiguration.h:69
const bool & getBatchingEnabled() const
ProducerConfiguration & setBlockIfQueueFull(bool)
PartitionsRoutingMode getPartitionsRoutingMode() const
ProducerConfiguration & setMaxPendingMessages(int maxPendingMessages)
ProducerConfiguration & setLazyStartPartitionedProducers(bool)
ProducerConfiguration & setSchema(const SchemaInfo &schemaInfo)
ProducerConfiguration & setBatchingEnabled(const bool &batchingEnabled)
Definition: Schema.h:144
Definition: Authentication.h:31
Result
Definition: Result.h:32