Package org.apache.sshd.common.channel
Class AbstractChannel.GracefulChannelCloseable
- java.lang.Object
-
- org.apache.sshd.common.util.logging.AbstractLoggingBean
-
- org.apache.sshd.common.util.closeable.IoBaseCloseable
-
- org.apache.sshd.common.channel.AbstractChannel.GracefulChannelCloseable
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,java.nio.channels.Channel
,Closeable
- Enclosing class:
- AbstractChannel
public class AbstractChannel.GracefulChannelCloseable extends IoBaseCloseable
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.concurrent.atomic.AtomicBoolean
closing
-
Fields inherited from class org.apache.sshd.common.util.logging.AbstractLoggingBean
log
-
-
Constructor Summary
Constructors Constructor Description GracefulChannelCloseable()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addCloseFutureListener(SshFutureListener<CloseFuture> listener)
Pre-register a listener to be informed when resource is closed.CloseFuture
close(boolean immediately)
Close this resource asynchronously and return a future.protected void
handleClosePacketWriteFailure(Channel channel, boolean immediately, java.lang.Throwable t)
protected void
handleClosePacketWritten(Channel channel, boolean immediately)
boolean
isClosed()
Returnstrue
if this object has been closed.boolean
isClosing()
Returnstrue
if theCloseable.close(boolean)
method has been called.void
removeCloseFutureListener(SshFutureListener<CloseFuture> listener)
Remove a pre-registered close event listenervoid
setClosing(boolean on)
java.lang.String
toString()
-
Methods inherited from class org.apache.sshd.common.util.logging.AbstractLoggingBean
debug, debug, debug, debug, debug, error, error, error, error, error, getSimplifiedLogger, info, info, warn, warn, warn, warn, warn, warn, warn, warn
-
-
-
-
Method Detail
-
addCloseFutureListener
public void addCloseFutureListener(SshFutureListener<CloseFuture> listener)
Description copied from interface:Closeable
Pre-register a listener to be informed when resource is closed. If resource is already closed, the listener will be invoked immediately and not registered for future notification- Parameters:
listener
- The notificationSshFutureListener
- nevernull
-
removeCloseFutureListener
public void removeCloseFutureListener(SshFutureListener<CloseFuture> listener)
Description copied from interface:Closeable
Remove a pre-registered close event listener- Parameters:
listener
- The registerSshFutureListener
- nevernull
. Ignored if not registered or resource already closed
-
isClosing
public boolean isClosing()
Description copied from interface:Closeable
Returnstrue
if theCloseable.close(boolean)
method has been called. Note that this method will returntrue
even if thisCloseable.isClosed()
returnstrue
.- Returns:
true
if closing
-
setClosing
public void setClosing(boolean on)
-
isClosed
public boolean isClosed()
Description copied from interface:Closeable
Returnstrue
if this object has been closed.- Returns:
true
if closing
-
close
public CloseFuture close(boolean immediately)
Description copied from interface:Closeable
Close this resource asynchronously and return a future. Resources support two closing modes: a graceful mode which will cleanly close the resource and an immediate mode which will close the resources abruptly.- Parameters:
immediately
-true
if the resource should be shut down abruptly,false
for a graceful close- Returns:
- a
CloseFuture
representing the close request
-
handleClosePacketWritten
protected void handleClosePacketWritten(Channel channel, boolean immediately)
-
handleClosePacketWriteFailure
protected void handleClosePacketWriteFailure(Channel channel, boolean immediately, java.lang.Throwable t)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-