public class SslConnection.DecryptedEndPoint extends AbstractEndPoint
| Modifier and Type | Class and Description |
|---|---|
private class |
SslConnection.DecryptedEndPoint.FailWrite |
private class |
SslConnection.DecryptedEndPoint.WriteCallBack |
| Modifier and Type | Field and Description |
|---|---|
private boolean |
_cannotAcceptMoreAppDataToFlush |
private boolean |
_fillRequiresFlushToProgress |
private boolean |
_flushRequiresFillToProgress |
private java.util.concurrent.atomic.AtomicReference<SslConnection.Handshake> |
_handshake |
private boolean |
_underFlown |
private Callback |
_writeCallback |
| Constructor and Description |
|---|
DecryptedEndPoint() |
| Modifier and Type | Method and Description |
|---|---|
private boolean |
allowRenegotiate(javax.net.ssl.SSLEngineResult.HandshakeStatus handshakeStatus) |
private void |
closeInbound() |
void |
doClose() |
void |
doShutdownOutput() |
private void |
ensureFillInterested() |
int |
fill(java.nio.ByteBuffer buffer)
Fill the passed buffer with data from this endpoint.
|
boolean |
flush(java.nio.ByteBuffer... appOuts)
Flush data from the passed header/buffer to this endpoint.
|
long |
getIdleTimeout()
Get the max idle time in ms.
|
java.net.InetSocketAddress |
getLocalAddress() |
java.net.InetSocketAddress |
getRemoteAddress() |
SslConnection |
getSslConnection() |
java.lang.Object |
getTransport() |
protected WriteFlusher |
getWriteFlusher() |
private void |
handshakeFailed(java.lang.Throwable failure) |
private void |
handshakeSucceeded() |
boolean |
isInputShutdown()
Test if the input is shutdown.
|
boolean |
isOpen()
This abstract method should be called to check if idle timeouts
should still be checked.
|
boolean |
isOutputShutdown()
Test if output is shutdown.
|
protected void |
needsFillInterest() |
private void |
notifyHandshakeFailed(javax.net.ssl.SSLEngine sslEngine,
java.lang.Throwable failure) |
private void |
notifyHandshakeSucceeded(javax.net.ssl.SSLEngine sslEngine) |
protected void |
onIncompleteFlush() |
private void |
releaseEncryptedOutputBuffer() |
void |
setConnection(Connection connection) |
void |
setIdleTimeout(long idleTimeout)
Set the idle timeout.
|
private void |
terminateInput() |
java.lang.String |
toString() |
checkFill, checkFlush, close, close, doShutdownInput, fillInterested, getConnection, getCreatedTimeStamp, getFillInterest, isFillInterested, isOptimizedForDirectBuffers, onClose, onClose, onIdleExpired, onOpen, reset, shutdownInput, shutdownOutput, toConnectionString, toEndPointString, tryFillInterested, upgrade, writecheckIdleTimeout, getIdleFor, getIdleTimestamp, getScheduler, notIdleprivate boolean _fillRequiresFlushToProgress
private boolean _flushRequiresFillToProgress
private boolean _cannotAcceptMoreAppDataToFlush
private java.util.concurrent.atomic.AtomicReference<SslConnection.Handshake> _handshake
private boolean _underFlown
private final Callback _writeCallback
public long getIdleTimeout()
EndPointThe max idle time is the time the endpoint can be idle before extraordinary handling takes place.
getIdleTimeout in interface EndPointgetIdleTimeout in class IdleTimeoutpublic void setIdleTimeout(long idleTimeout)
EndPointsetIdleTimeout in interface EndPointsetIdleTimeout in class IdleTimeoutidleTimeout - the idle timeout in MS. Timeout <= 0 implies an infinite timeoutpublic boolean isOpen()
IdleTimeoutisOpen in interface EndPointisOpen in class AbstractEndPointpublic java.net.InetSocketAddress getLocalAddress()
EndPoint is bound, or null
if this EndPoint does not represent a network connection.public java.net.InetSocketAddress getRemoteAddress()
EndPoint is bound, or null
if this EndPoint does not represent a network connection.protected WriteFlusher getWriteFlusher()
getWriteFlusher in class AbstractEndPointprotected void onIncompleteFlush()
onIncompleteFlush in class AbstractEndPointprotected void needsFillInterest()
throws java.io.IOException
needsFillInterest in class AbstractEndPointjava.io.IOExceptionpublic void setConnection(Connection connection)
setConnection in interface EndPointsetConnection in class AbstractEndPointconnection - the Connection associated with this EndPointEndPoint.getConnection(),
EndPoint.upgrade(Connection)public SslConnection getSslConnection()
public int fill(java.nio.ByteBuffer buffer)
throws java.io.IOException
EndPointbuffer - The buffer to fill. The position and limit are modified during the fill. After the
operation, the position is unchanged and the limit is increased to reflect the new data filled.int value indicating the number of bytes
filled or -1 if EOF is read or the input is shutdown.java.io.IOException - if the endpoint is closed.private void handshakeSucceeded()
private void handshakeFailed(java.lang.Throwable failure)
private boolean allowRenegotiate(javax.net.ssl.SSLEngineResult.HandshakeStatus handshakeStatus)
private void terminateInput()
private void closeInbound()
throws javax.net.ssl.SSLException
javax.net.ssl.SSLExceptionpublic boolean flush(java.nio.ByteBuffer... appOuts)
throws java.io.IOException
EndPointappOuts - the buffers to flushjava.io.IOException - If the endpoint is closed or output is shutdown.private void releaseEncryptedOutputBuffer()
public void doShutdownOutput()
doShutdownOutput in class AbstractEndPointprivate void ensureFillInterested()
public boolean isOutputShutdown()
EndPointEndPoint.shutdownOutput()
or EndPoint.close().isOutputShutdown in interface EndPointisOutputShutdown in class AbstractEndPointpublic void doClose()
doClose in class AbstractEndPointpublic java.lang.Object getTransport()
public boolean isInputShutdown()
EndPointEndPoint.fill(ByteBuffer). Once the input is shutdown, all calls to
EndPoint.fill(ByteBuffer) will return -1, until such time as the
end point is close, when they will return EofException.isInputShutdown in interface EndPointisInputShutdown in class AbstractEndPointprivate void notifyHandshakeSucceeded(javax.net.ssl.SSLEngine sslEngine)
private void notifyHandshakeFailed(javax.net.ssl.SSLEngine sslEngine,
java.lang.Throwable failure)
public java.lang.String toString()
toString in class AbstractEndPoint