javax.realtime
Class Timed

java.lang.Object
  |
  +--java.lang.Throwable
        |
        +--java.lang.Exception
              |
              +--java.lang.InterruptedException
                    |
                    +--javax.realtime.AsynchronouslyInterruptedException
                          |
                          +--javax.realtime.Timed
All Implemented Interfaces:
java.io.Serializable

public class Timed
extends AsynchronouslyInterruptedException

Create a scope in a RealtimeThread for which interrupt() will be called at the expiration of a timer. This timer will begin measuring time at some point between the time doInterruptible() is invoked and the time the run() method of the Interruptible object is invoked. Each call of doInterruptible() on an instance of Timed will restart the timer for the amount of time given in the constructor or the most recent invocation of resetTime(). All memory use of Timed occurs during construction or the first invocation of doInterruptible(). Subsequent invokes of doInterruptible() do not allocate memory.

Usage: new Timed(T).doInterruptible(interruptible);

See Also:
Serialized Form

Constructor Summary
Timed(HighResolutionTime time)
          Create an instance of Timed with a timer set to timeout.
 
Method Summary
 boolean doInterruptible(Interruptible logic)
          Execute a timeout method.
 void resetTime(HighResolutionTime time)
          To reschedule the timeout for the next invocation of doInterruptible().
 
Methods inherited from class javax.realtime.AsynchronouslyInterruptedException
disable, enable, fire, getGeneric, happened, isEnabled, propagate
 
Methods inherited from class java.lang.Throwable
fillInStackTrace, getLocalizedMessage, getMessage, printStackTrace, printStackTrace, printStackTrace, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Timed

public Timed(HighResolutionTime time)
      throws java.lang.IllegalArgumentException
Create an instance of Timed with a timer set to timeout. If the time is in the past the AsynchronouslyInterruptedException mechanism is immediately activated.
Parameters:
time - The interval of time between the invocation of doInterruptible() and when interrupt() is called on currentRealtimeThread(). If null the IllegalArgumentException is thrown.
Method Detail

doInterruptible

public boolean doInterruptible(Interruptible logic)
Execute a timeout method. Starts the timer and executes the run() method of the given Interruptible object.
Overrides:
doInterruptible in class AsynchronouslyInterruptedException
Parameters:
logic - Implements an Interruptible run() method. If null nothing happens.

resetTime

public void resetTime(HighResolutionTime time)
To reschedule the timeout for the next invocation of doInterruptible().
Parameters:
time - This can be an absolute time or a relative time. If null the timeout is not changed.