public class DefaultBHttpServerConnection extends Object implements HttpServerConnection
HttpServerConnection.| Constructor and Description |
|---|
DefaultBHttpServerConnection(String scheme,
Http1Config http1Config) |
DefaultBHttpServerConnection(String scheme,
Http1Config http1Config,
CharsetDecoder charDecoder,
CharsetEncoder charEncoder) |
DefaultBHttpServerConnection(String scheme,
Http1Config http1Config,
CharsetDecoder charDecoder,
CharsetEncoder charEncoder,
ContentLengthStrategy incomingContentStrategy,
ContentLengthStrategy outgoingContentStrategy,
HttpMessageParserFactory<ClassicHttpRequest> requestParserFactory,
HttpMessageWriterFactory<ClassicHttpResponse> responseWriterFactory)
Creates new instance of DefaultBHttpServerConnection.
|
| Modifier and Type | Method and Description |
|---|---|
protected boolean |
awaitInput(Timeout timeout) |
void |
bind(Socket socket)
Binds this connection to the given
Socket. |
protected void |
bind(SocketHolder socketHolder) |
void |
close()
Closes this connection gracefully.
|
void |
close(CloseMode closeMode)
Closes this process or endpoint and releases any system resources associated
with it.
|
protected InputStream |
createContentInputStream(long len,
SessionInputBuffer buffer,
InputStream inputStream) |
protected OutputStream |
createContentOutputStream(long len,
SessionOutputBuffer buffer,
OutputStream outputStream,
Supplier<List<? extends Header>> trailers) |
protected SocketHolder |
ensureOpen() |
void |
flush()
Writes out all pending buffered data over the open connection.
|
EndpointDetails |
getEndpointDetails()
Returns this connection's endpoint details.
|
SocketAddress |
getLocalAddress()
Returns this connection's local address or
null if it is not bound yet. |
ProtocolVersion |
getProtocolVersion()
Returns this connection's protocol version or
null if unknown. |
SocketAddress |
getRemoteAddress()
Returns this connection's remote address or
null if it is not connected yet or
unconnected. |
protected SocketHolder |
getSocketHolder() |
Timeout |
getSocketTimeout()
Returns the socket timeout value.
|
SSLSession |
getSSLSession()
Returns this connection's SSL session or
null if TLS has not been activated. |
protected void |
incrementRequestCount() |
protected void |
incrementResponseCount() |
boolean |
isDataAvailable(Timeout timeout)
Checks if input data is available from the connection.
|
boolean |
isOpen()
Checks if this connection is open.
|
boolean |
isStale()
Checks whether this connection has gone down.
|
protected void |
onRequestReceived(ClassicHttpRequest request) |
protected void |
onResponseSubmitted(ClassicHttpResponse response) |
void |
receiveRequestEntity(ClassicHttpRequest request)
Receives the next request entity available from this connection and attaches it to
an existing request.
|
ClassicHttpRequest |
receiveRequestHeader()
Receives the request line and all headers available from this connection.
|
void |
sendResponseEntity(ClassicHttpResponse response)
Sends the response entity of a response over this connection.
|
void |
sendResponseHeader(ClassicHttpResponse response)
Sends the response line and headers of a response over this connection.
|
void |
setSocketTimeout(Timeout timeout)
Sets the socket timeout value.
|
String |
toString() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitflush, isDataAvailable, isStaleclose, getEndpointDetails, getLocalAddress, getProtocolVersion, getRemoteAddress, getSSLSession, isOpengetSocketTimeout, setSocketTimeoutclosepublic DefaultBHttpServerConnection(String scheme, Http1Config http1Config, CharsetDecoder charDecoder, CharsetEncoder charEncoder, ContentLengthStrategy incomingContentStrategy, ContentLengthStrategy outgoingContentStrategy, HttpMessageParserFactory<ClassicHttpRequest> requestParserFactory, HttpMessageWriterFactory<ClassicHttpResponse> responseWriterFactory)
scheme - protocol schemehttp1Config - Message http1Config. If null
Http1Config.DEFAULT will be used.charDecoder - decoder to be used for decoding HTTP protocol elements.
If null simple type cast will be used for byte to char conversion.charEncoder - encoder to be used for encoding HTTP protocol elements.
If null simple type cast will be used for char to byte conversion.incomingContentStrategy - incoming content length strategy. If null
DefaultContentLengthStrategy.INSTANCE will be used.outgoingContentStrategy - outgoing content length strategy. If null
DefaultContentLengthStrategy.INSTANCE will be used.requestParserFactory - request parser factory. If null
DefaultHttpRequestParserFactory.INSTANCE will be used.responseWriterFactory - response writer factory. If null
DefaultHttpResponseWriterFactory.INSTANCE will be used.public DefaultBHttpServerConnection(String scheme, Http1Config http1Config, CharsetDecoder charDecoder, CharsetEncoder charEncoder)
public DefaultBHttpServerConnection(String scheme, Http1Config http1Config)
protected void onRequestReceived(ClassicHttpRequest request)
protected void onResponseSubmitted(ClassicHttpResponse response)
public void bind(Socket socket) throws IOException
Socket. This socket will be
used by the connection to send and receive data.
After this method's execution the connection status will be reported
as open and the isOpen() will return true.
socket - the socket.IOException - in case of an I/O error.public ClassicHttpRequest receiveRequestHeader() throws HttpException, IOException
HttpServerConnectionreceiveRequestHeader in interface HttpServerConnectionHttpException - in case of HTTP protocol violationIOException - in case of an I/O errorpublic void receiveRequestEntity(ClassicHttpRequest 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 errorpublic void sendResponseHeader(ClassicHttpResponse 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(ClassicHttpResponse 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 SocketHolder ensureOpen() throws IOException
IOExceptionprotected void bind(SocketHolder socketHolder) throws IOException
IOExceptionpublic boolean isOpen()
HttpConnectionisOpen in interface HttpConnectionpublic ProtocolVersion getProtocolVersion()
HttpConnectionnull if unknown.getProtocolVersion in interface HttpConnectionnull if unknown.protected SocketHolder getSocketHolder()
protected OutputStream createContentOutputStream(long len, SessionOutputBuffer buffer, OutputStream outputStream, Supplier<List<? extends Header>> trailers)
protected InputStream createContentInputStream(long len, SessionInputBuffer buffer, InputStream inputStream)
public SocketAddress getRemoteAddress()
HttpConnectionnull if it is not connected yet or
unconnected.getRemoteAddress in interface HttpConnectionnull if it is not connected yet or
unconnected.public SocketAddress getLocalAddress()
HttpConnectionnull if it is not bound yet.getLocalAddress in interface HttpConnectionnull if it is not bound yet.public void setSocketTimeout(Timeout timeout)
SocketModalCloseablesetSocketTimeout in interface SocketModalCloseabletimeout - timeout valuepublic Timeout getSocketTimeout()
SocketModalCloseablegetSocketTimeout in interface SocketModalCloseablepublic void close(CloseMode closeMode)
ModalCloseableclose in interface ModalCloseablecloseMode - How to close the receiver.public void close()
throws IOException
HttpConnectionshutdown instead.close in interface Closeableclose in interface AutoCloseableclose in interface HttpConnectionIOExceptionprotected boolean awaitInput(Timeout timeout) throws IOException
IOExceptionpublic boolean isDataAvailable(Timeout timeout) throws IOException
BHttpConnectionisDataAvailable in interface BHttpConnectiontimeout - the maximum time to wait for datatimeout.IOException - if an error happens on the connectionpublic boolean isStale()
throws IOException
BHttpConnectionisStale in interface BHttpConnectiontrue if attempts to use this connection are
likely to succeed, or false if they are likely
to fail and this connection should be closedIOExceptionpublic void flush()
throws IOException
BHttpConnectionflush in interface BHttpConnectionIOException - in case of an I/O errorprotected void incrementRequestCount()
protected void incrementResponseCount()
public SSLSession getSSLSession()
HttpConnectionnull if TLS has not been activated.getSSLSession in interface HttpConnectionnull if TLS has not been activated.public EndpointDetails getEndpointDetails()
HttpConnectiongetEndpointDetails in interface HttpConnectionCopyright © 2005–2022 The Apache Software Foundation. All rights reserved.