package freenet.node.stats;
public abstract class StoreAccessStats {
public abstract long hits();
public abstract long misses();
public abstract long falsePos();
public abstract long writes();
public long readRequests() {
return hits() + misses();
}
public long successfulReads() {
if (readRequests() > 0)
return hits();
else
return 0;
}
public double successRate() throws StatsNotAvailableException {
if (readRequests() > 0)
return (100.0 * hits() / readRequests());
else
throw new StatsNotAvailableException();
}
public double accessRate(long nodeUptimeSeconds) {
return (1.0 * readRequests() / nodeUptimeSeconds);
}
public double writeRate(long nodeUptimeSeconds) {
return (1.0 * writes() / nodeUptimeSeconds);
}
}