KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > clif > scenario > util > timers > UniformRandomTimer


1 /*
2 * CLIF is a Load Injection Framework
3 * Copyright (C) 2003 France Telecom R&D
4 * Copyright (C) 2003 INRIA
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 *
20 * CLIF $Name: $
21 *
22 * Contact: clif@objectweb.org
23 *
24 * @authors: Julien Buret
25 * @authors: Nicolas Droze
26 */

27
28 package org.objectweb.clif.scenario.util.timers;
29
30 /**
31  * This class represents a timer with an uniform random distribution.
32  */

33 public class UniformRandomTimer extends RandomTimer {
34
35     private long rand;
36
37     /**
38      * The constructor with no parameters (no range)
39      */

40     public UniformRandomTimer() {
41     }
42
43     /**
44      * The constructor with specific lower bound and upper bound.
45      * @param min The lower bound.
46      * @param max The upper bound.
47      */

48     public UniformRandomTimer(int min, int max) {
49         setRange(min, max);
50     }
51
52     /**
53      * This method calculate a random delay between the range of the timer.
54      * @return The random delay calculated with an uniform distribution.
55      */

56     public long getDelay() {
57
58         rand = (long) Math.round(getMin() + Math.random() * (getRange()));
59         return rand;
60     }
61
62     /**
63      * This is the useful method to write a scenario.
64      * Calling this method will pause the thread of a random delay.
65      */

66     public void delay() {
67         try {
68             Thread.sleep(getDelay());
69         } catch (InterruptedException JavaDoc e) {
70             e.printStackTrace();
71         }
72     }
73
74 }
75
Popular Tags