public class Nio2Acceptor extends Nio2Service implements IoAcceptor
Modifier and Type | Class and Description |
---|---|
protected class |
Nio2Acceptor.AcceptCompletionHandler |
AbstractCloseable.State
Modifier and Type | Field and Description |
---|---|
private int |
backlog |
protected java.util.Map<java.net.SocketAddress,java.nio.channels.AsynchronousServerSocketChannel> |
channels |
CONFIGURABLE_OPTIONS, disposing, sessions
closeFuture, lock, state
log
DEFAULT_BACKLOG
DEFAULT_REUSE_ADDRESS
CLOSE_WAIT_TIMEOUT, DEFAULT_CLOSE_WAIT_TIMEOUT
Constructor and Description |
---|
Nio2Acceptor(FactoryManager manager,
IoHandler handler,
java.nio.channels.AsynchronousChannelGroup group) |
Modifier and Type | Method and Description |
---|---|
void |
bind(java.util.Collection<? extends java.net.SocketAddress> addresses) |
void |
bind(java.net.SocketAddress address) |
CloseFuture |
close(boolean immediately)
Close this resource asynchronously and return a future.
|
protected java.nio.channels.CompletionHandler<java.nio.channels.AsynchronousSocketChannel,? super java.net.SocketAddress> |
createSocketCompletionHandler(java.util.Map<java.net.SocketAddress,java.nio.channels.AsynchronousServerSocketChannel> channelsMap,
java.nio.channels.AsynchronousServerSocketChannel socket) |
void |
doCloseImmediately()
doCloseImmediately is called once and only once
with state == Immediate
|
java.util.Set<java.net.SocketAddress> |
getBoundAddresses() |
protected java.nio.channels.AsynchronousServerSocketChannel |
openAsynchronousServerSocketChannel(java.net.SocketAddress address,
java.nio.channels.AsynchronousChannelGroup group) |
java.lang.String |
toString() |
void |
unbind() |
void |
unbind(java.util.Collection<? extends java.net.SocketAddress> addresses) |
void |
unbind(java.net.SocketAddress address) |
dispose, getChannelGroup, getFactoryManager, getInnerCloseable, getIoHandler, getManagedSessions, sessionClosed, setOption, setSocketOptions, unmapSession
doCloseGracefully
addCloseFutureListener, builder, isClosed, isClosing, preClose, removeCloseFutureListener
getSimplifiedLogger
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getManagedSessions
addCloseFutureListener, close, close, getMaxCloseWaitTime, isClosed, isClosing, isOpen, removeCloseFutureListener
protected final java.util.Map<java.net.SocketAddress,java.nio.channels.AsynchronousServerSocketChannel> channels
private int backlog
public Nio2Acceptor(FactoryManager manager, IoHandler handler, java.nio.channels.AsynchronousChannelGroup group)
public void bind(java.util.Collection<? extends java.net.SocketAddress> addresses) throws java.io.IOException
bind
in interface IoAcceptor
java.io.IOException
protected java.nio.channels.AsynchronousServerSocketChannel openAsynchronousServerSocketChannel(java.net.SocketAddress address, java.nio.channels.AsynchronousChannelGroup group) throws java.io.IOException
java.io.IOException
protected java.nio.channels.CompletionHandler<java.nio.channels.AsynchronousSocketChannel,? super java.net.SocketAddress> createSocketCompletionHandler(java.util.Map<java.net.SocketAddress,java.nio.channels.AsynchronousServerSocketChannel> channelsMap, java.nio.channels.AsynchronousServerSocketChannel socket) throws java.io.IOException
java.io.IOException
public void bind(java.net.SocketAddress address) throws java.io.IOException
bind
in interface IoAcceptor
java.io.IOException
public void unbind()
unbind
in interface IoAcceptor
public void unbind(java.util.Collection<? extends java.net.SocketAddress> addresses)
unbind
in interface IoAcceptor
public void unbind(java.net.SocketAddress address)
unbind
in interface IoAcceptor
public java.util.Set<java.net.SocketAddress> getBoundAddresses()
getBoundAddresses
in interface IoAcceptor
public CloseFuture close(boolean immediately)
Closeable
close
in class AbstractCloseable
immediately
- true
if the resource should be shut down abruptly,
false
for a graceful closeCloseFuture
representing the close requestpublic void doCloseImmediately()
AbstractCloseable
doCloseImmediately is called once and only once with state == Immediate
Overriding methods should always call the base implementation. It may be called concurrently while preClose() or doCloseGracefully is executing
doCloseImmediately
in class AbstractInnerCloseable
public java.lang.String toString()
toString
in class java.lang.Object