13 #ifndef __PROCESS_METRICS_COUNTER_HPP__
14 #define __PROCESS_METRICS_COUNTER_HPP__
36 push(static_cast<double>(data->value.load()));
43 return static_cast<double>(data->value.load());
66 int64_t prev = data->value.fetch_add(v);
67 push(static_cast<double>(prev + v));
74 explicit Data() :
value(0) {}
76 std::atomic<int64_t>
value;
79 std::shared_ptr<Data> data;
85 #endif // __PROCESS_METRICS_COUNTER_HPP__
virtual ~Counter()
Definition: counter.hpp:39
virtual Future< double > value() const
Definition: counter.hpp:41
Definition: metric.hpp:33
Counter & operator++()
Definition: counter.hpp:52
Definition: counter.hpp:26
Counter operator++(int)
Definition: counter.hpp:57
void reset()
Definition: counter.hpp:46
Counter & operator+=(int64_t v)
Definition: counter.hpp:64
Result< Process > process(pid_t pid)
Definition: freebsd.hpp:30
const std::string & name() const
Definition: metric.hpp:39
window
Definition: counter.hpp:33
void push(double value)
Definition: metric.hpp:63
PID< MetricsProcess > metrics
Definition: future.hpp:57