package io.pcp.parfait;
import static tec.uom.se.AbstractUnit.ONE;
import java.util.concurrent.atomic.AtomicInteger;
import javax.measure.Unit;
/**
* {@link Monitorable} implementation for a free-running Integer value.
*/
public class MonitoredIntValue extends MonitoredNumeric<AtomicInteger> {
public MonitoredIntValue(String name, String description,
MonitorableRegistry registry, Integer initialValue) {
this(name, description, registry, initialValue, ONE);
}
public MonitoredIntValue(String name, String description,
Integer initialValue) {
this(name, description, MonitorableRegistry.DEFAULT_REGISTRY, initialValue, ONE);
}
public MonitoredIntValue(String name, String description, MonitorableRegistry registry,
Integer initialValue, Unit<?> unit) {
super(name, description, registry, new AtomicInteger(
initialValue), unit);
}
/**
* Convenience method to increment atomic numeric types.
*/
public void inc() {
inc(1);
}
@Override
public void inc(int delta) {
value.addAndGet(delta);
notifyMonitors();
}
/**
* Convenience method to decrement atomic numeric types.
*/
public void dec() {
dec(1);
}
@Override
public void dec(int delta) {
inc(-delta);
}
}