- java.lang.Object
-
- com.rabbitmq.jms.util.TimeTracker
-
public class TimeTracker extends java.lang.ObjectSimple class to track elapsed time. Initialised with any time units, returns remaining time (in nanoseconds) on request.
-
-
Field Summary
Fields Modifier and Type Field Description static TimeTrackerZEROPublic tracker that is permanently timed out.
-
Constructor Summary
Constructors Constructor Description TimeTracker()Initialise tracker with maximum duration -- effectively an infinite time.TimeTracker(long timeout, java.util.concurrent.TimeUnit unit)Initialise tracker with duration supplied.TimeTracker(TimeTracker timeTracker)Initialise tracker with duration of old tracker (regardless that the old one has timed out).
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description longremainingMillis()Return the remaining time to go in milliseconds, or zero if there is no more.longremainingNanos()Return the remaining time to go in nanoseconds, or zero if there is no more.booleantimedOut()voidtimedWait(java.lang.Object lock)ATimeUnit.timedWait(java.lang.Object, long)utility which uses theTimeTrackerstate.java.lang.StringtoString()
-
-
-
Field Detail
-
ZERO
public static final TimeTracker ZERO
Public tracker that is permanently timed out.
-
-
Constructor Detail
-
TimeTracker
public TimeTracker(long timeout, java.util.concurrent.TimeUnit unit)Initialise tracker with duration supplied.- Parameters:
timeout- - duration of trackerunit- - units thattimeoutis in, e.g.TimeUnit.MILLISECONDS.
-
TimeTracker
public TimeTracker(TimeTracker timeTracker)
Initialise tracker with duration of old tracker (regardless that the old one has timed out).- Parameters:
timeTracker- - a TimeTracker instance
-
TimeTracker
public TimeTracker()
Initialise tracker with maximum duration -- effectively an infinite time.
-
-
Method Detail
-
remainingNanos
public long remainingNanos()
Return the remaining time to go in nanoseconds, or zero if there is no more.- Returns:
- remaining time (in nanoseconds) - 0 means time has run out
-
remainingMillis
public long remainingMillis()
Return the remaining time to go in milliseconds, or zero if there is no more.- Returns:
- remaining time (in milliseconds) - 0 means time has run out
-
timedWait
public void timedWait(java.lang.Object lock) throws java.lang.InterruptedExceptionATimeUnit.timedWait(java.lang.Object, long)utility which uses theTimeTrackerstate.Used in
synchronized(lock){}blocks that want to timeout based upon a time tracker object.- Parameters:
lock- - object to lock on- Throws:
java.lang.InterruptedException- if the thread is interrupted while waiting.
-
timedOut
public boolean timedOut()
- Returns:
trueif time has run out,falseotherwise
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-