public abstract class AbstractCloseable extends IoBaseCloseable
Modifier and Type | Class and Description |
---|---|
static class |
AbstractCloseable.State |
Modifier and Type | Field and Description |
---|---|
protected CloseFuture |
closeFuture
A future that will be set 'closed' when the object is actually closed
|
protected Object |
futureLock
Lock object for
Future -s based on this closeable instance |
protected AtomicReference<AbstractCloseable.State> |
state
State of this object
|
log
Modifier | Constructor and Description |
---|---|
protected |
AbstractCloseable() |
protected |
AbstractCloseable(String discriminator) |
Modifier and Type | Method and Description |
---|---|
void |
addCloseFutureListener(SshFutureListener<CloseFuture> listener)
Pre-register a listener to be informed when resource is closed.
|
protected Builder |
builder() |
CloseFuture |
close(boolean immediately)
Close this resource asynchronously and return a future.
|
protected CloseFuture |
doCloseGracefully() |
protected void |
doCloseImmediately()
doCloseImmediately is called once and only once with state == Immediate
|
Object |
getFutureLock() |
boolean |
isClosed()
Returns
true if this object has been closed. |
boolean |
isClosing()
Returns
true if the Closeable.close(boolean) method has been called. |
protected void |
preClose()
preClose is guaranteed to be called before doCloseGracefully or doCloseImmediately.
|
void |
removeCloseFutureListener(SshFutureListener<CloseFuture> listener)
Remove a pre-registered close event listener
|
debug, debug, debug, debug, debug, error, error, error, error, error, getSimplifiedLogger, info, info, warn, warn, warn, warn, warn, warn, warn, warn
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
close, close, getMaxCloseWaitTime, isOpen
protected final Object futureLock
Future
-s based on this closeable instanceprotected final AtomicReference<AbstractCloseable.State> state
protected final CloseFuture closeFuture
protected AbstractCloseable()
protected AbstractCloseable(String discriminator)
public Object getFutureLock()
public void addCloseFutureListener(SshFutureListener<CloseFuture> listener)
Closeable
listener
- The notification SshFutureListener
- never null
public void removeCloseFutureListener(SshFutureListener<CloseFuture> listener)
Closeable
listener
- The register SshFutureListener
- never null
. Ignored if not registered or
resource already closedpublic final CloseFuture close(boolean immediately)
Closeable
immediately
- true
if the resource should be shut down abruptly, false
for a
graceful closeCloseFuture
representing the close requestpublic final boolean isClosed()
Closeable
true
if this object has been closed.true
if closingpublic final boolean isClosing()
Closeable
true
if the Closeable.close(boolean)
method has been called. Note that this method will
return true
even if this Closeable.isClosed()
returns true
.true
if closingprotected void preClose()
protected CloseFuture doCloseGracefully()
protected void doCloseImmediately()
doCloseImmediately is called once and only once with state == Immediate
Overriding methods should always call the base implementation. It may be called concurrently while preClose() or doCloseGracefully is executing
protected Builder builder()
Copyright © 2008–2024 The Apache Software Foundation. All rights reserved.