Package org.apache.hc.core5.reactor
Class AbstractSingleCoreIOReactor
- java.lang.Object
-
- org.apache.hc.core5.reactor.AbstractSingleCoreIOReactor
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,ModalCloseable
,IOReactor
- Direct Known Subclasses:
SingleCoreIOReactor
,SingleCoreListeningIOReactor
abstract class AbstractSingleCoreIOReactor extends java.lang.Object implements IOReactor
-
-
Field Summary
Fields Modifier and Type Field Description private Callback<java.lang.Exception>
exceptionCallback
(package private) java.nio.channels.Selector
selector
private java.lang.Object
shutdownMutex
private java.util.concurrent.atomic.AtomicReference<IOReactorStatus>
status
private java.util.concurrent.atomic.AtomicBoolean
terminated
-
Constructor Summary
Constructors Constructor Description AbstractSingleCoreIOReactor(Callback<java.lang.Exception> exceptionCallback)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
awaitShutdown(TimeValue waitTime)
Blocks for the given period of time in milliseconds awaiting the completion of the reactor shutdown.void
close()
void
close(CloseMode closeMode)
Shuts down the I/O reactor either gracefully or immediately.void
close(CloseMode closeMode, Timeout timeout)
Shuts down the I/O reactor either gracefully or immediately.(package private) abstract void
doExecute()
(package private) abstract void
doTerminate()
void
execute()
IOReactorStatus
getStatus()
Returns the current status of the reactor.void
initiateShutdown()
Initiates shutdown of the reactor without blocking.(package private) void
logException(java.lang.Exception ex)
java.lang.String
toString()
-
-
-
Field Detail
-
exceptionCallback
private final Callback<java.lang.Exception> exceptionCallback
-
status
private final java.util.concurrent.atomic.AtomicReference<IOReactorStatus> status
-
terminated
private final java.util.concurrent.atomic.AtomicBoolean terminated
-
shutdownMutex
private final java.lang.Object shutdownMutex
-
selector
final java.nio.channels.Selector selector
-
-
Constructor Detail
-
AbstractSingleCoreIOReactor
AbstractSingleCoreIOReactor(Callback<java.lang.Exception> exceptionCallback)
-
-
Method Detail
-
getStatus
public final IOReactorStatus getStatus()
Description copied from interface:IOReactor
Returns the current status of the reactor.
-
logException
void logException(java.lang.Exception ex)
-
doExecute
abstract void doExecute() throws java.io.IOException
- Throws:
java.io.IOException
-
doTerminate
abstract void doTerminate() throws java.io.IOException
- Throws:
java.io.IOException
-
execute
public void execute()
-
awaitShutdown
public final void awaitShutdown(TimeValue waitTime) throws java.lang.InterruptedException
Description copied from interface:IOReactor
Blocks for the given period of time in milliseconds awaiting the completion of the reactor shutdown.- Specified by:
awaitShutdown
in interfaceIOReactor
- Parameters:
waitTime
- wait time.- Throws:
java.lang.InterruptedException
-
initiateShutdown
public final void initiateShutdown()
Description copied from interface:IOReactor
Initiates 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- Specified by:
initiateShutdown
in interfaceIOReactor
-
close
public final void close(CloseMode closeMode)
Description copied from interface:IOReactor
Shuts 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.- Specified by:
close
in interfaceIOReactor
- Specified by:
close
in interfaceModalCloseable
- Parameters:
closeMode
- How to close the receiver.
-
close
public void close(CloseMode closeMode, Timeout timeout)
Shuts 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 IO reactor.timeout
- How long to wait for the IO reactor to close gracefully.- Since:
- 5.2
-
close
public final void close()
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-