|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--javax.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
many 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. This use of two
clocks reduces the queue size of the accurate clock and thus queue
management overhead is reduced.
Field Summary | |
private javax.realtime.RelativeTime |
resolution
|
private static javax.realtime.RealtimeClock |
rtc
|
Constructor Summary | |
Clock()
Constructor for the abstract class. |
Method Summary | |
static javax.realtime.Clock |
getRealtimeClock()
There is always one clock object available: a realtime clock that advances in sync with the external world. |
abstract javax.realtime.RelativeTime |
getResolution()
Gets the resolution of the clock -- the interval between ticks. |
javax.realtime.AbsoluteTime |
getTime()
Gets the current time in a freshly allocated object. |
abstract void |
getTime(javax.realtime.AbsoluteTime time)
Gets the current time in an existing object. |
abstract void |
setResolution(javax.realtime.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 |
Field Detail |
private javax.realtime.RelativeTime resolution
private static javax.realtime.RealtimeClock rtc
Constructor Detail |
public Clock()
Method Detail |
public static javax.realtime.Clock getRealtimeClock()
Clock
.
Clock
.public abstract javax.realtime.RelativeTime getResolution()
RelativeTime
representing the
resolution of this
.public javax.realtime.AbsoluteTime getTime()
AbsoluteTime
representing the
current time.public abstract void getTime(javax.realtime.AbsoluteTime time)
AbsoluteTime
is changed some time between
the invocation of the method and the return of the method.
time
- The instance of AbsoluteTime
object which
will have its time changed. If null, then nothing happens.public abstract void setResolution(javax.realtime.RelativeTime resolution)
this
. For some hardware clocks
setting resolution impossible and if called on those nothing happens.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |