package com.limegroup.gnutella.statistics;
/**
* Specialized class for Gnutella message statistics. This class modifies
* data accessors to return data in kilobits instead of bytes. To
* preserve data accuracy, data is stored in bytes and converted to
* kilobits. If we did not do this, data would be lost.
*/
public abstract class AbstractKilobytesStatistic extends AbstractStatistic {
/**
* Bytes per kilobyte for conversion convenience.
*/
private static final int BYTES_PER_KILOBYTE = 1024;
/**
* Overridden to report the average for this statistic in kilobyes.
*
* @return the average for this statistic in kilobytes per unit of
* measurement (KB/s)
*/
public double getAverage() {
if(_totalStatsRecorded == 0) return 0;
return (double)((_total/_totalStatsRecorded)/BYTES_PER_KILOBYTE);
}
/**
* Overridden to report the maximum for this statistic in kilobyes.
*
* @return the maximum for a recorded time period for this statistic
* in kilobytes
*/
public double getMax() {
return (double)(_max/BYTES_PER_KILOBYTE);
}
/**
* Overridden to report the total for this statistic in kilobytes.
*
* @return the total for this statistic in kilobytes
*/
public double getTotal() {
return (double)(_total/BYTES_PER_KILOBYTE);
}
}