-
- All Known Implementing Classes:
AbstractModem
,HttpClientModem
,HttpServerModem
,MqttSocketModem
,WebSocketModem
public interface Modem<I,O>
Network socket binding that provides asynchronous I/O decoders and encoders for a non-blocking NIO network channel. AModem
interfaces with the underlying asynchronous networking system via aModemContext
. The modem context invokes I/O callbacks on theModem
when the underlying network socket is ready to perform I/O operations permitted by the socket context'sFlowControl
.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
didBecome(Socket socket)
Lifecycle callback invoked by the modem context after it hasbecome
a newsocket
implementation.void
didConnect()
Lifecycle callback invoked by the modem context after the underlying network socket has opened a connection.void
didDisconnect()
Lifecycle callback invoked by the socket context after the underlying network connection has disconnected.void
didFail(Throwable error)
Lifecycle callback invoked by the modem context when the underlying network socket fails by throwing anerror
.void
didRead(I input)
I/O callback invoked by the modem context with the completed value of the current readDecoder
after it has transitioned to the done state.void
didSecure()
Lifecycle callback invoked by the modem context after the underlying network socket has established a secure connection.void
didTimeout()
Lifecycle callback invoked by the modem context after the underlying network connection has timed out.void
didWrite(O output)
I/O callback invoked by the modem context with the completed value of the current writeEncoder
after it has transitioned to the done state.void
doRead()
void
doWrite()
long
idleTimeout()
Returns the number of idle milliseconds after which thisModem
should be closed due to inactivity.ModemContext<I,O>
modemContext()
Returns the socket modem context to which thisModem
is bound; returnsnull
if thisModem
is unbound.void
setModemContext(ModemContext<I,O> context)
Sets the socket modem context to which thisModem
is bound.void
willBecome(Socket socket)
Lifecycle callback invoked by the modem context before it hasbecome
a newsocket
implementation.void
willConnect()
Lifecycle callback invoked by the modem context before the underlying network socket attempts to open a connection.void
willSecure()
Lifecycle callback invoked by the modem context before the underlying network socket establishes a secure connection.
-
-
-
Method Detail
-
modemContext
ModemContext<I,O> modemContext()
Returns the socket modem context to which thisModem
is bound; returnsnull
if thisModem
is unbound.
-
setModemContext
void setModemContext(ModemContext<I,O> context)
Sets the socket modem context to which thisModem
is bound.
-
idleTimeout
long idleTimeout()
Returns the number of idle milliseconds after which thisModem
should be closed due to inactivity. Returns-1
if a default idle timeout should be used. Returns0
if the underlying network socket should not time out.
-
doRead
void doRead()
I/O callback invoked by the modem context asking thisModem
to provide an inputDecoder
by invoking the modem context'sread
method. The modem context will asynchronously feed input data to the provided readDecoder
until it transitions out of the cont state. The read flow control of the underlying network socket is automatically managed by the modem context using the state of the readDecoder
. May be invoked concurrently to other I/O callbacks, but never concurrently with otherdoRead
ordidRead
calls.
-
didRead
void didRead(I input)
I/O callback invoked by the modem context with the completed value of the current readDecoder
after it has transitioned to the done state. May be invoked concurrently to other I/O callbacks, but never concurrently with otherdoRead
ordidRead
calls.
-
doWrite
void doWrite()
I/O callback invoked by the modem context asking thisModem
to provide an outputEncoder
by invoking the modem context'swrite
method. The modem context will asynchronously pull output data from the provided writeEncoder
until it transitions out of the cont state. The write flow control of the underlying network socket is automatically managed by the modem context using the state of the writeEncoder
. May be invoked concurrently to other I/O callbacks, but never concurrently with otherdoWrite
ordidWrite
calls.
-
didWrite
void didWrite(O output)
I/O callback invoked by the modem context with the completed value of the current writeEncoder
after it has transitioned to the done state. May be invoked concurrently to other I/O callbacks, but never concurrently with otherdodWrite
ordidWrite
calls.
-
willConnect
void willConnect()
Lifecycle callback invoked by the modem context before the underlying network socket attempts to open a connection.
-
didConnect
void didConnect()
Lifecycle callback invoked by the modem context after the underlying network socket has opened a connection.
-
willSecure
void willSecure()
Lifecycle callback invoked by the modem context before the underlying network socket establishes a secure connection.
-
didSecure
void didSecure()
Lifecycle callback invoked by the modem context after the underlying network socket has established a secure connection.
-
willBecome
void willBecome(Socket socket)
Lifecycle callback invoked by the modem context before it hasbecome
a newsocket
implementation.
-
didBecome
void didBecome(Socket socket)
Lifecycle callback invoked by the modem context after it hasbecome
a newsocket
implementation.
-
didTimeout
void didTimeout()
Lifecycle callback invoked by the modem context after the underlying network connection has timed out. The modem will automatically be closed.
-
didDisconnect
void didDisconnect()
Lifecycle callback invoked by the socket context after the underlying network connection has disconnected.
-
didFail
void didFail(Throwable error)
Lifecycle callback invoked by the modem context when the underlying network socket fails by throwing anerror
. The modem will automatically be closed.
-
-