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