Package com.google.code.yanf4j.nio.impl
Class NioController
- java.lang.Object
-
- com.google.code.yanf4j.core.impl.AbstractController
-
- com.google.code.yanf4j.nio.impl.NioController
-
- All Implemented Interfaces:
Controller
,ControllerLifeCycle
,SelectionKeyHandler
- Direct Known Subclasses:
SocketChannelController
public abstract class NioController extends AbstractController implements SelectionKeyHandler
Base nio controller
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
NioController.ReadTask
Read taskprivate class
NioController.WriteTask
Write task
-
Field Summary
Fields Modifier and Type Field Description protected SelectorManager
selectorManager
protected int
selectorPoolSize
Reactor count-
Fields inherited from class com.google.code.yanf4j.core.impl.AbstractController
codecFactory, configuration, dispatchMessageDispatcher, dispatchMessageThreadCount, handler, handleReadWriteConcurrently, localSocketAddress, log, readEventDispatcher, readThreadCount, sessionSet, sessionTimeout, socketOptions, soTimeout, started, stateListeners, statistics, statisticsInterval, writeEventDispatcher, writeThreadCount
-
-
Constructor Summary
Constructors Constructor Description NioController()
NioController(Configuration configuration)
NioController(Configuration configuration, CodecFactory codecFactory)
NioController(Configuration configuration, Handler handler, CodecFactory codecFactory)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
bind(int port)
protected NioSessionConfig
buildSessionConfig(java.nio.channels.SelectableChannel sc, java.util.Queue<WriteMessage> queue)
Build nio session configvoid
closeSelectionKey(java.nio.channels.SelectionKey key)
Cancel selection keyprotected abstract void
dispatchReadEvent(java.nio.channels.SelectionKey key)
Dispatch read eventprotected abstract void
dispatchWriteEvent(java.nio.channels.SelectionKey key)
Dispatch write eventprotected abstract void
doStart()
Inner startupSelectorManager
getSelectorManager()
int
getSelectorPoolSize()
protected void
initialSelectorManager()
Start selector managervoid
onRead(java.nio.channels.SelectionKey key)
Read event occuredvoid
onWrite(java.nio.channels.SelectionKey key)
Writable event occuredvoid
setSelectorPoolSize(int selectorPoolSize)
protected void
start0()
protected void
stop0()
-
Methods inherited from class com.google.code.yanf4j.core.impl.AbstractController
addStateListener, bind, buildQueue, checkStatisticsForRestart, getCodecFactory, getConfiguration, getDispatchMessageThreadCount, getHandler, getLocalSocketAddress, getPort, getReadThreadCount, getReceiveThroughputLimit, getSendThroughputLimit, getSessionIdleTimeout, getSessionSet, getSessionTimeout, getSocketOption, getSoTimeout, getStatistics, getWriteThreadCount, isHandleReadWriteConcurrently, isStarted, notifyAllSessionClosed, notifyException, notifyReady, notifyStarted, notifyStopped, onAccept, onConnect, registerSession, removeStateListener, setCodecFactory, setConfiguration, setDispatchMessageThreadCount, setHandler, setHandleReadWriteConcurrently, setLocalSocketAddress, setReadThreadCount, setReceiveThroughputLimit, setSendThroughputLimit, setSessionIdleTimeout, setSessionTimeout, setSocketOption, setSocketOptions, setSoTimeout, setWriteThreadCount, start, stop, unregisterSession
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.google.code.yanf4j.nio.SelectionKeyHandler
closeChannel, onAccept, onConnect
-
-
-
-
Field Detail
-
selectorManager
protected SelectorManager selectorManager
-
selectorPoolSize
protected int selectorPoolSize
Reactor count
-
-
Constructor Detail
-
NioController
public NioController()
-
NioController
public NioController(Configuration configuration, CodecFactory codecFactory)
-
NioController
public NioController(Configuration configuration, Handler handler, CodecFactory codecFactory)
-
NioController
public NioController(Configuration configuration)
-
-
Method Detail
-
getSelectorPoolSize
public int getSelectorPoolSize()
- Returns:
- See Also:
setSelectorPoolSize(int)
-
setSelectorPoolSize
public void setSelectorPoolSize(int selectorPoolSize)
-
getSelectorManager
public final SelectorManager getSelectorManager()
-
start0
protected void start0() throws java.io.IOException
- Specified by:
start0
in classAbstractController
- Throws:
java.io.IOException
-
initialSelectorManager
protected void initialSelectorManager() throws java.io.IOException
Start selector manager- Throws:
java.io.IOException
-
doStart
protected abstract void doStart() throws java.io.IOException
Inner startup- Throws:
java.io.IOException
-
onRead
public void onRead(java.nio.channels.SelectionKey key)
Read event occured- Specified by:
onRead
in interfaceSelectionKeyHandler
-
onWrite
public void onWrite(java.nio.channels.SelectionKey key)
Writable event occured- Specified by:
onWrite
in interfaceSelectionKeyHandler
-
closeSelectionKey
public void closeSelectionKey(java.nio.channels.SelectionKey key)
Cancel selection key- Specified by:
closeSelectionKey
in interfaceSelectionKeyHandler
-
dispatchReadEvent
protected abstract void dispatchReadEvent(java.nio.channels.SelectionKey key)
Dispatch read event- Parameters:
key
-
-
dispatchWriteEvent
protected abstract void dispatchWriteEvent(java.nio.channels.SelectionKey key)
Dispatch write event- Parameters:
key
-
-
stop0
protected void stop0() throws java.io.IOException
- Specified by:
stop0
in classAbstractController
- Throws:
java.io.IOException
-
bind
public void bind(int port) throws java.io.IOException
- Throws:
java.io.IOException
-
buildSessionConfig
protected final NioSessionConfig buildSessionConfig(java.nio.channels.SelectableChannel sc, java.util.Queue<WriteMessage> queue)
Build nio session config- Parameters:
sc
-queue
-- Returns:
-
-