|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.atlassian.util.concurrent.Timeout
@Immutable public final class Timeout
Automatically calculates elapsed time from when it is created. Useful when successively calling blocking methods and a time since call time needs to be worked out.
Usage:
Timeout timeout = Timeout.getNanosTimeout(1, TimeUnit.SECONDS); String str = futureString.get(timeout.getTime(), timeout.getUnit()); Integer num = futureInt.get(timeout.getTime(), timeout.getUnit());where if the first call takes quarter of a second, the second call is passed the equivalent of three-quarters of a second.
| Nested Class Summary | |
|---|---|
static interface |
Timeout.TimeSupplier
Supply time and precision to a Timeout. |
| Method Summary | |
|---|---|
static Timeout |
getMillisTimeout(long time,
java.util.concurrent.TimeUnit unit)
Get a Timeout that uses millisecond precision. |
static Timeout |
getNanosTimeout(long time,
java.util.concurrent.TimeUnit unit)
Get a Timeout that uses nanosecond precision. |
long |
getTime()
|
RuntimeTimeoutException |
getTimeoutException()
|
long |
getTimeoutPeriod()
The original timeout period expressed in units |
java.util.concurrent.TimeUnit |
getUnit()
|
boolean |
isExpired()
Has this timeout expired |
void |
throwTimeoutException()
Always throws a TimeoutException. |
static Supplier<Timeout> |
timeoutFactory(long time,
java.util.concurrent.TimeUnit unit,
Timeout.TimeSupplier supplier)
Factory for creating timeouts of the specified duration. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Method Detail |
|---|
public static Timeout getNanosTimeout(long time,
java.util.concurrent.TimeUnit unit)
Timeout that uses nanosecond precision. The accuracy will
depend on the accuracy of System.nanoTime().
time - the maximum time to wait for the lockunit - the time unit of the time argument.
TimeUnit.NANOSECONDS precision.
public static Timeout getMillisTimeout(long time,
java.util.concurrent.TimeUnit unit)
Timeout that uses millisecond precision. The accuracy will
depend on the accuracy of System.currentTimeMillis().
time - the maximum time to wait for the lockunit - the time unit of the time argument.
TimeUnit.MILLISECONDS precision.
public static Supplier<Timeout> timeoutFactory(long time,
java.util.concurrent.TimeUnit unit,
Timeout.TimeSupplier supplier)
Timeout will start when the factory is called.
Generally, use the getMillisTimeout(long, TimeUnit) or
getNanosTimeout(long, TimeUnit) factory methods directly. Only use
this if a custom Timeout.TimeSupplier is required – for instance for
testing, you can use this to mock out the actual passage of time.
time - how long the timeouts should be forunit - in what units time is expressed insupplier - the thing that tells the timeout what the current time is.public long getTime()
public java.util.concurrent.TimeUnit getUnit()
public boolean isExpired()
public long getTimeoutPeriod()
units
public void throwTimeoutException()
throws TimedOutException
TimeoutException.
TimedOutException, - always.
TimedOutExceptionpublic RuntimeTimeoutException getTimeoutException()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||