MCPcopy Create free account
hub / github.com/ceph/ceph / Counter

Class Counter

src/include/counter.h:22–55  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

20
21template <typename T>
22class Counter {
23public:
24 Counter() {
25 _count()++;
26 _increments()++;
27 }
28 Counter(const Counter &rhs) {
29 _count()++;
30 _increments()++;
31 }
32 Counter(Counter &&rhs) {}
33 ~Counter() {
34 _count()--;
35 }
36 static uint64_t count() {
37 return _count();
38 }
39 static uint64_t increments() {
40 return _increments();
41 }
42 static uint64_t decrements() {
43 return increments()-count();
44 }
45
46private:
47 static std::atomic<uint64_t> &_count() {
48 static std::atomic<uint64_t> c;
49 return c;
50 }
51 static std::atomic<uint64_t> &_increments() {
52 static std::atomic<uint64_t> i;
53 return i;
54 }
55};
56
57#endif

Calls

no outgoing calls