|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.mina.core.service.AbstractIoService
org.apache.mina.core.service.AbstractIoConnector
org.apache.mina.core.polling.AbstractPollingIoConnector<T,H>
public abstract class AbstractPollingIoConnector<T extends AbstractIoSession,H>
A base class for implementing client transport using a polling strategy. The
underlying sockets will be checked in an active loop and woke up when an
socket needed to be processed. This class handle the logic behind binding,
connecting and disposing the client sockets. A Executor will be used
for running client connection, and an AbstractPollingIoProcessor will
be used for processing connected client I/O operations like reading, writing
and closing.
All the low level methods for binding, connecting, closing need to be
provided by the subclassing implementation.
for a example of implementation| Nested Class Summary | |
|---|---|
class |
AbstractPollingIoConnector.ConnectionRequest
|
| Nested classes/interfaces inherited from class org.apache.mina.core.service.AbstractIoService |
|---|
AbstractIoService.ServiceOperationFuture |
| Field Summary |
|---|
| Fields inherited from class org.apache.mina.core.service.AbstractIoService |
|---|
disposalLock |
| Constructor Summary | |
|---|---|
protected |
AbstractPollingIoConnector(IoSessionConfig sessionConfig,
Class<? extends IoProcessor<T>> processorClass)
Constructor for AbstractPollingIoConnector. |
protected |
AbstractPollingIoConnector(IoSessionConfig sessionConfig,
Class<? extends IoProcessor<T>> processorClass,
int processorCount)
Constructor for AbstractPollingIoConnector. |
protected |
AbstractPollingIoConnector(IoSessionConfig sessionConfig,
Executor executor,
IoProcessor<T> processor)
Constructor for AbstractPollingIoConnector. |
protected |
AbstractPollingIoConnector(IoSessionConfig sessionConfig,
IoProcessor<T> processor)
Constructor for AbstractPollingIoConnector. |
| Method Summary | |
|---|---|
protected abstract Iterator<H> |
allHandles()
Iterator for all the client sockets polled for connection. |
protected abstract void |
close(H handle)
Close a client socket. |
protected abstract boolean |
connect(H handle,
SocketAddress remoteAddress)
Connect a newly created client socket handle to a remote SocketAddress. |
protected ConnectFuture |
connect0(SocketAddress remoteAddress,
SocketAddress localAddress,
IoSessionInitializer<? extends ConnectFuture> sessionInitializer)
Implement this method to perform the actual connect operation. |
protected abstract AbstractPollingIoConnector.ConnectionRequest |
connectionRequest(H handle)
get the AbstractPollingIoConnector.ConnectionRequest for a given client socket handle |
protected abstract void |
destroy()
Destroy the polling system, will be called when this IoConnector
implementation will be disposed. |
protected IoFuture |
dispose0()
Implement this method to release any acquired resources. |
protected abstract boolean |
finishConnect(H handle)
Finish the connection process of a client socket after it was marked as ready to process by the select(int) call. |
protected abstract void |
init()
Initialize the polling system, will be called at construction time. |
protected abstract H |
newHandle(SocketAddress localAddress)
Create a new client socket handle from a local SocketAddress |
protected abstract T |
newSession(IoProcessor<T> processor,
H handle)
Create a new IoSession from a connected socket client handle. |
protected abstract void |
register(H handle,
AbstractPollingIoConnector.ConnectionRequest request)
Register a new client socket for connection, add it to connection polling |
protected abstract boolean |
select(int timeout)
Check for connected sockets, interrupt when at least a connection is processed (connected or failed to connect). |
protected abstract Iterator<H> |
selectedHandles()
Iterator for the set of client sockets found connected or
failed to connect during the last #select() call. |
protected abstract void |
wakeup()
Interrupt the #select() method. |
| Methods inherited from class org.apache.mina.core.service.AbstractIoConnector |
|---|
connect, connect, connect, connect, connect, connect, finishSessionInitialization0, getConnectTimeout, getConnectTimeoutCheckInterval, getConnectTimeoutMillis, getDefaultRemoteAddress, setConnectTimeout, setConnectTimeoutCheckInterval, setConnectTimeoutMillis, setDefaultRemoteAddress, toString |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface org.apache.mina.core.service.IoService |
|---|
addListener, broadcast, dispose, getActivationTime, getFilterChain, getFilterChainBuilder, getHandler, getIdleState, getManagedSessionCount, getManagedSessions, getScheduledWriteBytes, getScheduledWriteMessages, getSessionConfig, getSessionDataStructureFactory, getStatistics, getTransportMetadata, isActive, isDisposed, isDisposing, removeListener, setFilterChainBuilder, setHandler, setSessionDataStructureFactory |
| Constructor Detail |
|---|
protected AbstractPollingIoConnector(IoSessionConfig sessionConfig,
Class<? extends IoProcessor<T>> processorClass)
AbstractPollingIoConnector. You need to provide a default
session configuration, a class of IoProcessor which will be instantiated in a
SimpleIoProcessorPool for better scaling in multiprocessor systems. The default
pool size will be used.
sessionConfig - the default configuration for the managed IoSessionprocessorClass - a Class of IoProcessor for the associated IoSession
type.SimpleIoProcessorPool
protected AbstractPollingIoConnector(IoSessionConfig sessionConfig,
Class<? extends IoProcessor<T>> processorClass,
int processorCount)
AbstractPollingIoConnector. You need to provide a default
session configuration, a class of IoProcessor which will be instantiated in a
SimpleIoProcessorPool for using multiple thread for better scaling in multiprocessor
systems.
sessionConfig - the default configuration for the managed IoSessionprocessorClass - a Class of IoProcessor for the associated IoSession
type.processorCount - the amount of processor to instantiate for the poolSimpleIoProcessorPool
protected AbstractPollingIoConnector(IoSessionConfig sessionConfig,
IoProcessor<T> processor)
AbstractPollingIoConnector. You need to provide a default
session configuration, a default Executor will be created using
Executors.newCachedThreadPool().
AbstractIoService#AbstractIoService(IoSessionConfig, Executor)
sessionConfig - the default configuration for the managed IoSessionprocessor - the IoProcessor for processing the IoSession of this transport, triggering
events to the bound IoHandler and processing the chains of IoFilter
protected AbstractPollingIoConnector(IoSessionConfig sessionConfig,
Executor executor,
IoProcessor<T> processor)
AbstractPollingIoConnector. You need to provide a default
session configuration and an Executor for handling I/O events. If
null Executor is provided, a default one will be created using
Executors.newCachedThreadPool().
AbstractIoService#AbstractIoService(IoSessionConfig, Executor)
sessionConfig - the default configuration for the managed IoSessionexecutor - the Executor used for handling asynchronous execution of I/O
events. Can be null.processor - the IoProcessor for processing the IoSession of this transport, triggering
events to the bound IoHandler and processing the chains of IoFilter| Method Detail |
|---|
protected abstract void init()
throws Exception
Exception - any exception thrown by the underlying system calls
protected abstract void destroy()
throws Exception
IoConnector
implementation will be disposed.
Exception - any exception thrown by the underlying systems calls
protected abstract H newHandle(SocketAddress localAddress)
throws Exception
SocketAddress
localAddress - the socket address for binding the new client socket
Exception - any exception thrown by the underlying systems calls
protected abstract boolean connect(H handle,
SocketAddress remoteAddress)
throws Exception
SocketAddress.
This operation is non-blocking, so at end of the call the socket can be still in connection
process.
handle - the client socket handleremoteAddress - the remote address where to connect
Exception
protected abstract boolean finishConnect(H handle)
throws Exception
select(int) call. The socket will be connected or reported as connection
failed.
handle - the client socket handle to finsh to connect
Exception - any exception thrown by the underlying systems calls
protected abstract T newSession(IoProcessor<T> processor,
H handle)
throws Exception
IoSession from a connected socket client handle.
Will assign the created IoSession to the given IoProcessor for
managing future I/O events.
processor - the processor in charge of this sessionhandle - the newly connected client socket handle
IoSession
Exception - any exception thrown by the underlying systems calls
protected abstract void close(H handle)
throws Exception
handle - the client socket
Exception - any exception thrown by the underlying systems callsprotected abstract void wakeup()
#select() method. Used when the poll set need to be modified.
protected abstract boolean select(int timeout)
throws Exception
selectedHandles()
Exception - any exception thrown by the underlying systems callsprotected abstract Iterator<H> selectedHandles()
Iterator for the set of client sockets found connected or
failed to connect during the last #select() call.
protected abstract Iterator<H> allHandles()
Iterator for all the client sockets polled for connection.
protected abstract void register(H handle,
AbstractPollingIoConnector.ConnectionRequest request)
throws Exception
handle - client socket handlerequest - the associated AbstractPollingIoConnector.ConnectionRequest
Exception - any exception thrown by the underlying systems callsprotected abstract AbstractPollingIoConnector.ConnectionRequest connectionRequest(H handle)
AbstractPollingIoConnector.ConnectionRequest for a given client socket handle
handle - the socket client handle
null
protected final IoFuture dispose0()
throws Exception
AbstractIoService.dispose().
dispose0 in class AbstractIoServiceException
protected final ConnectFuture connect0(SocketAddress remoteAddress,
SocketAddress localAddress,
IoSessionInitializer<? extends ConnectFuture> sessionInitializer)
connect0 in class AbstractIoConnectorlocalAddress - null if no local address is specified
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||