01: /**
02: * $RCSfile: CacheTimer.java,v $
03: * $Revision: 1.3 $
04: * $Date: 2006/01/07 00:21:06 $
05: *
06: * Copyright (C) 2000 CoolServlets.com. All rights reserved.
07: *
08: * ===================================================================
09: * The Apache Software License, Version 1.1
10: *
11: * Redistribution and use in source and binary forms, with or without
12: * modification, are permitted provided that the following conditions
13: * are met:
14: *
15: * 1. Redistributions of source code must retain the above copyright
16: * notice, this list of conditions and the following disclaimer.
17: *
18: * 2. Redistributions in binary form must reproduce the above copyright
19: * notice, this list of conditions and the following disclaimer in
20: * the documentation and/or other materials provided with the
21: * distribution.
22: *
23: * 3. The end-user documentation included with the redistribution,
24: * if any, must include the following acknowledgment:
25: * "This product includes software developed by
26: * CoolServlets.com (http://www.Yasna.com)."
27: * Alternately, this acknowledgment may appear in the software itself,
28: * if and wherever such third-party acknowledgments normally appear.
29: *
30: * 4. The names "Jive" and "CoolServlets.com" must not be used to
31: * endorse or promote products derived from this software without
32: * prior written permission. For written permission, please
33: * contact webmaster@Yasna.com.
34: *
35: * 5. Products derived from this software may not be called "Jive",
36: * nor may "Jive" appear in their name, without prior written
37: * permission of CoolServlets.com.
38: *
39: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
40: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
41: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
42: * DISCLAIMED. IN NO EVENT SHALL COOLSERVLETS.COM OR
43: * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
44: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
45: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
46: * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
47: * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
48: * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
49: * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
50: * SUCH DAMAGE.
51: * ====================================================================
52: *
53: * This software consists of voluntary contributions made by many
54: * individuals on behalf of CoolServlets.com. For more information
55: * on CoolServlets.com, please see <http://www.Yasna.com>.
56: */package com.Yasna.util;
57:
58: /**
59: * Simple timer that keeps the currentTime variable of Cache accurate to one
60: * second of the real clock time.
61: */
62: public class CacheTimer extends Thread {
63:
64: private long updateInterval;
65:
66: /**
67: * Creates a new CacheTimer object. The currentTime of Cache will be
68: * updated at the specified update interval.
69: *
70: * @param updateInterval the interval in milleseconds that updates should
71: * be done.
72: */
73: public CacheTimer(long updateInterval) {
74: this .updateInterval = updateInterval;
75: //Make the timer be a daemon thread so that it won't keep the VM from
76: //shutting down if there are no other threads.
77: this .setDaemon(true);
78: //Start the timer thread.
79: start();
80: }
81:
82: public void run() {
83: //Run the timer indefinetly.
84: while (true) {
85: Cache.currentTime = System.currentTimeMillis();
86: try {
87: sleep(updateInterval);
88: } catch (InterruptedException ie) {
89: }
90: }
91: }
92: }
|