|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectjavax.realtime.HighResolutionTime
public abstract class HighResolutionTime
Class HighResolutionTime is the base class for
AbsoluteTime,
RelativeTime, RationalTime.
Used to express time with nanosecond accuracy. This class is never used
directly: it is abstract and has no public constructor.
Instead, one
of its subclasses AbsoluteTime, RelativeTime, or
RationalTime should be used.
When an API is defined that has an
HighResolutionTime as a parameter, it can take either an
absolute, relative, or rational time and will do something appropriate.
Caution: This class is explicitly unsafe in multithreaded situations when it is being changed. No synchronization is done. It is assumed that users of this class who are mutating instances will be doing their own synchronization at a higher level.
| Method Summary | |
|---|---|
abstract AbsoluteTime |
absolute(Clock clock)
Convert the time of this to an absolute time, using the
given instance of Clock to determine the current time when
necessary. |
abstract AbsoluteTime |
absolute(Clock clock,
AbsoluteTime dest)
Convert the time of this to an absolute time, using the
given instance of Clock to determine the current time when
necessary. |
java.lang.Object |
clone()
Return a clone of this. |
int |
compareTo(HighResolutionTime time)
Compares this HighResolutionTime
with the specified HighResolutionTime time. |
int |
compareTo(java.lang.Object object)
For the Comparable interface. |
boolean |
equals(HighResolutionTime time)
Returns true if the argument time
has the same type and values as this. |
boolean |
equals(java.lang.Object object)
Returns true if the argument object
has the same type and values as this. |
Clock |
getClock()
Returns a reference to the clock associated with this. |
long |
getMilliseconds()
Returns the milliseconds component of this. |
int |
getNanoseconds()
Returns the nanoseconds component of this. |
int |
hashCode()
Returns a hash code for this object in accordance with the general contract of Object.hashCode(). |
abstract RelativeTime |
relative(Clock clock)
Convert the time of this to a relative time, using the
given instance of Clock to determine the current time when
necessary. |
abstract RelativeTime |
relative(Clock clock,
RelativeTime dest)
Convert the time of this to a relative time, using the
given instance of Clock to determine the current time when
necessary. |
void |
set(HighResolutionTime time)
Change the value represented by this to that of
the given time. |
void |
set(long millis)
Sets the millisecond component of this to the given
argument, and the nanosecond component of
this to 0. |
void |
set(long millis,
int nanos)
Sets the millisecond and nanosecond components of this. |
static void |
waitForObject(java.lang.Object target,
HighResolutionTime time)
Behaves exactly like target.wait() but with the
enhancement that it waits with a precision of
HighResolutionTime.As for
target.wait(), there is the possibility of
spurious wakeup behavior. |
| Methods inherited from class java.lang.Object |
|---|
finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
| Method Detail |
|---|
public static void waitForObject(java.lang.Object target,
HighResolutionTime time)
throws java.lang.InterruptedException
target.wait() but with the
enhancement that it waits with a precision of
HighResolutionTime.As for
target.wait(), there is the possibility of
spurious wakeup behavior.
The wait time may be relative or absolute, and it is controlled by the clock associated with it. If the wait time is relative, then the calling thread is blocked waiting on target for the amount of time given by time, and measured by the associated clock. If the wait time is absolute, then the calling thread is blocked waiting on target until the indicated time value is reached by the associated clock.
target - The object on which to wait.
The current thread must have a lock on the object.time - The time for which to wait. If it is
RelativeTime(0,0) then wait indefinitely. If it is
null then wait indefinitely.
java.lang.InterruptedException - Thrown if this schedulable object
is interrupted by RealtimeThread.interrupt() or
AsynchronouslyInterruptedException.fire() while it
is waiting.
java.lang.IllegalArgumentException - Thrown if time
represents a relative time less than zero.
java.lang.IllegalMonitorStateException - Thrown if target
is not locked by the caller.
java.lang.UnsupportedOperationException - Thrown if the wait
operation is not supported using the clock associated with
time.Object.wait(),
Object.wait(long),
Object.wait(long,int)public abstract AbsoluteTime absolute(Clock clock)
this to an absolute time, using the
given instance of Clock to determine the current time when
necessary.
If clock is null the
real-time clock is assumed.
A destination object is allocated to return the result.
The clock association of the result is with
the clock passed as a parameter.
See the derived class comments for more specific information.
clock - The instance of Clock used to convert the
time of this into absolute time,
and the new clock association for the result.
AbsoluteTime conversion in a newly allocated
object, associated with the clock parameter.
public abstract AbsoluteTime absolute(Clock clock,
AbsoluteTime dest)
this to an absolute time, using the
given instance of Clock to determine the current time when
necessary.
If clock is null the
real-time clock is assumed.
If dest is not null, the result is placed
there and returned. Otherwise, a new object is allocated for the result.
The clock association of the result is with
the clock passed as a parameter.
See the derived class comments for more specific information.
clock - The instance of Clock used to convert the
time of this into absolute time,
and the new clock association for the result.dest - If dest is not null,
the result is placed there and returned. Otherwise, a new object is
allocated for the result.
AbsoluteTime conversion in
dest if dest is not null,
otherwise the result is returned in a newly allocated object.
It is associated with the clock parameter.public java.lang.Object clone()
this. This method should behave effectively as if
it constructed a new object with the visible values of this.
The new object is created in the
current allocation context.
clone in class java.lang.Objectpublic int compareTo(HighResolutionTime time)
this HighResolutionTime
with the specified HighResolutionTime time.
time - Compares with the time of this.
java.lang.ClassCastException - Thrown if the time parameter is
not of the same class as this.
java.lang.IllegalArgumentException - Thrown if the
time parameter is
not associated with the same clock as this, or when
the time parameter is null.public int compareTo(java.lang.Object object)
Comparable interface.
compareTo in interface java.lang.Comparablejava.lang.IllegalArgumentException - Thrown if the
object parameter is
not associated with the same clock as this, or when
the object parameter is null.
java.lang.ClassCastException - Thrown if the specified object's type
prevents it from being compared to this Object.public boolean equals(HighResolutionTime time)
true if the argument time
has the same type and values as this.
Equality includes
clock association.
time - Value compared to this.
true if the parameter time is of the same type and
has the same
values as
this.public boolean equals(java.lang.Object object)
true if the argument object
has the same type and values as this.
clock association.
equals in class java.lang.Objectobject - Value compared to this.
true
if the parameter object is of the same type and
has the same
values as this.public Clock getClock()
clock associated with this.
clock associated with
this.public final long getMilliseconds()
this.
this.public final int getNanoseconds()
this.
this.public int hashCode()
Object.hashCode(). Time objects that are
equal have the same hash code.
hashCode in class java.lang.Objectpublic abstract RelativeTime relative(Clock clock)
this to a relative time, using the
given instance of Clock to determine the current time when
necessary.
If clock is null the
real-time clock is assumed.
A destination object is allocated to return the result.
The clock association of the result is with
the clock passed as a parameter.
See the derived class comments for more specific information.
clock - The instance of Clock used to convert the
time of this into relative time,
and the new clock association for the result.
RelativeTime conversion in a newly allocated
object, associated with the clock parameter.
public abstract RelativeTime relative(Clock clock,
RelativeTime dest)
this to a relative time, using the
given instance of Clock to determine the current time when
necessary.
If clock is null the
real-time clock is assumed.
If dest is not null, the result is placed
there and returned. Otherwise, a new object is allocated for the result.
The clock association of the result is with
the clock passed as a parameter.
See the derived class comments for more specific information.
clock - The instance of Clock used to convert the
time of this into relative time,
and the new clock association for the result.dest - If dest is not null,
the result is placed there and returned. Otherwise, a new object is
allocated for the result.
RelativeTime conversion in
dest if dest is not null,
otherwise the result is returned in a newly allocated object.
It is associated with the clock parameter.public void set(HighResolutionTime time)
this to that of
the given time. If the time parameter is null
this method will throw IllegalArgumentException. If the type
of this and the type of the given time are not the same this
method will throw ClassCastException. The clock associated with
this is set to be the clock associated with the time parameter.
time - The new value for this.
java.lang.IllegalArgumentException - Thrown if the parameter time
is null.
java.lang.ClassCastException - Thrown if the type of this
and the type of the parameter time are not the same.public void set(long millis)
this to the given
argument, and the nanosecond component of
this to 0. This method is equivalent to
set(millis, 0).
millis - This value shall be the value of the millisecond
component of this at the completion of the call.
public void set(long millis,
int nanos)
this.
The setting is subject to parameter normalization.
If there is an overflow in the millisecond component while normalizing
then an IllegalArgumentException will be thrown.
If after normalization the time is negative then the time represented by
this is set to a negative value, but note that negative
times are not supported everywhere. For instance, a negative relative
time is an invalid value for a periodic thread's period.
millis - The desired value for the millisecond component of
this at the completion of the call.
The actual value is the result of parameter normalization.nanos - The desired value for the nanosecond component of
this at the completion of the call.
The actual value is the result of parameter normalization.
java.lang.IllegalArgumentException - Thrown if there is an overflow in the
millisecond component while normalizing.
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||