pulsar-client-cpp
BrokerConsumerStats.h
1 
19 #ifndef PULSAR_CPP_BROKERCONSUMERSTATS_H
20 #define PULSAR_CPP_BROKERCONSUMERSTATS_H
21 
22 #include <pulsar/ConsumerType.h>
23 #include <pulsar/Result.h>
24 #include <pulsar/defines.h>
25 
26 #include <functional>
27 #include <iostream>
28 #include <memory>
29 
30 namespace pulsar {
31 class BrokerConsumerStatsImplBase;
32 class PulsarWrapper;
33 
34 /* @note: isValid() or getXXX() methods are not allowed on an invalid BrokerConsumerStats */
35 class PULSAR_PUBLIC BrokerConsumerStats {
36  private:
37  std::shared_ptr<BrokerConsumerStatsImplBase> impl_;
38 
39  public:
40  BrokerConsumerStats() = default;
41  explicit BrokerConsumerStats(std::shared_ptr<BrokerConsumerStatsImplBase> impl);
42 
43  virtual ~BrokerConsumerStats() = default;
44 
46  virtual bool isValid() const;
47 
49  virtual double getMsgRateOut() const;
50 
52  virtual double getMsgThroughputOut() const;
53 
55  virtual double getMsgRateRedeliver() const;
56 
58  virtual const std::string getConsumerName() const;
59 
61  virtual uint64_t getAvailablePermits() const;
62 
64  virtual uint64_t getUnackedMessages() const;
65 
67  virtual bool isBlockedConsumerOnUnackedMsgs() const;
68 
70  virtual const std::string getAddress() const;
71 
73  virtual const std::string getConnectedSince() const;
74 
76  virtual const ConsumerType getType() const;
77 
79  virtual double getMsgRateExpired() const;
80 
82  virtual uint64_t getMsgBacklog() const;
83 
85  std::shared_ptr<BrokerConsumerStatsImplBase> getImpl() const;
86 
87  friend class PulsarWrapper;
88  friend PULSAR_PUBLIC std::ostream &operator<<(std::ostream &os, const BrokerConsumerStats &obj);
89 };
90 typedef std::function<void(Result result, BrokerConsumerStats brokerConsumerStats)>
91  BrokerConsumerStatsCallback;
92 } // namespace pulsar
93 
94 #endif // PULSAR_CPP_BROKERCONSUMERSTATS_H
pulsar::Result
Result
Definition: Result.h:31
pulsar::ConsumerType
ConsumerType
Definition: ConsumerType.h:23
pulsar::BrokerConsumerStats
Definition: BrokerConsumerStats.h:35
pulsar
Definition: Authentication.h:31