com.atlassian.plugin.util
Class Timeout

java.lang.Object
  extended by com.atlassian.plugin.util.Timeout

public class Timeout
extends java.lang.Object

Used to calculate elapsed time for timeouts from when it is created when successively calling blocking methods. Always converts to nanoseconds.

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.

Since:
2.2

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.
 java.lang.String getRemaining()
           
 long getTime()
           
 java.util.concurrent.TimeUnit getUnit()
           
 boolean isExpired()
          Has this timeout expired
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getNanosTimeout

public static Timeout getNanosTimeout(long time,
                                      java.util.concurrent.TimeUnit unit)
Get a Timeout that uses nanosecond precision. The accuracy will depend on the accuracy of System.nanoTime().

Parameters:
time - the maximum time to wait for the lock
unit - the time unit of the time argument.
Returns:
timeout with TimeUnit.NANOSECONDS precision.

getMillisTimeout

public static Timeout getMillisTimeout(long time,
                                       java.util.concurrent.TimeUnit unit)
Get a Timeout that uses millisecond precision.

Parameters:
time - the maximum time to wait for the lock
unit - the time unit of the time argument.
Returns:
timeout with TimeUnit.MILLISECONDS precision.

getTime

public long getTime()

getUnit

public java.util.concurrent.TimeUnit getUnit()

getRemaining

public java.lang.String getRemaining()

isExpired

public boolean isExpired()
Has this timeout expired

Returns:


Copyright © 2009 Atlassian. All Rights Reserved.