package sk.stuba.fiit.perconik.core;
import java.util.Map;
import com.google.common.util.concurrent.AtomicLongMap;
/**
* An abstract implementation of {@link CountingListener}
* holding event counts in an atomic map.
*
* @author Pavol Zbell
* @since 1.0
*/
public abstract class AbstractCountingListener extends Adapter implements CountingListener {
/**
* Atomic map of keys to event counts.
*/
protected final AtomicLongMap<Key> counts;
/**
* Constructor for use by subclasses.
*/
protected AbstractCountingListener() {
this.counts = AtomicLongMap.create();
}
public final Map<Key, Long> getCounts() {
return this.counts.asMap();
}
public final long getCount(final Key key) {
return this.counts.get(key);
}
}