Package org.apache.http.impl.nio
Class NHttpConnectionBase
- java.lang.Object
-
- org.apache.http.impl.nio.NHttpConnectionBase
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,HttpConnection,HttpInetConnection,IOControl,NHttpConnection,SessionBufferStatus,SocketAccessor
- Direct Known Subclasses:
DefaultNHttpClientConnection,DefaultNHttpServerConnection
public class NHttpConnectionBase extends java.lang.Object implements NHttpConnection, HttpInetConnection, SessionBufferStatus, SocketAccessor
This class serves as a base for allNHttpConnectionimplementations and provides functionality common to both client and server HTTP connections.- Since:
- 4.0
-
-
Field Summary
-
Fields inherited from interface org.apache.http.nio.NHttpConnection
ACTIVE, CLOSED, CLOSING
-
-
Constructor Summary
Constructors Constructor Description NHttpConnectionBase(IOSession session, ByteBufferAllocator allocator, HttpParams params)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Closes this connection gracefully.HttpContextgetContext()Returns an HTTP execution context associated with this connection.HttpRequestgetHttpRequest()Returns the current HTTP request if one is being received / transmitted.HttpResponsegetHttpResponse()Returns the current HTTP response if one is being received / transmitted.java.net.InetAddressgetLocalAddress()intgetLocalPort()HttpConnectionMetricsgetMetrics()Returns a collection of connection metrics.java.net.InetAddressgetRemoteAddress()intgetRemotePort()java.net.SocketgetSocket()Return the underlying socketintgetSocketTimeout()Returns the socket timeout value.intgetStatus()Returns status of the connection:booleanhasBufferedInput()Determines if the session input buffer contains data.booleanhasBufferedOutput()Determines if the session output buffer contains data.booleanisOpen()Checks if this connection is open.booleanisStale()Checks whether this connection has gone down.voidrequestInput()Requests event notifications to be triggered when the underlying channel is ready for input operations.voidrequestOutput()Requests event notifications to be triggered when the underlying channel is ready for output operations.voidsetSocketTimeout(int timeout)Sets the socket timeout value.voidshutdown()Force-closes this connection.voidsuspendInput()Suspends event notifications about the underlying channel being ready for input operations.voidsuspendOutput()Suspends event notifications about the underlying channel being ready for output operations.java.lang.StringtoString()
-
-
-
Constructor Detail
-
NHttpConnectionBase
@Deprecated public NHttpConnectionBase(IOSession session, ByteBufferAllocator allocator, HttpParams params)
Deprecated.Creates a new instance of this class given the underlying I/O session.- Parameters:
session- the underlying I/O session.allocator- byte buffer allocator.params- HTTP parameters.
-
-
Method Detail
-
getStatus
public int getStatus()
Description copied from interface:NHttpConnectionReturns status of the connection:NHttpConnection.ACTIVE: connection is active.NHttpConnection.CLOSING: connection is being closed.NHttpConnection.CLOSED: connection has been closed.- Specified by:
getStatusin interfaceNHttpConnection- Returns:
- connection status.
-
getContext
public HttpContext getContext()
Description copied from interface:NHttpConnectionReturns an HTTP execution context associated with this connection.- Specified by:
getContextin interfaceNHttpConnection- Returns:
- HTTP context
-
getHttpRequest
public HttpRequest getHttpRequest()
Description copied from interface:NHttpConnectionReturns the current HTTP request if one is being received / transmitted. Otherwise returnsnull.- Specified by:
getHttpRequestin interfaceNHttpConnection- Returns:
- HTTP request, if available,
nullotherwise.
-
getHttpResponse
public HttpResponse getHttpResponse()
Description copied from interface:NHttpConnectionReturns the current HTTP response if one is being received / transmitted. Otherwise returnsnull.- Specified by:
getHttpResponsein interfaceNHttpConnection- Returns:
- HTTP response, if available,
nullotherwise.
-
requestInput
public void requestInput()
Description copied from interface:IOControlRequests event notifications to be triggered when the underlying channel is ready for input operations.- Specified by:
requestInputin interfaceIOControl
-
requestOutput
public void requestOutput()
Description copied from interface:IOControlRequests event notifications to be triggered when the underlying channel is ready for output operations.- Specified by:
requestOutputin interfaceIOControl
-
suspendInput
public void suspendInput()
Description copied from interface:IOControlSuspends event notifications about the underlying channel being ready for input operations.- Specified by:
suspendInputin interfaceIOControl
-
suspendOutput
public void suspendOutput()
Description copied from interface:IOControlSuspends event notifications about the underlying channel being ready for output operations.- Specified by:
suspendOutputin interfaceIOControl
-
hasBufferedInput
public boolean hasBufferedInput()
Description copied from interface:SessionBufferStatusDetermines if the session input buffer contains data.- Specified by:
hasBufferedInputin interfaceSessionBufferStatus- Returns:
trueif the session input buffer contains data,falseotherwise.
-
hasBufferedOutput
public boolean hasBufferedOutput()
Description copied from interface:SessionBufferStatusDetermines if the session output buffer contains data.- Specified by:
hasBufferedOutputin interfaceSessionBufferStatus- Returns:
trueif the session output buffer contains data,falseotherwise.
-
close
public void close() throws java.io.IOExceptionDescription copied from interface:HttpConnectionCloses this connection gracefully. This method will attempt to flush the internal output buffer prior to closing the underlying socket. This method MUST NOT be called from a different thread to force shutdown of the connection. Useshutdowninstead.- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Specified by:
closein interfaceHttpConnection- Throws:
java.io.IOException
-
isOpen
public boolean isOpen()
Description copied from interface:HttpConnectionChecks if this connection is open.- Specified by:
isOpenin interfaceHttpConnection- Returns:
- true if it is open, false if it is closed.
-
isStale
public boolean isStale()
Description copied from interface:HttpConnectionChecks whether this connection has gone down. Network connections may get closed during some time of inactivity for several reasons. The next time a read is attempted on such a connection it will throw an IOException. This method tries to alleviate this inconvenience by trying to find out if a connection is still usable. Implementations may do that by attempting a read with a very small timeout. Thus this method may block for a small amount of time before returning a result. It is therefore an expensive operation.- Specified by:
isStalein interfaceHttpConnection- Returns:
trueif attempts to use this connection are likely to succeed, orfalseif they are likely to fail and this connection should be closed
-
getLocalAddress
public java.net.InetAddress getLocalAddress()
- Specified by:
getLocalAddressin interfaceHttpInetConnection
-
getLocalPort
public int getLocalPort()
- Specified by:
getLocalPortin interfaceHttpInetConnection
-
getRemoteAddress
public java.net.InetAddress getRemoteAddress()
- Specified by:
getRemoteAddressin interfaceHttpInetConnection
-
getRemotePort
public int getRemotePort()
- Specified by:
getRemotePortin interfaceHttpInetConnection
-
setSocketTimeout
public void setSocketTimeout(int timeout)
Description copied from interface:HttpConnectionSets the socket timeout value.- Specified by:
setSocketTimeoutin interfaceHttpConnection- Parameters:
timeout- timeout value in milliseconds
-
getSocketTimeout
public int getSocketTimeout()
Description copied from interface:HttpConnectionReturns the socket timeout value.- Specified by:
getSocketTimeoutin interfaceHttpConnection- Returns:
- positive value in milliseconds if a timeout is set,
0if timeout is disabled or-1if timeout is undefined.
-
shutdown
public void shutdown() throws java.io.IOExceptionDescription copied from interface:HttpConnectionForce-closes this connection. This is the only method of a connection which may be called from a different thread to terminate the connection. This method will not attempt to flush the transmitter's internal buffer prior to closing the underlying socket.- Specified by:
shutdownin interfaceHttpConnection- Specified by:
shutdownin interfaceIOControl- Throws:
java.io.IOException- in an error occurs
-
getMetrics
public HttpConnectionMetrics getMetrics()
Description copied from interface:HttpConnectionReturns a collection of connection metrics.- Specified by:
getMetricsin interfaceHttpConnection- Returns:
- HttpConnectionMetrics
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
getSocket
public java.net.Socket getSocket()
Description copied from interface:SocketAccessorReturn the underlying socket- Specified by:
getSocketin interfaceSocketAccessor- Returns:
- - the underlying Socket, may be
null.
-
-