rippled
Loading...
Searching...
No Matches
Counter.h
1#ifndef BEAST_INSIGHT_COUNTER_H_INCLUDED
2#define BEAST_INSIGHT_COUNTER_H_INCLUDED
3
4#include <xrpl/beast/insight/CounterImpl.h>
5
6#include <memory>
7
8namespace beast {
9namespace insight {
10
19class Counter final
20{
21public:
23
28 {
29 }
30
36 explicit Counter(std::shared_ptr<CounterImpl> const& impl) : m_impl(impl)
37 {
38 }
39
42 void
43 increment(value_type amount) const
44 {
45 if (m_impl)
46 m_impl->increment(amount);
47 }
48
49 Counter const&
50 operator+=(value_type amount) const
51 {
52 increment(amount);
53 return *this;
54 }
55
56 Counter const&
57 operator-=(value_type amount) const
58 {
59 increment(-amount);
60 return *this;
61 }
62
63 Counter const&
64 operator++() const
65 {
66 increment(1);
67 return *this;
68 }
69
70 Counter const&
71 operator++(int) const
72 {
73 increment(1);
74 return *this;
75 }
76
77 Counter const&
78 operator--() const
79 {
80 increment(-1);
81 return *this;
82 }
83
84 Counter const&
85 operator--(int) const
86 {
87 increment(-1);
88 return *this;
89 }
90
91private:
93};
94
95} // namespace insight
96} // namespace beast
97
98#endif
A metric for measuring an integral value.
Definition Counter.h:20
std::shared_ptr< CounterImpl > m_impl
Definition Counter.h:92
Counter()
Create a null metric.
Definition Counter.h:27
Counter const & operator--() const
Definition Counter.h:78
void increment(value_type amount) const
Increment the counter.
Definition Counter.h:43
Counter const & operator++(int) const
Definition Counter.h:71
Counter const & operator--(int) const
Definition Counter.h:85
Counter(std::shared_ptr< CounterImpl > const &impl)
Create the metric reference the specified implementation.
Definition Counter.h:36
Counter const & operator++() const
Definition Counter.h:64
Counter const & operator+=(value_type amount) const
Definition Counter.h:50
Counter const & operator-=(value_type amount) const
Definition Counter.h:57