@NotThreadSafe public abstract class AbstractHttpServerConnection extends Object implements HttpServerConnection
SessionInputBuffer and
SessionOutputBuffer implementations.
The following parameters can be used to customize the behavior of this class:
| Constructor and Description |
|---|
AbstractHttpServerConnection()
Creates an instance of this class.
|
| Modifier and Type | Method and Description |
|---|---|
protected abstract void |
assertOpen()
Asserts if the connection is 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. |
protected EntitySerializer |
createEntitySerializer()
Creates an instance of
EntitySerializer with the
StrictContentLengthStrategy implementation to be used for
serializing HTTP entities sent over this connection. |
protected HttpRequestFactory |
createHttpRequestFactory()
Creates an instance of
DefaultHttpRequestFactory to be used
for creating HttpRequest objects received by over this
connection. |
protected HttpMessageParser<HttpRequest> |
createRequestParser(SessionInputBuffer buffer,
HttpRequestFactory requestFactory,
HttpParams params)
Creates an instance of
HttpMessageParser to be used for parsing
HTTP requests received over this connection. |
protected HttpMessageWriter<HttpResponse> |
createResponseWriter(SessionOutputBuffer buffer,
HttpParams params)
Creates an instance of
HttpMessageWriter to be used for
writing out HTTP responses sent over this connection. |
protected void |
doFlush() |
void |
flush()
Sends all pending buffered data over this connection.
|
HttpConnectionMetrics |
getMetrics()
Returns a collection of connection metrics.
|
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. |
protected boolean |
isEof() |
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.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitclose, getSocketTimeout, isOpen, setSocketTimeout, shutdownpublic AbstractHttpServerConnection()
This constructor will invoke createEntityDeserializer()
and createEntitySerializer() methods in order to initialize
HTTP entity serializer and deserializer implementations for this
connection.
protected abstract void assertOpen()
throws IllegalStateException
IllegalStateException - if the connection is not open.protected EntityDeserializer createEntityDeserializer()
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.
protected EntitySerializer createEntitySerializer()
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.
protected HttpRequestFactory createHttpRequestFactory()
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.
protected HttpMessageParser<HttpRequest> createRequestParser(SessionInputBuffer buffer, HttpRequestFactory requestFactory, HttpParams params)
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 the LineParser to the
the DefaultHttpRequestParser constructor.
buffer - the session input buffer.requestFactory - the HTTP request factory.params - HTTP parameters.protected HttpMessageWriter<HttpResponse> createResponseWriter(SessionOutputBuffer buffer, HttpParams params)
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.
buffer - the session output bufferparams - HTTP parametersprotected HttpConnectionMetricsImpl createConnectionMetrics(HttpTransportMetrics inTransportMetric, HttpTransportMetrics outTransportMetric)
protected void init(SessionInputBuffer inbuffer, SessionOutputBuffer outbuffer, HttpParams params)
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.
inbuffer - the session input buffer.outbuffer - the session output buffer.params - HTTP parameters.public HttpRequest receiveRequestHeader() throws HttpException, IOException
HttpServerConnectionreceiveRequestHeader in interface HttpServerConnectionHttpException - in case of HTTP protocol violationIOException - in case of an I/O errorpublic void receiveRequestEntity(HttpEntityEnclosingRequest request) throws HttpException, IOException
HttpServerConnectionreceiveRequestEntity in interface HttpServerConnectionrequest - the request to attach the entity to.HttpException - in case of HTTP protocol violationIOException - in case of an I/O errorprotected void doFlush()
throws IOException
IOExceptionpublic void flush()
throws IOException
HttpServerConnectionflush in interface HttpServerConnectionIOException - in case of an I/O errorpublic void sendResponseHeader(HttpResponse response) throws HttpException, IOException
HttpServerConnectionsendResponseHeader in interface HttpServerConnectionresponse - the response whose headers to send.HttpException - in case of HTTP protocol violationIOException - in case of an I/O errorpublic void sendResponseEntity(HttpResponse response) throws HttpException, IOException
HttpServerConnectionsendResponseEntity in interface HttpServerConnectionresponse - the response whose entity to send.HttpException - in case of HTTP protocol violationIOException - in case of an I/O errorprotected boolean isEof()
public boolean isStale()
HttpConnectionisStale in interface HttpConnectiontrue if attempts to use this connection are
likely to succeed, or false if they are likely
to fail and this connection should be closedpublic HttpConnectionMetrics getMetrics()
HttpConnectiongetMetrics in interface HttpConnectionCopyright © 2005–2013 The Apache Software Foundation. All rights reserved.