public class HttpConnection extends AbstractConnection implements java.lang.Runnable, HttpTransport, Connection.UpgradeFrom
A Connection that handles the HTTP protocol.
Connection.Listener, Connection.UpgradeFrom, Connection.UpgradeTo| Modifier and Type | Field and Description |
|---|---|
static HttpField |
CONNECTION_CLOSE |
static java.lang.String |
UPGRADE_CONNECTION_ATTRIBUTE |
| Constructor and Description |
|---|
HttpConnection(HttpConfiguration config,
Connector connector,
EndPoint endPoint,
HttpCompliance compliance,
boolean recordComplianceViolations) |
| Modifier and Type | Method and Description |
|---|---|
void |
abort(java.lang.Throwable failure)
Aborts this transport.
|
void |
asyncReadFillInterested() |
void |
blockingReadException(java.lang.Throwable e) |
void |
blockingReadFillInterested() |
protected boolean |
fillAndParseForContent()
Fill and parse data looking for content
|
Connector |
getConnector() |
static HttpConnection |
getCurrentConnection()
Get the current connection that this thread is dispatched to.
|
HttpGenerator |
getGenerator() |
HttpChannel |
getHttpChannel() |
HttpConfiguration |
getHttpConfiguration() |
long |
getMessagesIn() |
long |
getMessagesOut() |
HttpParser |
getParser() |
java.nio.ByteBuffer |
getRequestBuffer() |
Server |
getServer() |
boolean |
isOptimizedForDirectBuffers()
Is the underlying transport optimized for DirectBuffer usage
|
boolean |
isPushSupported() |
boolean |
isRecordHttpComplianceViolations() |
boolean |
isRequestBufferEmpty() |
protected HttpChannelOverHttp |
newHttpChannel() |
protected HttpGenerator |
newHttpGenerator() |
protected HttpParser |
newHttpParser(HttpCompliance compliance) |
protected HttpParser.RequestHandler |
newRequestHandler() |
void |
onClose()
Callback method invoked when this connection is closed.
|
void |
onCompleted()
Called to indicated the end of the current request/response cycle (which may be
some time after the last content is sent).
|
void |
onFillable()
Callback method invoked when the endpoint is ready to be read.
|
protected void |
onFillInterestedFailed(java.lang.Throwable cause)
Callback method invoked when the endpoint failed to be ready to be read.
|
void |
onOpen()
Callback method invoked when this connection is opened.
|
java.nio.ByteBuffer |
onUpgradeFrom()
Takes the input buffer from the connection on upgrade.
|
void |
push(MetaData.Request request) |
void |
run() |
void |
send(MetaData.Response info,
boolean head,
java.nio.ByteBuffer content,
boolean lastContent,
Callback callback)
Asynchronous call to send a response (or part) over the transport
|
protected static HttpConnection |
setCurrentConnection(HttpConnection connection) |
java.lang.String |
toConnectionString() |
addListener, close, failedCallback, fillInterested, getBytesIn, getBytesOut, getCreatedTimeStamp, getEndPoint, getExecutor, getInputBufferSize, isFillInterested, onIdleExpired, onReadTimeout, removeListener, setInputBufferSize, toString, tryFillInterested, tryFillInterestedpublic static final HttpField CONNECTION_CLOSE
public static final java.lang.String UPGRADE_CONNECTION_ATTRIBUTE
public HttpConnection(HttpConfiguration config, Connector connector, EndPoint endPoint, HttpCompliance compliance, boolean recordComplianceViolations)
public static HttpConnection getCurrentConnection()
for a more general way to access the HttpConnectionprotected static HttpConnection setCurrentConnection(HttpConnection connection)
public HttpConfiguration getHttpConfiguration()
public boolean isRecordHttpComplianceViolations()
protected HttpGenerator newHttpGenerator()
protected HttpChannelOverHttp newHttpChannel()
protected HttpParser newHttpParser(HttpCompliance compliance)
protected HttpParser.RequestHandler newRequestHandler()
public Server getServer()
public Connector getConnector()
public HttpChannel getHttpChannel()
public HttpParser getParser()
public HttpGenerator getGenerator()
public boolean isOptimizedForDirectBuffers()
HttpTransportisOptimizedForDirectBuffers in interface HttpTransportpublic long getMessagesIn()
getMessagesIn in interface ConnectiongetMessagesIn in class AbstractConnectionpublic long getMessagesOut()
getMessagesOut in interface ConnectiongetMessagesOut in class AbstractConnectionpublic java.nio.ByteBuffer onUpgradeFrom()
Connection.UpgradeFromTakes the input buffer from the connection on upgrade.
This method is used to take any unconsumed input from a connection during an upgrade.
onUpgradeFrom in interface Connection.UpgradeFrompublic java.nio.ByteBuffer getRequestBuffer()
public boolean isRequestBufferEmpty()
public void onFillable()
AbstractConnectionCallback method invoked when the endpoint is ready to be read.
onFillable in class AbstractConnectionAbstractConnection.fillInterested()protected boolean fillAndParseForContent()
HttpParser.RequestHandler method was called and it returned true;public void onCompleted()
HttpTransportonCompleted in interface HttpTransportprotected void onFillInterestedFailed(java.lang.Throwable cause)
AbstractConnectionCallback method invoked when the endpoint failed to be ready to be read.
onFillInterestedFailed in class AbstractConnectioncause - the exception that caused the failurepublic void onOpen()
ConnectionCallback method invoked when this connection is opened.
Creators of the connection implementation are responsible for calling this method.
onOpen in interface ConnectiononOpen in class AbstractConnectionpublic void onClose()
ConnectionCallback method invoked when this connection is closed.
Creators of the connection implementation are responsible for calling this method.
onClose in interface ConnectiononClose in class AbstractConnectionpublic void run()
run in interface java.lang.Runnablepublic void send(MetaData.Response info, boolean head, java.nio.ByteBuffer content, boolean lastContent, Callback callback)
HttpTransportsend in interface HttpTransportinfo - The header info to send, or null if just sending more data.
The first call to send for a response must have a non null info.head - True if the response if for a HEAD request (and the data should not be sent).content - A buffer of content to be sent.lastContent - True if the content is the last content for the current response.callback - The Callback instance that success or failure of the send is notified onpublic void abort(java.lang.Throwable failure)
HttpTransportThis method should terminate the transport in a way that can indicate an abnormal response to the client, for example by abruptly close the connection.
This method is called when an error response needs to be sent,
but the response is already committed, or when a write failure
is detected. If abort is called, HttpTransport.onCompleted() is not
called
abort in interface HttpTransportfailure - the failure that caused the abort.public boolean isPushSupported()
isPushSupported in interface HttpTransportpublic void push(MetaData.Request request)
push in interface HttpTransportrequest - A request to use as the basis for generating a pushed response.public void asyncReadFillInterested()
public void blockingReadFillInterested()
public void blockingReadException(java.lang.Throwable e)
public java.lang.String toConnectionString()
toConnectionString in class AbstractConnectionCopyright © 1995–2017 Webtide. All rights reserved.