|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavax.realtime.Clock
A clock advances from the past, through the present, into the future. It has a
concept of now that can be queried through Clock.getTime()
, and it can
have events queued on it which will be fired when their appointed time is reached.
There are may possible subclasses of clocks: real-time clocks, user time clocks,
simulation time clocks. The idea of using multiple clocks may at first seem
unusual, but we allow it as a possible resource allocation strategy.
Consider a real-time system where the natural events of the system have different tolerances for jitter (jitter refers to the distribution of the differences between when the events are actually raised or noticed by the software and when they should have really occurred according to time in the real-world).
Assume the
system functions properly if event A is noticed or raised within plus or minus 100
seconds of the actual time it should occur but event B must be noticed or raised
within 100 microseconds of its actual time. Further assume, without loss of
generality, that events A and B are periodic. An application could then create two
instances of PeriodicTimer
based on
two clocks. The timer for event B should be based on a
Clock
which checks its queue at least every 100 microseconds but the
timer for event A could be based on a Clock
that checked its queue only every 100 seconds. The use of two clocks reduces the
queue size of the accurate clock and thus queue management overhead is reduced.
Constructor Summary | |
Clock()
Void constructor. |
Method Summary | |
static Clock |
getRealtimeClock()
There is always one clock object available: a realtime clock that advances in synch with the external world. |
abstract RelativeTime |
getResolution()
Return the resolution of the clock -- the interval between two ticks. |
AbsoluteTime |
getTime()
Return the current time in a freshly allocated object. |
abstract void |
getTime(AbsoluteTime time)
Returns the current time in an existing object. |
abstract void |
setResolution(RelativeTime resolution)
Set the resolution of this. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public Clock()
Method Detail |
public static Clock getRealtimeClock()
Clock
.
Clock
public abstract RelativeTime getResolution()
RelativeTime
representing
the resolution of this.public AbsoluteTime getTime()
AbsoluteTime
object
representing the current time.public abstract void getTime(AbsoluteTime time)
AbsoluteTime
is changed to
some time between the invocation of the method and the return of the method.
time
- The AbsoluteTime
object
which will have its time changed. If null
, then nothing happens.public abstract void setResolution(RelativeTime resolution)
resolution
- The new resolution of this
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |