org.apache.mina.core.polling
Class AbstractPollingConnectionlessIoAcceptor<T extends AbstractIoSession,H>

java.lang.Object
  extended by org.apache.mina.core.service.AbstractIoService
      extended by org.apache.mina.core.service.AbstractIoAcceptor
          extended by org.apache.mina.core.polling.AbstractPollingConnectionlessIoAcceptor<T,H>
All Implemented Interfaces:
IoAcceptor, IoService
Direct Known Subclasses:
NioDatagramAcceptor

public abstract class AbstractPollingConnectionlessIoAcceptor<T extends AbstractIoSession,H>
extends AbstractIoAcceptor

TODO Add documentation IoAcceptor for datagram transport (UDP/IP).

Version:
$Rev: 678335 $, $Date: 2008-07-21 03:25:08 +0200 (lun, 21 jui 2008) $
Author:
The Apache MINA Project (dev@mina.apache.org)

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.mina.core.service.AbstractIoAcceptor
AbstractIoAcceptor.AcceptorOperationFuture
 
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.AbstractIoAcceptor
bindLock
 
Fields inherited from class org.apache.mina.core.service.AbstractIoService
disposalLock
 
Constructor Summary
protected AbstractPollingConnectionlessIoAcceptor(IoSessionConfig sessionConfig)
          Creates a new instance.
protected AbstractPollingConnectionlessIoAcceptor(IoSessionConfig sessionConfig, Executor executor)
          Creates a new instance.
 
Method Summary
protected  Set<SocketAddress> bind0(List<? extends SocketAddress> localAddresses)
          Implement this method to perform the actual bind operation.
protected abstract  void close(H handle)
           
protected abstract  void destroy()
           
protected  IoFuture dispose0()
          Implement this method to release any acquired resources.
 IoSessionRecycler getSessionRecycler()
           
protected abstract  void init()
           
protected abstract  boolean isReadable(H handle)
           
protected abstract  boolean isWritable(H handle)
           
protected abstract  SocketAddress localAddress(H handle)
           
protected abstract  T newSession(IoProcessor<T> processor, H handle, SocketAddress remoteAddress)
           
 IoSession newSession(SocketAddress remoteAddress, SocketAddress localAddress)
          (Optional) Returns an IoSession that is bound to the specified localAddress and the specified remoteAddress which reuses the local address that is already bound by this service.
protected abstract  H open(SocketAddress localAddress)
           
protected abstract  SocketAddress receive(H handle, IoBuffer buffer)
           
protected abstract  boolean select(int timeout)
           
protected abstract  Iterator<H> selectedHandles()
           
protected abstract  int send(T session, IoBuffer buffer, SocketAddress remoteAddress)
           
protected abstract  void setInterestedInWrite(T session, boolean interested)
           
 void setSessionRecycler(IoSessionRecycler sessionRecycler)
           
protected  void unbind0(List<? extends SocketAddress> localAddresses)
          Implement this method to perform the actual unbind operation.
protected abstract  void wakeup()
           
 
Methods inherited from class org.apache.mina.core.service.AbstractIoAcceptor
bind, bind, bind, bind, getDefaultLocalAddress, getDefaultLocalAddresses, getLocalAddress, getLocalAddresses, isCloseOnDeactivation, setCloseOnDeactivation, setDefaultLocalAddress, setDefaultLocalAddresses, setDefaultLocalAddresses, setDefaultLocalAddresses, toString, unbind, unbind, unbind, unbind
 
Methods inherited from class org.apache.mina.core.service.AbstractIoService
addListener, broadcast, dispose, executeWorker, executeWorker, finishSessionInitialization, finishSessionInitialization0, getActivationTime, getFilterChain, getFilterChainBuilder, getHandler, getIdleState, getIdleStatusChecker, getListeners, getManagedSessionCount, getManagedSessions, getScheduledWriteBytes, getScheduledWriteMessages, getSessionConfig, getSessionDataStructureFactory, getStatistics, isActive, isDisposed, isDisposing, notifyIdleness, removeListener, setFilterChainBuilder, setHandler, setSessionDataStructureFactory
 
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

AbstractPollingConnectionlessIoAcceptor

protected AbstractPollingConnectionlessIoAcceptor(IoSessionConfig sessionConfig)
Creates a new instance.


AbstractPollingConnectionlessIoAcceptor

protected AbstractPollingConnectionlessIoAcceptor(IoSessionConfig sessionConfig,
                                                  Executor executor)
Creates a new instance.

Method Detail

init

protected abstract void init()
                      throws Exception
Throws:
Exception

destroy

protected abstract void destroy()
                         throws Exception
Throws:
Exception

select

protected abstract boolean select(int timeout)
                           throws Exception
Throws:
Exception

wakeup

protected abstract void wakeup()

selectedHandles

protected abstract Iterator<H> selectedHandles()

open

protected abstract H open(SocketAddress localAddress)
                   throws Exception
Throws:
Exception

close

protected abstract void close(H handle)
                       throws Exception
Throws:
Exception

localAddress

protected abstract SocketAddress localAddress(H handle)
                                       throws Exception
Throws:
Exception

isReadable

protected abstract boolean isReadable(H handle)

isWritable

protected abstract boolean isWritable(H handle)

receive

protected abstract SocketAddress receive(H handle,
                                         IoBuffer buffer)
                                  throws Exception
Throws:
Exception

send

protected abstract int send(T session,
                            IoBuffer buffer,
                            SocketAddress remoteAddress)
                     throws Exception
Throws:
Exception

newSession

protected abstract T newSession(IoProcessor<T> processor,
                                H handle,
                                SocketAddress remoteAddress)
                                                   throws Exception
Throws:
Exception

setInterestedInWrite

protected abstract void setInterestedInWrite(T session,
                                             boolean interested)
                                      throws Exception
Throws:
Exception

dispose0

protected IoFuture dispose0()
                     throws Exception
Implement this method to release any acquired resources. This method is invoked only once by AbstractIoService.dispose().

Specified by:
dispose0 in class AbstractIoService
Throws:
Exception

bind0

protected final Set<SocketAddress> bind0(List<? extends SocketAddress> localAddresses)
                                  throws Exception
Implement this method to perform the actual bind operation.

Specified by:
bind0 in class AbstractIoAcceptor
Returns:
the Set of the local addresses which is bound actually
Throws:
Exception

unbind0

protected final void unbind0(List<? extends SocketAddress> localAddresses)
                      throws Exception
Implement this method to perform the actual unbind operation.

Specified by:
unbind0 in class AbstractIoAcceptor
Throws:
Exception

newSession

public final IoSession newSession(SocketAddress remoteAddress,
                                  SocketAddress localAddress)
(Optional) Returns an IoSession that is bound to the specified localAddress and the specified remoteAddress which reuses the local address that is already bound by this service.

This operation is optional. Please throw UnsupportedOperationException if the transport type doesn't support this operation. This operation is usually implemented for connectionless transport types.


getSessionRecycler

public final IoSessionRecycler getSessionRecycler()

setSessionRecycler

public final void setSessionRecycler(IoSessionRecycler sessionRecycler)


Copyright © 2004-2008 Apache MINA Project. All Rights Reserved.