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