- java.lang.Object
-
- org.xnio.Connection
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,java.nio.channels.Channel,java.nio.channels.InterruptibleChannel,BoundChannel,CloseableChannel,Configurable,ConnectedChannel
- Direct Known Subclasses:
MessageConnection,StreamConnection
public abstract class Connection extends java.lang.Object implements CloseableChannel, ConnectedChannel
The base for all connections.- Author:
- David M. Lloyd
-
-
Field Summary
Fields Modifier and Type Field Description protected XnioIoThreadthread-
Fields inherited from interface org.xnio.channels.Configurable
EMPTY
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedConnection(XnioIoThread thread)Construct a new instance.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidclose()Close this channel.protected voidcloseAction()The close action to perform on this connection.XnioIoThreadgetIoThread()Get the I/O thread associated with this channel.<A extends java.net.SocketAddress>
AgetLocalAddress(java.lang.Class<A> type)Get the local address of a given type, ornullif the address is not of that type.<T> TgetOption(Option<T> option)Get the value of a channel option.<A extends java.net.SocketAddress>
AgetPeerAddress(java.lang.Class<A> type)Get the peer address of a given type, ornullif the address is not of that type.XnioWorkergetWorker()Get the worker for this channel.booleanisOpen()booleanisReadShutdown()Determine whether reads have been shut down on this connection.booleanisWriteShutdown()Determine whether writes have been shut down on this connection.protected abstract voidnotifyReadClosed()Indicate to conduit handlers that reads have been closed.protected abstract voidnotifyWriteClosed()Indicate to conduit handlers that writes have been closed.protected booleanreadClosed()Indicate that reads have been closed on this connection.<T> TsetOption(Option<T> option, T value)Set an option for this channel.booleansupportsOption(Option<?> option)Determine whether an option is supported on this channel.protected booleanwriteClosed()Indicate that writes have been closed on this connection.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.xnio.channels.BoundChannel
getLocalAddress
-
Methods inherited from interface org.xnio.channels.ConnectedChannel
getCloseSetter, getPeerAddress
-
-
-
-
Field Detail
-
thread
protected final XnioIoThread thread
-
-
Constructor Detail
-
Connection
protected Connection(XnioIoThread thread)
Construct a new instance.- Parameters:
thread- the I/O thread of this connection
-
-
Method Detail
-
getPeerAddress
public final <A extends java.net.SocketAddress> A getPeerAddress(java.lang.Class<A> type)
Description copied from interface:ConnectedChannelGet the peer address of a given type, ornullif the address is not of that type.- Specified by:
getPeerAddressin interfaceConnectedChannel- Parameters:
type- the address type class- Returns:
- the peer address, or
nullif unknown
-
getLocalAddress
public final <A extends java.net.SocketAddress> A getLocalAddress(java.lang.Class<A> type)
Description copied from interface:BoundChannelGet the local address of a given type, ornullif the address is not of that type.- Specified by:
getLocalAddressin interfaceBoundChannel- Type Parameters:
A- the address type- Parameters:
type- the address type class- Returns:
- the local address, or
nullif unknown
-
getWorker
public final XnioWorker getWorker()
Description copied from interface:CloseableChannelGet the worker for this channel.- Specified by:
getWorkerin interfaceCloseableChannel- Returns:
- the worker
-
getIoThread
public XnioIoThread getIoThread()
Description copied from interface:CloseableChannelGet the I/O thread associated with this channel.- Specified by:
getIoThreadin interfaceCloseableChannel- Returns:
- the I/O thread associated with this channel
-
readClosed
protected boolean readClosed()
Indicate that reads have been closed on this connection.- Returns:
trueif read closure was successfully indicated;falseif this method has already been called
-
writeClosed
protected boolean writeClosed()
Indicate that writes have been closed on this connection.- Returns:
trueif write closure was successfully indicated;falseif this method has already been called
-
close
public final void close() throws java.io.IOExceptionDescription copied from interface:CloseableChannelClose this channel. When a channel is closed, its close listener is invoked. Invoking this method more than once has no additional effect.- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.nio.channels.Channel- Specified by:
closein interfacejava.io.Closeable- Specified by:
closein interfaceCloseableChannel- Specified by:
closein interfacejava.nio.channels.InterruptibleChannel- Throws:
java.io.IOException- if the close failed
-
isReadShutdown
public boolean isReadShutdown()
Determine whether reads have been shut down on this connection.- Returns:
trueif reads were shut down
-
isWriteShutdown
public boolean isWriteShutdown()
Determine whether writes have been shut down on this connection.- Returns:
trueif writes were shut down
-
isOpen
public boolean isOpen()
- Specified by:
isOpenin interfacejava.nio.channels.Channel
-
notifyWriteClosed
protected abstract void notifyWriteClosed()
Indicate to conduit handlers that writes have been closed.
-
notifyReadClosed
protected abstract void notifyReadClosed()
Indicate to conduit handlers that reads have been closed.
-
closeAction
protected void closeAction() throws java.io.IOExceptionThe close action to perform on this connection.- Throws:
java.io.IOException- if close fails
-
supportsOption
public boolean supportsOption(Option<?> option)
Description copied from interface:ConfigurableDetermine whether an option is supported on this channel.- Specified by:
supportsOptionin interfaceConfigurable- Parameters:
option- the option- Returns:
trueif it is supported
-
getOption
public <T> T getOption(Option<T> option) throws java.io.IOException
Description copied from interface:ConfigurableGet the value of a channel option.- Specified by:
getOptionin interfaceConfigurable- Type Parameters:
T- the type of the option value- Parameters:
option- the option to get- Returns:
- the value of the option, or
nullif it is not set - Throws:
java.io.IOException- if an I/O error occurred when reading the option
-
setOption
public <T> T setOption(Option<T> option, T value) throws java.lang.IllegalArgumentException, java.io.IOException
Description copied from interface:ConfigurableSet an option for this channel. Unsupported options are ignored.- Specified by:
setOptionin interfaceConfigurable- Type Parameters:
T- the type of the option value- Parameters:
option- the option to setvalue- the value of the option to set- Returns:
- the previous option value, if any
- Throws:
java.lang.IllegalArgumentException- if the value is not acceptable for this optionjava.io.IOException- if an I/O error occurred when modifying the option
-
-