public abstract class

AbstractHttpServerConnection

extends Object
implements HttpServerConnection
java.lang.Object
   ↳ org.apache.http.impl.AbstractHttpServerConnection
Known Direct Subclasses
Known Indirect Subclasses

Class Overview

Abstract server-side HTTP connection capable of transmitting and receiving data using arbitrary SessionInputBuffer and SessionOutputBuffer implementations.

The following parameters can be used to customize the behavior of this class:

Summary

Public Constructors
AbstractHttpServerConnection()
Creates an instance of this class.
Public Methods
void flush()
Sends all pending buffered data over this connection.
HttpConnectionMetrics getMetrics()
Returns a collection of connection metrics.
boolean isStale()
Checks whether this connection has gone down.
void receiveRequestEntity(HttpEntityEnclosingRequest request)
Receives the next request entity available from this connection and attaches it to an existing request.
HttpRequest receiveRequestHeader()
Receives the request line and all headers available from this connection.
void sendResponseEntity(HttpResponse response)
Sends the response entity of a response over this connection.
void sendResponseHeader(HttpResponse response)
Sends the response line and headers of a response over this connection.
Protected Methods
abstract void assertOpen()
Asserts if the connection is open.
HttpConnectionMetricsImpl createConnectionMetrics(HttpTransportMetrics inTransportMetric, HttpTransportMetrics outTransportMetric)
EntityDeserializer createEntityDeserializer()
Creates an instance of EntityDeserializer with the LaxContentLengthStrategy implementation to be used for de-serializing entities received over this connection.
EntitySerializer createEntitySerializer()
Creates an instance of EntitySerializer with the StrictContentLengthStrategy implementation to be used for serializing HTTP entities sent over this connection.
HttpRequestFactory createHttpRequestFactory()
Creates an instance of DefaultHttpRequestFactory to be used for creating HttpRequest objects received by over this connection.
HttpMessageParser createRequestParser(SessionInputBuffer buffer, HttpRequestFactory requestFactory, HttpParams params)
Creates an instance of HttpMessageParser to be used for parsing HTTP requests received over this connection.
HttpMessageWriter createResponseWriter(SessionOutputBuffer buffer, HttpParams params)
Creates an instance of HttpMessageWriter to be used for writing out HTTP responses sent over this connection.
void doFlush()
void init(SessionInputBuffer inbuffer, SessionOutputBuffer outbuffer, HttpParams params)
Initializes this connection object with SessionInputBuffer and SessionOutputBuffer instances to be used for sending and receiving data.
boolean isEof()
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.apache.http.HttpConnection
From interface org.apache.http.HttpServerConnection

Public Constructors

public AbstractHttpServerConnection ()

Creates an instance of this class.

This constructor will invoke createEntityDeserializer() and createEntitySerializer() methods in order to initialize HTTP entity serializer and deserializer implementations for this connection.

Public Methods

public void flush ()

Sends all pending buffered data over this connection.

Throws
IOException

public HttpConnectionMetrics getMetrics ()

Returns a collection of connection metrics.

Returns
  • HttpConnectionMetrics

public boolean isStale ()

Checks 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.

Returns
  • true if attempts to use this connection are likely to succeed, or false if they are likely to fail and this connection should be closed

public void receiveRequestEntity (HttpEntityEnclosingRequest request)

Receives the next request entity available from this connection and attaches it to an existing request.

Parameters
request the request to attach the entity to.

public HttpRequest receiveRequestHeader ()

Receives the request line and all headers available from this connection. The caller should examine the returned request and decide if to receive a request entity as well.

Returns
  • a new HttpRequest object whose request line and headers are initialized.

public void sendResponseEntity (HttpResponse response)

Sends the response entity of a response over this connection.

Parameters
response the response whose entity to send.

public void sendResponseHeader (HttpResponse response)

Sends the response line and headers of a response over this connection.

Parameters
response the response whose headers to send.

Protected Methods

protected abstract void assertOpen ()

Asserts if the connection is open.

Throws
IllegalStateException if the connection is not open.

protected HttpConnectionMetricsImpl createConnectionMetrics (HttpTransportMetrics inTransportMetric, HttpTransportMetrics outTransportMetric)

protected EntityDeserializer createEntityDeserializer ()

Creates an instance of EntityDeserializer with the LaxContentLengthStrategy implementation to be used for de-serializing entities received over this connection.

This method can be overridden in a super class in order to create instances of EntityDeserializer using a custom ContentLengthStrategy.

Returns
  • HTTP entity deserializer

protected EntitySerializer createEntitySerializer ()

Creates an instance of EntitySerializer with the StrictContentLengthStrategy implementation to be used for serializing HTTP entities sent over this connection.

This method can be overridden in a super class in order to create instances of EntitySerializer using a custom ContentLengthStrategy.

Returns
  • HTTP entity serialzier.

protected HttpRequestFactory createHttpRequestFactory ()

Creates an instance of DefaultHttpRequestFactory to be used for creating HttpRequest objects received by over this connection.

This method can be overridden in a super class in order to provide a different implementation of the HttpRequestFactory interface.

Returns
  • HTTP request factory.

protected HttpMessageParser createRequestParser (SessionInputBuffer buffer, HttpRequestFactory requestFactory, HttpParams params)

Creates an instance of HttpMessageParser to be used for parsing HTTP requests received over this connection.

This method can be overridden in a super class in order to provide a different implementation of the HttpMessageParser interface or to pass a different implementation of LineParser to the the default implementation HttpRequestParser.

Parameters
buffer the session input buffer.
requestFactory the HTTP request factory.
params HTTP parameters.
Returns
  • HTTP message parser.

protected HttpMessageWriter createResponseWriter (SessionOutputBuffer buffer, HttpParams params)

Creates an instance of HttpMessageWriter to be used for writing out HTTP responses sent over this connection.

This method can be overridden in a super class in order to provide a different implementation of the HttpMessageWriter interface or to pass a different implementation of LineFormatter to the the default implementation HttpResponseWriter.

Parameters
buffer the session output buffer
params HTTP parameters
Returns
  • HTTP message writer

protected void doFlush ()

Throws
IOException

protected void init (SessionInputBuffer inbuffer, SessionOutputBuffer outbuffer, HttpParams params)

Initializes this connection object with SessionInputBuffer and SessionOutputBuffer instances to be used for sending and receiving data. These session buffers can be bound to any arbitrary physical output medium.

This method will invoke createHttpRequestFactory(), createRequestParser(SessionInputBuffer, HttpRequestFactory, HttpParams) and createResponseWriter(SessionOutputBuffer, HttpParams) methods to initialize HTTP request parser and response writer for this connection.

Parameters
inbuffer the session input buffer.
outbuffer the session output buffer.
params HTTP parameters.

protected boolean isEof ()