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 |
lock
Lock object for this session state
|
protected AtomicReference<AbstractCloseable.State> |
state
State of this object
|
logCLOSE_WAIT_TIMEOUT, DEFAULT_CLOSE_WAIT_TIMEOUT| 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
Overriding methods should always call the base implementation.
|
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
|
getSimplifiedLoggerclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitclose, close, getMaxCloseWaitTime, isOpenprotected final Object lock
protected final AtomicReference<AbstractCloseable.State> state
protected final CloseFuture closeFuture
protected AbstractCloseable()
protected AbstractCloseable(String discriminator)
public void addCloseFutureListener(SshFutureListener<CloseFuture> listener)
Closeablelistener - The notification SshFutureListener - never nullpublic void removeCloseFutureListener(SshFutureListener<CloseFuture> listener)
Closeablelistener - The register SshFutureListener - never null.
Ignored if not registered or resource already closedpublic CloseFuture close(boolean immediately)
Closeableimmediately - true if the resource should be shut down abruptly,
false for a graceful closeCloseFuture representing the close requestpublic boolean isClosed()
Closeabletrue if this object has been closed.true if closingpublic boolean isClosing()
Closeabletrue 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–2017 The Apache Software Foundation. All rights reserved.