You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
1.7 KiB

/*
* Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
package javax.management.timer;
import java.util.Date;
import java.util.logging.Level;
import static com.sun.jmx.defaults.JmxProperties.TIMER_LOGGER;
/**
* This class provides a simple implementation of an alarm clock MBean.
* The aim of this MBean is to set up an alarm which wakes up the timer every timeout (fixed-delay)
* or at the specified date (fixed-rate).
*/
class TimerAlarmClock extends java.util.TimerTask {
Timer listener = null;
long timeout = 10000;
Date next = null;
/*
* ------------------------------------------
* CONSTRUCTORS
* ------------------------------------------
*/
public TimerAlarmClock(Timer listener, long timeout) {
this.listener = listener;
this.timeout = Math.max(0L, timeout);
}
public TimerAlarmClock(Timer listener, Date next) {
this.listener = listener;
this.next = next;
}
/*
* ------------------------------------------
* PUBLIC METHODS
* ------------------------------------------
*/
/**
* This method is called by the timer when it is started.
*/
public void run() {
try {
//this.sleep(timeout);
TimerAlarmClockNotification notif = new TimerAlarmClockNotification(this);
listener.notifyAlarmClock(notif);
} catch (Exception e) {
TIMER_LOGGER.logp(Level.FINEST, Timer.class.getName(), "run",
"Got unexpected exception when sending a notification", e);
}
}
}