Package org.apache.hc.core5.reactor
Class DefaultConnectingIOReactor
- java.lang.Object
-
- org.apache.hc.core5.reactor.AbstractIOReactorBase
-
- org.apache.hc.core5.reactor.DefaultConnectingIOReactor
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,ModalCloseable,ConnectionInitiator,IOReactor,IOReactorService
public class DefaultConnectingIOReactor extends AbstractIOReactorBase
Multi-core I/O reactor that can act asConnectionInitiatorInternally this I/O reactor distributes newly created I/O session equally across multiple I/O worker threads for a more optimal resource utilization and a better I/O performance. Usually it is recommended to have one worker I/O reactor per physical CPU core.- Since:
- 4.0
-
-
Field Summary
Fields Modifier and Type Field Description private MultiCoreIOReactorioReactorprivate static java.util.concurrent.ThreadFactoryTHREAD_FACTORYprivate intworkerCountprivate SingleCoreIOReactor[]workersprivate IOWorkers.SelectorworkerSelector
-
Constructor Summary
Constructors Constructor Description DefaultConnectingIOReactor(IOEventHandlerFactory eventHandlerFactory)Creates an instance of DefaultConnectingIOReactor with default configuration.DefaultConnectingIOReactor(IOEventHandlerFactory eventHandlerFactory, IOReactorConfig ioReactorConfig, java.util.concurrent.ThreadFactory threadFactory, Decorator<IOSession> ioSessionDecorator, Callback<java.lang.Exception> exceptionCallback, IOSessionListener sessionListener, Callback<IOSession> sessionShutdownCallback)DefaultConnectingIOReactor(IOEventHandlerFactory eventHandlerFactory, IOReactorConfig config, Callback<IOSession> sessionShutdownCallback)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidawaitShutdown(TimeValue waitTime)Blocks for the given period of time in milliseconds awaiting the completion of the reactor shutdown.voidclose()voidclose(CloseMode closeMode)Shuts down the I/O reactor either gracefully or immediately.IOReactorStatusgetStatus()Returns the current status of the reactor.(package private) IOWorkers.SelectorgetWorkerSelector()voidinitiateShutdown()Initiates shutdown of the reactor without blocking.voidstart()Starts I/O reactor.-
Methods inherited from class org.apache.hc.core5.reactor.AbstractIOReactorBase
connect
-
-
-
-
Field Detail
-
workerCount
private final int workerCount
-
workers
private final SingleCoreIOReactor[] workers
-
ioReactor
private final MultiCoreIOReactor ioReactor
-
workerSelector
private final IOWorkers.Selector workerSelector
-
THREAD_FACTORY
private static final java.util.concurrent.ThreadFactory THREAD_FACTORY
-
-
Constructor Detail
-
DefaultConnectingIOReactor
public DefaultConnectingIOReactor(IOEventHandlerFactory eventHandlerFactory, IOReactorConfig ioReactorConfig, java.util.concurrent.ThreadFactory threadFactory, Decorator<IOSession> ioSessionDecorator, Callback<java.lang.Exception> exceptionCallback, IOSessionListener sessionListener, Callback<IOSession> sessionShutdownCallback)
-
DefaultConnectingIOReactor
public DefaultConnectingIOReactor(IOEventHandlerFactory eventHandlerFactory, IOReactorConfig config, Callback<IOSession> sessionShutdownCallback)
-
DefaultConnectingIOReactor
public DefaultConnectingIOReactor(IOEventHandlerFactory eventHandlerFactory)
Creates an instance of DefaultConnectingIOReactor with default configuration.- Since:
- 5.0
-
-
Method Detail
-
start
public void start()
Description copied from interface:IOReactorServiceStarts I/O reactor.
-
getStatus
public IOReactorStatus getStatus()
Description copied from interface:IOReactorReturns the current status of the reactor.- Returns:
- reactor status.
-
getWorkerSelector
IOWorkers.Selector getWorkerSelector()
- Specified by:
getWorkerSelectorin classAbstractIOReactorBase
-
initiateShutdown
public void initiateShutdown()
Description copied from interface:IOReactorInitiates shutdown of the reactor without blocking. The reactor is expected to terminate all active connections, to shut down itself and to release system resources it currently holds
-
awaitShutdown
public void awaitShutdown(TimeValue waitTime) throws java.lang.InterruptedException
Description copied from interface:IOReactorBlocks for the given period of time in milliseconds awaiting the completion of the reactor shutdown.- Parameters:
waitTime- wait time.- Throws:
java.lang.InterruptedException
-
close
public void close(CloseMode closeMode)
Description copied from interface:IOReactorShuts down the I/O reactor either gracefully or immediately. During graceful shutdown individual I/O sessions should be informed about imminent termination and be given a grace period to complete the ongoing I/O sessions. During immediate shutdown all ongoing I/O sessions get aborted immediately.- Parameters:
closeMode- How to close the receiver.
-
close
public void close() throws java.io.IOException- Throws:
java.io.IOException
-
-