Package org.glassfish.grizzly.strategies
Class SameThreadIOStrategy
- java.lang.Object
-
- org.glassfish.grizzly.strategies.AbstractIOStrategy
-
- org.glassfish.grizzly.strategies.SameThreadIOStrategy
-
- All Implemented Interfaces:
IOStrategy,WorkerThreadPoolConfigProducer
public final class SameThreadIOStrategy extends AbstractIOStrategy
IOStrategy, which executesProcessors in a current thread.- Author:
- Alexey Stashok
-
-
Field Summary
-
Fields inherited from class org.glassfish.grizzly.strategies.AbstractIOStrategy
ENABLE_INTEREST_LIFECYCLE_LISTENER
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ThreadPoolConfigcreateDefaultWorkerPoolConfig(Transport transport)booleanexecuteIoEvent(Connection connection, IOEvent ioEvent, boolean isIoEventEnabled)TheSelectorRunnerwill invoke this method to allow the strategy implementation to decide how theIOEventwill be handled.static SameThreadIOStrategygetInstance()ExecutorgetThreadPoolFor(Connection connection, IOEvent ioEvent)Returns anExecutorto be used to run given ioEvent processing for the given connection.-
Methods inherited from class org.glassfish.grizzly.strategies.AbstractIOStrategy
executeIoEvent, fireIOEvent, isReadWrite
-
-
-
-
Method Detail
-
getInstance
public static SameThreadIOStrategy getInstance()
-
executeIoEvent
public boolean executeIoEvent(Connection connection, IOEvent ioEvent, boolean isIoEventEnabled) throws IOException
Description copied from interface:IOStrategyTheSelectorRunnerwill invoke this method to allow the strategy implementation to decide how theIOEventwill be handled.- Parameters:
connection- theConnectionupon which the providedIOEventoccurred.ioEvent- theIOEventthat triggered execution of thisstrategyisIoEventEnabled- true if IOEvent is still enabled on theConnection, or false if IOEvent was preliminary disabled or IOEvent is being simulated.- Returns:
- true, if this thread should keep processing IOEvents on the current and other Connections, or false if this thread should hand-off the farther IOEvent processing on any Connections, which means IOStrategy is becoming responsible for continuing IOEvent processing (possibly starting new thread, which will handle IOEvents).
- Throws:
IOException- if an error occurs processing theIOEvent.
-
getThreadPoolFor
public Executor getThreadPoolFor(Connection connection, IOEvent ioEvent)
Description copied from interface:IOStrategyReturns anExecutorto be used to run given ioEvent processing for the given connection. A null value will be returned if the ioEvent should be executed in the kernel thread.- Specified by:
getThreadPoolForin interfaceIOStrategy- Overrides:
getThreadPoolForin classAbstractIOStrategy- Parameters:
connection-ConnectionioEvent- the event to get the Executor for- Returns:
- an
Executorto be used to run given ioEvent processing for the given connection
-
createDefaultWorkerPoolConfig
public ThreadPoolConfig createDefaultWorkerPoolConfig(Transport transport)
- Specified by:
createDefaultWorkerPoolConfigin interfaceWorkerThreadPoolConfigProducer- Overrides:
createDefaultWorkerPoolConfigin classAbstractIOStrategy
-
-