package de.axone.cache;
import java.util.concurrent.atomic.AtomicLong;
public class Watcher implements Watched {
private AtomicLong hits = new AtomicLong(),
misses = new AtomicLong();
public void hit(){
hits.incrementAndGet();
}
public void miss(){
misses.incrementAndGet();
}
@Override
public double ratio() {
long hits = this.hits.get();
long misses = this.misses.get();
long sum = hits+misses;
if( sum == 0 ) return 0;
return (double)hits/sum;
}
public long hits(){
return hits.get();
}
public long misses(){
return misses.get();
}
public long accesses(){
return hits.get()+misses.get();
}
}