Class Average

java.lang.Object
com.biglybt.core.util.Average
Direct Known Subclasses:
PausableAverage

public class Average extends Object
This class is used to compute average (mostly for speed transfer).
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private long
     
    private final int
     
    private final int
     
    private final int
    It uses a simple array of longs to store values in a cycling way.
    private long[]
     
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    Average(int _refreshRate, int _period)
    Private constructor for an Average
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addValue(long value)
    Public method to add a value to the average, the time it is added is the time this method is called.
    void
     
    void
     
    long
    This method can be called to get the current average value.
    long
    getAverage(int average_period)
     
    private Object[]
     
    double
     
    getDoubleAverageAsString(int precision)
     
    protected long
     
    static Average
    getInstance(int refreshRate, int period)
    The way to get a new Average Object, it does some parameter checking.
    long
     
    final long
     
    protected final long
    getSum(int slots)
     
    private void
    update(long timeFactor)
    This method is used to update the buffer that stores the values, in fact it mostly does clean-up over this buffer, erasing all values that have not been updated.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • refreshRate

      private final int refreshRate
      It uses a simple array of longs to store values in a cycling way. The array has 2 more elements than really needed to compute the average. One is the next one to be filled, and its value is always 0, and the other one is the one currently filled, which value is not taken into account for the average.
    • period

      private final int period
    • nbElements

      private final int nbElements
    • lastUpdate

      private long lastUpdate
    • values

      private long[] values
  • Constructor Details

    • Average

      protected Average(int _refreshRate, int _period)
      Private constructor for an Average
      Parameters:
      _refreshRate - the refresh rate in ms
      _period - the period in s
  • Method Details

    • getInstance

      public static Average getInstance(int refreshRate, int period)
      The way to get a new Average Object, it does some parameter checking. refreshRate must be greater than 100, and period*1000 must be greater than refreshRate
      Parameters:
      refreshRate - in ms
      period - in s
      Returns:
      the newlly created Average, or null if parameters are wrong
    • clear

      public void clear()
    • cloneFrom

      public void cloneFrom(Average other)
    • getCloneDetails

      private Object[] getCloneDetails()
    • update

      private void update(long timeFactor)
      This method is used to update the buffer that stores the values, in fact it mostly does clean-up over this buffer, erasing all values that have not been updated.
      Parameters:
      timeFactor - which is the currentTime divided by the refresh Rate
    • addValue

      public void addValue(long value)
      Public method to add a value to the average, the time it is added is the time this method is called.
      Parameters:
      value - the value to be added to the Average
    • getAverage

      public long getAverage()
      This method can be called to get the current average value.
      Returns:
      the current Average computed.
    • getDoubleAverage

      public double getDoubleAverage()
    • getDoubleAverageAsString

      public String getDoubleAverageAsString(int precision)
    • getAverage

      public long getAverage(int average_period)
    • getPointValue

      public long getPointValue()
    • getSum

      public final long getSum()
    • getSum

      protected final long getSum(int slots)
    • getEffectiveTime

      protected long getEffectiveTime()