1 10 11 package org.mule.util.counters.impl; 12 13 import org.mule.util.counters.CounterFactory.Type; 14 15 19 public class InstantRate extends AggregateCounter 20 { 21 22 private double firstTime; 23 private double lastTime; 24 private double value; 25 26 public InstantRate(String name, AbstractCounter base) 27 { 28 super(name, Type.INSTANT_RATE, base); 29 } 30 31 public double nextValue() 32 { 33 if (firstTime == 0 || firstTime == lastTime) 34 { 35 return Double.NaN; 36 } 37 else 38 { 39 return value / (lastTime - firstTime) * 1000.0; 40 } 41 } 42 43 public void doCompute() 44 { 45 firstTime = lastTime; 46 lastTime = System.currentTimeMillis(); 47 value = getBase().nextValue(); 48 } 49 50 } 51 | Popular Tags |