KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mule > util > counters > impl > InstantRate


1 /*
2  * $Id: InstantRate.java 3798 2006-11-04 04:07:14Z aperepel $
3  * --------------------------------------------------------------------------------------
4  * Copyright (c) MuleSource, Inc. All rights reserved. http://www.mulesource.com
5  *
6  * The software in this package is published under the terms of the MuleSource MPL
7  * license, a copy of which has been included with this distribution in the
8  * LICENSE.txt file.
9  */

10
11 package org.mule.util.counters.impl;
12
13 import org.mule.util.counters.CounterFactory.Type;
14
15 /**
16  * @author <a HREF="mailto:gnt@codehaus.org">Guillaume Nodet</a>
17  * @version $Revision: 3798 $
18  */

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 JavaDoc 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