package org.limewire.statistic;
/**
* Abstract class for recording basic data in kilobytes instead of bytes.
* In order to preserve data accuracy, data is stored in bytes and converted to
* kilobytes; otherwise, data would be lost.
* <p>
* A sample, aka a cycle of data, is all the data collected between calls to
* {@link #storeCurrentStat()}.
* Therefore, the {@link #getMax()} is the largest sample and the
* {@link #getAverage()} is the total size / the number of samples.
* <p>
* An example of using <code>BasicKilobytesStatistic</code>:
<pre>
class Stats extends BasicKilobytesStatistic {}
Statistic s = new Stats();
for(int i = 0; i < 1024; i++)
s.incrementStat();
s.storeCurrentStat();
s.addData(1024 * 2);
s.storeCurrentStat();
s.addData(1024 * 3);
s.storeCurrentStat();
s.addData(1024 * 4);
s.storeCurrentStat();
s.addData(1024 * 5);
s.storeCurrentStat();
System.out.println("Total: " + s.getTotal());
System.out.println("Max: " + s.getMax());
System.out.println("Average: " + s.getAverage());
Output:
Total: 15.0
Max: 5.0
Average: 3.0
</pre>
*/
public abstract class BasicKilobytesStatistic extends AbstractKilobytesStatistic {
public BasicKilobytesStatistic(StatisticAccumulator statisticAccumulator) {
statisticAccumulator.addBasicStatistic(this);
}
}