pulsar-client-cpp
KeySharedPolicy.h
1 
19 #pragma once
20 
21 #include <pulsar/defines.h>
22 
23 #include <memory>
24 #include <utility>
25 #include <vector>
26 
27 namespace pulsar {
28 
33 {
34 
39 
44  STICKY = 1
45 };
46 
47 struct KeySharedPolicyImpl;
48 
49 typedef std::pair<int, int> StickyRange;
50 typedef std::vector<StickyRange> StickyRanges;
51 
52 class PULSAR_PUBLIC KeySharedPolicy {
53  public:
55  ~KeySharedPolicy();
56 
58  KeySharedPolicy& operator=(const KeySharedPolicy&);
59 
64  KeySharedPolicy clone() const;
65 
72  KeySharedPolicy& setKeySharedMode(KeySharedMode keySharedMode);
73 
77  KeySharedMode getKeySharedMode() const;
78 
89  KeySharedPolicy& setAllowOutOfOrderDelivery(bool allowOutOfOrderDelivery);
90 
94  bool isAllowOutOfOrderDelivery() const;
95 
100  KeySharedPolicy& setStickyRanges(std::initializer_list<StickyRange> ranges);
101 
105  KeySharedPolicy& setStickyRanges(const StickyRanges& ranges);
106 
110  StickyRanges getStickyRanges() const;
111 
112  private:
113  std::shared_ptr<KeySharedPolicyImpl> impl_;
114 };
115 } // namespace pulsar
pulsar::KeySharedPolicy
Definition: KeySharedPolicy.h:52
pulsar::KeySharedMode
KeySharedMode
Definition: KeySharedPolicy.h:32
pulsar::AUTO_SPLIT
@ AUTO_SPLIT
Definition: KeySharedPolicy.h:38
pulsar
Definition: Authentication.h:31
pulsar::STICKY
@ STICKY
Definition: KeySharedPolicy.h:44