com.ning.http.client.providers.jdk
Class JDKFuture<V>

java.lang.Object
  extended by com.ning.http.client.listenable.AbstractListenableFuture<V>
      extended by com.ning.http.client.providers.jdk.JDKFuture<V>
All Implemented Interfaces:
ListenableFuture<V>, Future<V>
Direct Known Subclasses:
JDKDelegateFuture

public class JDKFuture<V>
extends AbstractListenableFuture<V>


Field Summary
protected  AsyncHandler<V> asyncHandler
           
protected  AtomicBoolean cancelled
           
protected  AtomicBoolean contentProcessed
           
protected  AtomicReference<Throwable> exception
           
protected  Future<V> innerFuture
           
protected  AtomicBoolean isDone
           
protected  int responseTimeoutInMs
           
protected  AtomicBoolean timedOut
           
protected  AtomicLong touch
           
protected  HttpURLConnection urlConnection
           
 
Constructor Summary
JDKFuture(AsyncHandler<V> asyncHandler, int responseTimeoutInMs, HttpURLConnection urlConnection)
           
 
Method Summary
 void abort(Throwable t)
          Abort the current processing, and propagate the Throwable to the AsyncHandler or Future
 boolean cancel(boolean mayInterruptIfRunning)
           
 void content(V v)
          Set the content that will be returned by this instance
 void done(Callable callable)
          Execute a Callable and if there is no exception, mark this Future as done and release the internal lock.
 V get()
           
 V get(long timeout, TimeUnit unit)
           
 boolean getAndSetWriteBody(boolean writeBody)
          Write the Request body
 boolean getAndSetWriteHeaders(boolean writeHeaders)
          Write the Request headers
 boolean hasExpired()
          Is the Future still valid
 boolean isCancelled()
           
 boolean isDone()
           
protected  void setInnerFuture(Future<V> innerFuture)
           
 void touch()
          Touch the current instance to prevent external service to times out.
 
Methods inherited from class com.ning.http.client.listenable.AbstractListenableFuture
addListener, done
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

innerFuture

protected Future<V> innerFuture

asyncHandler

protected final AsyncHandler<V> asyncHandler

responseTimeoutInMs

protected final int responseTimeoutInMs

cancelled

protected final AtomicBoolean cancelled

timedOut

protected final AtomicBoolean timedOut

isDone

protected final AtomicBoolean isDone

exception

protected final AtomicReference<Throwable> exception

touch

protected final AtomicLong touch

contentProcessed

protected final AtomicBoolean contentProcessed

urlConnection

protected final HttpURLConnection urlConnection
Constructor Detail

JDKFuture

public JDKFuture(AsyncHandler<V> asyncHandler,
                 int responseTimeoutInMs,
                 HttpURLConnection urlConnection)
Method Detail

setInnerFuture

protected void setInnerFuture(Future<V> innerFuture)

done

public void done(Callable callable)
Description copied from interface: ListenableFuture
Execute a Callable and if there is no exception, mark this Future as done and release the internal lock.


abort

public void abort(Throwable t)
Description copied from interface: ListenableFuture
Abort the current processing, and propagate the Throwable to the AsyncHandler or Future


content

public void content(V v)
Description copied from interface: ListenableFuture
Set the content that will be returned by this instance

Parameters:
v - the content that will be returned by this instance

cancel

public boolean cancel(boolean mayInterruptIfRunning)

isCancelled

public boolean isCancelled()

isDone

public boolean isDone()

get

public V get()
      throws InterruptedException,
             ExecutionException
Throws:
InterruptedException
ExecutionException

get

public V get(long timeout,
             TimeUnit unit)
      throws InterruptedException,
             ExecutionException,
             TimeoutException
Throws:
InterruptedException
ExecutionException
TimeoutException

hasExpired

public boolean hasExpired()
Is the Future still valid

Returns:
true if response has expired and should be terminated.

touch

public void touch()
Touch the current instance to prevent external service to times out.


getAndSetWriteHeaders

public boolean getAndSetWriteHeaders(boolean writeHeaders)
Write the Request headers


getAndSetWriteBody

public boolean getAndSetWriteBody(boolean writeBody)
Write the Request body



Copyright © 2011. All Rights Reserved.