public final class NioDatagramConnector extends AbstractPollingIoConnector<NioSession,DatagramChannel> implements DatagramConnector
IoConnector
for datagram transport (UDP/IP).AbstractPollingIoConnector.ConnectionRequest
AbstractIoService.ServiceOperationFuture
disposalLock, sessionConfig
Constructor and Description |
---|
NioDatagramConnector()
Creates a new instance.
|
NioDatagramConnector(Class<? extends IoProcessor<NioSession>> processorClass)
Constructor for
NioDatagramConnector with default configuration with default configuration which will use a built-in
thread pool executor to manage the default number of processor instances. |
NioDatagramConnector(Class<? extends IoProcessor<NioSession>> processorClass,
int processorCount)
Constructor for
NioDatagramConnector with default configuration which will use a built-in
thread pool executor to manage the given number of processor instances. |
NioDatagramConnector(int processorCount)
Creates a new instance.
|
NioDatagramConnector(IoProcessor<NioSession> processor)
Creates a new instance.
|
Modifier and Type | Method and Description |
---|---|
protected Iterator<DatagramChannel> |
allHandles()
Iterator for all the client sockets polled for connection. |
protected void |
close(DatagramChannel handle)
Close a client socket.
|
protected boolean |
connect(DatagramChannel handle,
SocketAddress remoteAddress)
Connect a newly created client socket handle to a remote
SocketAddress . |
protected void |
destroy()
Destroy the polling system, will be called when this
IoConnector
implementation will be disposed. |
protected boolean |
finishConnect(DatagramChannel handle)
Finish the connection process of a client socket after it was marked as
ready to process by the
AbstractPollingIoConnector.select(int) call. |
protected AbstractPollingIoConnector.ConnectionRequest |
getConnectionRequest(DatagramChannel handle)
get the
AbstractPollingIoConnector.ConnectionRequest for a given client socket handle |
InetSocketAddress |
getDefaultRemoteAddress() |
DatagramSessionConfig |
getSessionConfig() |
TransportMetadata |
getTransportMetadata() |
protected void |
init()
Initialize the polling system, will be called at construction time.
|
protected DatagramChannel |
newHandle(SocketAddress localAddress)
Create a new client socket handle from a local
SocketAddress |
protected NioSession |
newSession(IoProcessor<NioSession> processor,
DatagramChannel handle)
Create a new
IoSession from a connected socket client handle. |
protected void |
register(DatagramChannel handle,
AbstractPollingIoConnector.ConnectionRequest request)
Register a new client socket for connection, add it to connection polling
|
protected int |
select(int timeout)
Check for connected sockets, interrupt when at least a connection is
processed (connected or failed to connect).
|
protected Iterator<DatagramChannel> |
selectedHandles()
Iterator for the set of client sockets found connected or failed
to connect during the last AbstractPollingIoConnector.select(int) call. |
void |
setDefaultRemoteAddress(InetSocketAddress defaultRemoteAddress)
Sets the default remote InetSocketAddress to connect to when no argument is
specified in
IoConnector.connect() method. |
protected void |
wakeup()
Interrupt the
AbstractPollingIoConnector.select(int) method. |
connect0, dispose0
connect, connect, connect, connect, connect, connect, finishSessionInitialization0, getConnectTimeout, getConnectTimeoutCheckInterval, getConnectTimeoutMillis, getDefaultLocalAddress, setConnectTimeout, setConnectTimeoutCheckInterval, setConnectTimeoutMillis, setDefaultLocalAddress, setDefaultRemoteAddress, toString
addListener, broadcast, dispose, dispose, executeWorker, executeWorker, getActivationTime, getFilterChain, getFilterChainBuilder, getHandler, getListeners, getManagedSessionCount, getManagedSessions, getScheduledWriteBytes, getScheduledWriteMessages, getSessionDataStructureFactory, getStatistics, initSession, isActive, isDisposed, isDisposing, removeListener, setFilterChainBuilder, setHandler, setSessionDataStructureFactory
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
connect, connect, connect, connect, connect, connect, getConnectTimeout, getConnectTimeoutMillis, getDefaultLocalAddress, setConnectTimeout, setConnectTimeoutMillis, setDefaultLocalAddress, setDefaultRemoteAddress
addListener, broadcast, dispose, dispose, getActivationTime, getFilterChain, getFilterChainBuilder, getHandler, getManagedSessionCount, getManagedSessions, getScheduledWriteBytes, getScheduledWriteMessages, getSessionDataStructureFactory, getStatistics, isActive, isDisposed, isDisposing, removeListener, setFilterChainBuilder, setHandler, setSessionDataStructureFactory
public NioDatagramConnector()
public NioDatagramConnector(int processorCount)
processorCount
- The number of IoProcessor instance to createpublic NioDatagramConnector(IoProcessor<NioSession> processor)
processor
- The IoProcessor instance to usepublic NioDatagramConnector(Class<? extends IoProcessor<NioSession>> processorClass, int processorCount)
NioDatagramConnector
with default configuration which will use a built-in
thread pool executor to manage the given number of processor instances. The processor class must have
a constructor that accepts ExecutorService or Executor as its single argument, or, failing that, a
no-arg constructor.processorClass
- the processor class.processorCount
- the number of processors to instantiate.SimpleIoProcessorPool.SimpleIoProcessorPool(Class, Executor, int, java.nio.channels.spi.SelectorProvider)
public NioDatagramConnector(Class<? extends IoProcessor<NioSession>> processorClass)
NioDatagramConnector
with default configuration with default configuration which will use a built-in
thread pool executor to manage the default number of processor instances. The processor class must have
a constructor that accepts ExecutorService or Executor as its single argument, or, failing that, a
no-arg constructor. The default number of instances is equal to the number of processor cores
in the system, plus one.processorClass
- the processor class.SimpleIoProcessorPool.SimpleIoProcessorPool(Class, Executor, int, java.nio.channels.spi.SelectorProvider)
,
SimpleIoProcessorPool.DEFAULT_SIZE
public TransportMetadata getTransportMetadata()
getTransportMetadata
in interface IoService
TransportMetadata
that this service runs on.public DatagramSessionConfig getSessionConfig()
getSessionConfig
in interface IoService
getSessionConfig
in interface DatagramConnector
public InetSocketAddress getDefaultRemoteAddress()
AbstractIoConnector
getDefaultRemoteAddress
in interface IoConnector
getDefaultRemoteAddress
in interface DatagramConnector
getDefaultRemoteAddress
in class AbstractIoConnector
IoConnector.connect()
method.public void setDefaultRemoteAddress(InetSocketAddress defaultRemoteAddress)
DatagramConnector
IoConnector.connect()
method.
This method overrides the IoConnector.setDefaultRemoteAddress(java.net.SocketAddress)
method.setDefaultRemoteAddress
in interface DatagramConnector
defaultRemoteAddress
- The remote address to setprotected void init() throws Exception
AbstractPollingIoConnector
init
in class AbstractPollingIoConnector<NioSession,DatagramChannel>
Exception
- any exception thrown by the underlying system callsprotected DatagramChannel newHandle(SocketAddress localAddress) throws Exception
AbstractPollingIoConnector
SocketAddress
newHandle
in class AbstractPollingIoConnector<NioSession,DatagramChannel>
localAddress
- the socket address for binding the new client socketException
- any exception thrown by the underlying systems callsprotected boolean connect(DatagramChannel handle, SocketAddress remoteAddress) throws Exception
AbstractPollingIoConnector
SocketAddress
. This operation is non-blocking, so at end of the
call the socket can be still in connection process.connect
in class AbstractPollingIoConnector<NioSession,DatagramChannel>
handle
- the client socket handleremoteAddress
- the remote address where to connectException
- If the connect failedprotected NioSession newSession(IoProcessor<NioSession> processor, DatagramChannel handle)
AbstractPollingIoConnector
IoSession
from a connected socket client handle.
Will assign the created IoSession
to the given
IoProcessor
for managing future I/O events.newSession
in class AbstractPollingIoConnector<NioSession,DatagramChannel>
processor
- the processor in charge of this sessionhandle
- the newly connected client socket handleIoSession
protected void close(DatagramChannel handle) throws Exception
AbstractPollingIoConnector
close
in class AbstractPollingIoConnector<NioSession,DatagramChannel>
handle
- the client socketException
- any exception thrown by the underlying systems callsprotected Iterator<DatagramChannel> allHandles()
AbstractPollingIoConnector
Iterator
for all the client sockets polled for connection.allHandles
in class AbstractPollingIoConnector<NioSession,DatagramChannel>
protected AbstractPollingIoConnector.ConnectionRequest getConnectionRequest(DatagramChannel handle)
AbstractPollingIoConnector
AbstractPollingIoConnector.ConnectionRequest
for a given client socket handlegetConnectionRequest
in class AbstractPollingIoConnector<NioSession,DatagramChannel>
handle
- the socket client handlenull
protected void destroy() throws Exception
AbstractPollingIoConnector
IoConnector
implementation will be disposed.destroy
in class AbstractPollingIoConnector<NioSession,DatagramChannel>
Exception
- any exception thrown by the underlying systems callsprotected boolean finishConnect(DatagramChannel handle) throws Exception
AbstractPollingIoConnector
AbstractPollingIoConnector.select(int)
call. The socket will be
connected or reported as connection failed.finishConnect
in class AbstractPollingIoConnector<NioSession,DatagramChannel>
handle
- the client socket handle to finish to connectException
- any exception thrown by the underlying systems callsprotected void register(DatagramChannel handle, AbstractPollingIoConnector.ConnectionRequest request) throws Exception
AbstractPollingIoConnector
register
in class AbstractPollingIoConnector<NioSession,DatagramChannel>
handle
- client socket handlerequest
- the associated AbstractPollingIoConnector.ConnectionRequest
Exception
- any exception thrown by the underlying systems callsprotected int select(int timeout) throws Exception
AbstractPollingIoConnector
AbstractPollingIoConnector.selectedHandles()
select
in class AbstractPollingIoConnector<NioSession,DatagramChannel>
timeout
- The timeout for the select() methodException
- any exception thrown by the underlying systems callsprotected Iterator<DatagramChannel> selectedHandles()
AbstractPollingIoConnector
Iterator
for the set of client sockets found connected or failed
to connect during the last AbstractPollingIoConnector.select(int)
call.selectedHandles
in class AbstractPollingIoConnector<NioSession,DatagramChannel>
protected void wakeup()
AbstractPollingIoConnector
AbstractPollingIoConnector.select(int)
method. Used when the poll set need to
be modified.wakeup
in class AbstractPollingIoConnector<NioSession,DatagramChannel>
Copyright © 2004–2016 Apache MINA Project. All rights reserved.