/
CallbackCumulativeCounter.java
42 lines (33 loc) · 1.25 KB
/
CallbackCumulativeCounter.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package com.signalfuse.codahale.metrics;
import com.codahale.metrics.Counter;
import com.codahale.metrics.Gauge;
/**
* <p>
* Sometimes you want the rate of something like you would with a {@link Counter}, but you can't get
* individual events and instead must set a total "count" of events at some periodic rate. This
* class abstracts that out into a {@link Counter} that codahale can understand.
* <p/>
*/
public class CallbackCumulativeCounter extends Counter {
private final Callback callback;
public CallbackCumulativeCounter(Callback callback) {
this.callback = callback;
}
@Override public void inc() {
throw new UnsupportedOperationException("inc() on CallbackCumulativeCounter");
}
@Override public void inc(long n) {
throw new UnsupportedOperationException("inc() on CallbackCumulativeCounter");
}
@Override public void dec() {
throw new UnsupportedOperationException("dec() on CallbackCumulativeCounter");
}
@Override public void dec(long n) {
throw new UnsupportedOperationException("dec() on CallbackCumulativeCounter");
}
@Override public long getCount() {
return callback.getValue();
}
public interface Callback extends Gauge<Long> {
}
}