com.ning.http.client.providers.netty
Class NettyResponseFuture<V>

java.lang.Object
  extended by com.ning.http.client.providers.netty.NettyResponseFuture<V>
Type Parameters:
V -
All Implemented Interfaces:
FutureImpl<V>, Future<V>

public final class NettyResponseFuture<V>
extends Object
implements FutureImpl<V>

A Future that can be used to track when an asynchronous HTTP request has been fully processed.


Field Summary
static String MAX_RETRY
           
 
Constructor Summary
NettyResponseFuture(URI uri, Request request, AsyncHandler<V> asyncHandler, org.jboss.netty.handler.codec.http.HttpRequest nettyRequest, int responseTimeoutInMs, NettyAsyncHttpProvider asyncHttpProvider)
           
 
Method Summary
 void abort(Throwable t)
          Abort the current processing, and propagate the Throwable to the AsyncHandler or Future
protected  void attachChannel(org.jboss.netty.channel.Channel channel)
          Attach a Channel for further re-use.
protected  void attachOpenChannel(org.jboss.netty.channel.Channel channel)
           
 boolean cancel(boolean force)
          
 boolean cannotBeReplay()
          Return true if the Future cannot be recovered.
protected  boolean canRetry()
           
protected  org.jboss.netty.channel.Channel channel()
          Return the channel that was previously used.
 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 l, TimeUnit tu)
          
protected  boolean getAndSetAuth(boolean inDigestAuth)
           
 boolean getAndSetStatusReceived(boolean sr)
           
 boolean getAndSetWriteBody(boolean writeBody)
          Write the Request body
 boolean getAndSetWriteHeaders(boolean writeHeaders)
          Write the Request headers
protected  AsyncHandler<V> getAsyncHandler()
           
protected  org.jboss.netty.handler.codec.http.HttpResponse getHttpResponse()
           
protected  boolean getKeepAlive()
           
 org.jboss.netty.handler.codec.http.HttpRequest getNettyRequest()
           
protected  Request getRequest()
           
protected  com.ning.http.client.providers.netty.NettyResponseFuture.STATE getState()
           
protected  URI getURI()
           
 boolean hasExpired()
          Is the Future still valid
protected  int incrementAndGetCurrentRedirectCount()
           
 boolean isCancelled()
          
 boolean isDone()
          
protected  boolean isInAuth()
           
protected  NettyAsyncHttpProvider provider()
           
protected  void setHttpResponse(org.jboss.netty.handler.codec.http.HttpResponse httpResponse)
           
protected  void setKeepAlive(boolean keepAlive)
           
protected  void setNettyRequest(org.jboss.netty.handler.codec.http.HttpRequest nettyRequest)
           
protected  void setReaperFuture(Future<?> reaperFuture)
           
protected  void setState(com.ning.http.client.providers.netty.NettyResponseFuture.STATE state)
           
protected  void setURI(URI uri)
           
 String toString()
           
 void touch()
          Touch the current instance to prevent external service to times out.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

MAX_RETRY

public static final String MAX_RETRY
See Also:
Constant Field Values
Constructor Detail

NettyResponseFuture

public NettyResponseFuture(URI uri,
                           Request request,
                           AsyncHandler<V> asyncHandler,
                           org.jboss.netty.handler.codec.http.HttpRequest nettyRequest,
                           int responseTimeoutInMs,
                           NettyAsyncHttpProvider asyncHttpProvider)
Method Detail

getURI

protected URI getURI()
              throws MalformedURLException
Throws:
MalformedURLException

setURI

protected void setURI(URI uri)

isDone

public boolean isDone()

Specified by:
isDone in interface Future<V>

isCancelled

public boolean isCancelled()

Specified by:
isCancelled in interface Future<V>

cancel

public boolean cancel(boolean force)

Specified by:
cancel in interface Future<V>

hasExpired

public boolean hasExpired()
Is the Future still valid

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

get

public V get()
      throws InterruptedException,
             ExecutionException

Specified by:
get in interface Future<V>
Throws:
InterruptedException
ExecutionException

get

public V get(long l,
             TimeUnit tu)
      throws InterruptedException,
             TimeoutException,
             ExecutionException

Specified by:
get in interface Future<V>
Throws:
InterruptedException
TimeoutException
ExecutionException

done

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

Specified by:
done in interface FutureImpl<V>

abort

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

Specified by:
abort in interface FutureImpl<V>

content

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

Specified by:
content in interface FutureImpl<V>
Parameters:
v - the content that will be returned by this instance

getRequest

protected final Request getRequest()

getNettyRequest

public final org.jboss.netty.handler.codec.http.HttpRequest getNettyRequest()

setNettyRequest

protected final void setNettyRequest(org.jboss.netty.handler.codec.http.HttpRequest nettyRequest)

getAsyncHandler

protected final AsyncHandler<V> getAsyncHandler()

getKeepAlive

protected final boolean getKeepAlive()

setKeepAlive

protected final void setKeepAlive(boolean keepAlive)

getHttpResponse

protected final org.jboss.netty.handler.codec.http.HttpResponse getHttpResponse()

setHttpResponse

protected final void setHttpResponse(org.jboss.netty.handler.codec.http.HttpResponse httpResponse)

incrementAndGetCurrentRedirectCount

protected int incrementAndGetCurrentRedirectCount()

setReaperFuture

protected void setReaperFuture(Future<?> reaperFuture)

isInAuth

protected boolean isInAuth()

getAndSetAuth

protected boolean getAndSetAuth(boolean inDigestAuth)

getState

protected com.ning.http.client.providers.netty.NettyResponseFuture.STATE getState()

setState

protected void setState(com.ning.http.client.providers.netty.NettyResponseFuture.STATE state)

getAndSetStatusReceived

public boolean getAndSetStatusReceived(boolean sr)

touch

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

Specified by:
touch in interface FutureImpl<V>

getAndSetWriteHeaders

public boolean getAndSetWriteHeaders(boolean writeHeaders)
Write the Request headers

Specified by:
getAndSetWriteHeaders in interface FutureImpl<V>

getAndSetWriteBody

public boolean getAndSetWriteBody(boolean writeBody)
Write the Request body

Specified by:
getAndSetWriteBody in interface FutureImpl<V>

provider

protected NettyAsyncHttpProvider provider()

attachChannel

protected void attachChannel(org.jboss.netty.channel.Channel channel)
Attach a Channel for further re-use. This usually happens when the request gets redirected (301, 302, 401, 407) but we haven't consumed all the body bytes yet.

Parameters:
channel - The Channel to later re-use.

attachOpenChannel

protected void attachOpenChannel(org.jboss.netty.channel.Channel channel)

channel

protected org.jboss.netty.channel.Channel channel()
Return the channel that was previously used. This usually means the request has been redirected.

Returns:
the previously used channel.

canRetry

protected boolean canRetry()

cannotBeReplay

public boolean cannotBeReplay()
Return true if the Future cannot be recovered. There is some scenario where a connection can be closed by an unexpected IOException, and in some situation we can recover from that exception.

Returns:
true if that Future cannot be recovered.

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2011. All Rights Reserved.