INTERFACE IntervalTimer;
A client can use the IntervalTimer
interface to
recieve periodic wake-up calls.
IMPORT Time;
TYPE
T <: Public;
Public = Private OBJECT METHODS
init (duration: Time.T): T;
wakeup() := NIL; (* must be overridden. *)
shutdown();
END;
Private <: ROOT;
The init
call initializes a timer with the specified duration
.
Each client must override the wakeup
call to perform the
periodic task. When finished, clients must call shutdown
in
order to stop the interval timer from waking up periodically.
END IntervalTimer.