pulsar-client-cpp
ProducerConfiguration.h
1 
19 #ifndef PULSAR_PRODUCERCONFIGURATION_H_
20 #define PULSAR_PRODUCERCONFIGURATION_H_
21 #include <pulsar/CompressionType.h>
22 #include <pulsar/MessageRoutingPolicy.h>
23 #include <pulsar/Result.h>
24 #include <pulsar/Message.h>
25 #include <boost/function.hpp>
26 #pragma GCC visibility push(default)
27 
28 namespace pulsar {
29 
30 typedef boost::function<void(Result, const Message& msg)> SendCallback;
31 typedef boost::function<void(Result)> CloseCallback;
32 
33 class ProducerConfigurationImpl;
34 class PulsarWrapper;
35 
40  public:
41  enum PartitionsRoutingMode {
42  UseSinglePartition,
43  RoundRobinDistribution,
44  CustomPartition
45  };
50 
51  ProducerConfiguration& setSendTimeout(int sendTimeoutMs);
52  int getSendTimeout() const;
53 
54  ProducerConfiguration& setCompressionType(CompressionType compressionType);
55  CompressionType getCompressionType() const;
56 
57  ProducerConfiguration& setMaxPendingMessages(int maxPendingMessages);
58  int getMaxPendingMessages() const;
59 
60  ProducerConfiguration& setPartitionsRoutingMode(const PartitionsRoutingMode& mode);
61  PartitionsRoutingMode getPartitionsRoutingMode() const;
62 
63  ProducerConfiguration& setMessageRouter(const MessageRoutingPolicyPtr& router);
64  const MessageRoutingPolicyPtr& getMessageRouterPtr() const;
65 
66  ProducerConfiguration& setBlockIfQueueFull(bool);
67  bool getBlockIfQueueFull() const;
68 
69  // Zero queue size feature will not be supported on consumer end if batching is enabled
70  ProducerConfiguration& setBatchingEnabled(const bool& batchingEnabled);
71  const bool& getBatchingEnabled() const;
72 
73  ProducerConfiguration& setBatchingMaxMessages(const unsigned int& batchingMaxMessages);
74  const unsigned int& getBatchingMaxMessages() const;
75 
76  ProducerConfiguration& setBatchingMaxAllowedSizeInBytes(
77  const unsigned long& batchingMaxAllowedSizeInBytes);
78  const unsigned long& getBatchingMaxAllowedSizeInBytes() const;
79 
80  ProducerConfiguration& setBatchingMaxPublishDelayMs(
81  const unsigned long& batchingMaxPublishDelayMs);
82  const unsigned long& getBatchingMaxPublishDelayMs() const;
83 
84  friend class PulsarWrapper;
85 
86  private:
87  struct Impl;
88  boost::shared_ptr<ProducerConfigurationImpl> impl_;
89 };
90 }
91 #pragma GCC visibility pop
92 #endif /* PULSAR_PRODUCERCONFIGURATION_H_ */
93 
Definition: Authentication.h:31
Definition: ProducerConfiguration.h:39