java.io.Closeable
, java.lang.AutoCloseable
, EndPoint
ByteArrayEndPoint
, ChannelEndPoint
, SslConnection.DecryptedEndPoint
public abstract class AbstractEndPoint extends IdleTimeout implements EndPoint
Modifier | Constructor | Description |
---|---|---|
protected |
AbstractEndPoint(Scheduler scheduler) |
Modifier and Type | Method | Description |
---|---|---|
void |
checkFill() |
|
void |
checkFlush() |
|
void |
close() |
Close any backing stream associated with the endpoint
|
protected void |
close(java.lang.Throwable failure) |
|
protected void |
doClose() |
|
protected void |
doShutdownInput() |
|
protected void |
doShutdownOutput() |
|
void |
fillInterested(Callback callback) |
Requests callback methods to be invoked when a call to
EndPoint.fill(ByteBuffer) would return data or EOF. |
Connection |
getConnection() |
|
long |
getCreatedTimeStamp() |
|
FillInterest |
getFillInterest() |
|
protected WriteFlusher |
getWriteFlusher() |
|
boolean |
isFillInterested() |
|
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 |
isOptimizedForDirectBuffers() |
Is the endpoint optimized for DirectBuffer usage
|
boolean |
isOutputShutdown() |
Test if output is shutdown.
|
protected abstract void |
needsFillInterest() |
|
void |
onClose() |
Callback method invoked when this
EndPoint is close. |
protected void |
onClose(java.lang.Throwable failure) |
|
protected void |
onIdleExpired(java.util.concurrent.TimeoutException timeout) |
This abstract method is called when the idle timeout has expired.
|
protected abstract void |
onIncompleteFlush() |
|
void |
onOpen() |
Callback method invoked when this
EndPoint is opened. |
protected void |
reset() |
|
void |
setConnection(Connection connection) |
|
protected void |
shutdownInput() |
|
void |
shutdownOutput() |
Shutdown the output.
|
java.lang.String |
toConnectionString() |
|
java.lang.String |
toEndPointString() |
|
java.lang.String |
toString() |
|
boolean |
tryFillInterested(Callback callback) |
Requests callback methods to be invoked when a call to
EndPoint.fill(ByteBuffer) would return data or EOF. |
void |
upgrade(Connection newConnection) |
Upgrade connections.
|
void |
write(Callback callback,
java.nio.ByteBuffer... buffers) |
Writes the given buffers via
EndPoint.flush(ByteBuffer...) and invokes callback methods when either
all the data has been flushed or an error occurs. |
fill, flush, getIdleTimeout, getLocalAddress, getRemoteAddress, getTransport, setIdleTimeout
checkIdleTimeout, getIdleFor, getIdleTimeout, getIdleTimestamp, getScheduler, notIdle, setIdleTimeout
protected AbstractEndPoint(Scheduler scheduler)
protected final void shutdownInput()
public final void shutdownOutput()
EndPoint
This call indicates that no more data will be sent on this endpoint that that the remote end should read an EOF once all previously sent data has been consumed. Shutdown may be done either at the TCP/IP level, as a protocol exchange (Eg TLS close handshake) or both.
If the endpoint has EndPoint.isInputShutdown()
true, then this call has the same effect
as EndPoint.close()
.
shutdownOutput
in interface EndPoint
public final void close()
EndPoint
protected final void close(java.lang.Throwable failure)
protected void doShutdownInput()
protected void doShutdownOutput()
protected void doClose()
protected void onClose(java.lang.Throwable failure)
public boolean isOutputShutdown()
EndPoint
EndPoint.shutdownOutput()
or EndPoint.close()
.isOutputShutdown
in interface EndPoint
public boolean isInputShutdown()
EndPoint
EndPoint.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 EndPoint
public boolean isOpen()
IdleTimeout
isOpen
in interface EndPoint
isOpen
in class IdleTimeout
public void checkFlush() throws java.io.IOException
java.io.IOException
public void checkFill() throws java.io.IOException
java.io.IOException
public long getCreatedTimeStamp()
getCreatedTimeStamp
in interface EndPoint
public Connection getConnection()
getConnection
in interface EndPoint
Connection
associated with this EndPoint
EndPoint.setConnection(Connection)
public void setConnection(Connection connection)
setConnection
in interface EndPoint
connection
- the Connection
associated with this EndPoint
EndPoint.getConnection()
,
EndPoint.upgrade(Connection)
public boolean isOptimizedForDirectBuffers()
EndPoint
isOptimizedForDirectBuffers
in interface EndPoint
protected void reset()
public void onOpen()
EndPoint
Callback method invoked when this EndPoint
is opened.
onOpen
in interface EndPoint
onOpen
in class IdleTimeout
EndPoint.onClose()
public void onClose()
EndPoint
Callback method invoked when this EndPoint
is close.
onClose
in interface EndPoint
onClose
in class IdleTimeout
EndPoint.onOpen()
public void fillInterested(Callback callback)
EndPoint
Requests callback methods to be invoked when a call to EndPoint.fill(ByteBuffer)
would return data or EOF.
fillInterested
in interface EndPoint
callback
- the callback to call when an error occurs or we are readable.public boolean tryFillInterested(Callback callback)
EndPoint
Requests callback methods to be invoked when a call to EndPoint.fill(ByteBuffer)
would return data or EOF.
tryFillInterested
in interface EndPoint
callback
- the callback to call when an error occurs or we are readable.public boolean isFillInterested()
isFillInterested
in interface EndPoint
EndPoint.fillInterested(Callback)
has been called, but EndPoint.fill(ByteBuffer)
has not yet
been calledpublic void write(Callback callback, java.nio.ByteBuffer... buffers) throws java.lang.IllegalStateException
EndPoint
Writes the given buffers via EndPoint.flush(ByteBuffer...)
and invokes callback methods when either
all the data has been flushed or an error occurs.
write
in interface EndPoint
callback
- the callback to call when an error occurs or the write completed.buffers
- one or more ByteBuffer
s that will be flushed.java.nio.channels.WritePendingException
- if another write operation is concurrent.java.lang.IllegalStateException
protected abstract void onIncompleteFlush()
protected abstract void needsFillInterest() throws java.io.IOException
java.io.IOException
public FillInterest getFillInterest()
protected WriteFlusher getWriteFlusher()
protected void onIdleExpired(java.util.concurrent.TimeoutException timeout)
IdleTimeout
onIdleExpired
in class IdleTimeout
timeout
- a TimeoutExceptionpublic void upgrade(Connection newConnection)
EndPoint
Connection.UpgradeFrom
then
a prefilled buffer is requested and passed to the newConnection if it is an instance
of Connection.UpgradeTo
public java.lang.String toString()
toString
in class java.lang.Object
public java.lang.String toEndPointString()
public java.lang.String toConnectionString()
Copyright © 1995–2017 Webtide. All rights reserved.