org.mortbay.io.nio
Class SelectorManager
java.lang.Object
org.mortbay.component.AbstractLifeCycle
org.mortbay.io.nio.SelectorManager
- All Implemented Interfaces:
- LifeCycle
public abstract class SelectorManager
- extends AbstractLifeCycle
The Selector Manager manages and number of SelectSets to allow
NIO scheduling to scale to large numbers of connections.
- Author:
- gregw
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
SelectorManager
public SelectorManager()
setMaxIdleTime
public void setMaxIdleTime(long maxIdleTime)
- Parameters:
maxIdleTime
- The maximum period in milli seconds that a connection may be idle before it is closed.- See Also:
#setLowResourcesMaxIdleTime(long)}
setSelectSets
public void setSelectSets(int selectSets)
- Parameters:
selectSets
-
getMaxIdleTime
public long getMaxIdleTime()
- Returns:
getSelectSets
public int getSelectSets()
- Returns:
isDelaySelectKeyUpdate
public boolean isDelaySelectKeyUpdate()
- Returns:
register
public void register(SocketChannel channel,
Object att)
throws IOException
- Register a channel
- Parameters:
channel
- att
- Attached Object
- Throws:
IOException
register
public void register(ServerSocketChannel acceptChannel)
throws IOException
- Register a serverchannel
- Parameters:
acceptChannel
-
- Throws:
IOException
getLowResourcesConnections
public long getLowResourcesConnections()
- Returns:
- the lowResourcesConnections
setLowResourcesConnections
public void setLowResourcesConnections(long lowResourcesConnections)
- Set the number of connections, which if exceeded places this manager in low resources state.
This is not an exact measure as the connection count is averaged over the select sets.
- Parameters:
lowResourcesConnections
- the number of connections- See Also:
#setLowResourcesMaxIdleTime(long)}
getLowResourcesMaxIdleTime
public long getLowResourcesMaxIdleTime()
- Returns:
- the lowResourcesMaxIdleTime
setLowResourcesMaxIdleTime
public void setLowResourcesMaxIdleTime(long lowResourcesMaxIdleTime)
- Parameters:
lowResourcesMaxIdleTime
- the period in ms that a connection is allowed to be idle when this SelectSet has more connections than getLowResourcesConnections()
- See Also:
#setMaxIdleTime(long)}
doSelect
public void doSelect(int acceptorID)
throws IOException
- Parameters:
acceptorID
-
- Throws:
IOException
setDelaySelectKeyUpdate
public void setDelaySelectKeyUpdate(boolean delaySelectKeyUpdate)
- Parameters:
delaySelectKeyUpdate
-
acceptChannel
protected abstract SocketChannel acceptChannel(SelectionKey key)
throws IOException
- Parameters:
key
-
- Returns:
-
- Throws:
IOException
dispatch
public abstract boolean dispatch(Runnable task)
throws IOException
- Throws:
IOException
doStart
protected void doStart()
throws Exception
- Overrides:
doStart
in class AbstractLifeCycle
- Throws:
Exception
doStop
protected void doStop()
throws Exception
- Overrides:
doStop
in class AbstractLifeCycle
- Throws:
Exception
endPointClosed
protected abstract void endPointClosed(SelectChannelEndPoint endpoint)
- Parameters:
endpoint
-
endPointOpened
protected abstract void endPointOpened(SelectChannelEndPoint endpoint)
- Parameters:
endpoint
-
newConnection
protected abstract Connection newConnection(SocketChannel channel,
SelectChannelEndPoint endpoint)
newEndPoint
protected abstract SelectChannelEndPoint newEndPoint(SocketChannel channel,
SelectorManager.SelectSet selectSet,
SelectionKey sKey)
throws IOException
- Parameters:
channel
- selectSet
- sKey
-
- Returns:
-
- Throws:
IOException
connectionFailed
protected void connectionFailed(SocketChannel channel,
Throwable ex,
Object attachment)
Copyright © 1995-2009 Mort Bay Consulting. All Rights Reserved.