Package org.apache.sshd.common.channel
Class BufferedIoOutputStream
java.lang.Object
org.apache.sshd.common.util.logging.AbstractLoggingBean
org.apache.sshd.common.util.closeable.IoBaseCloseable
org.apache.sshd.common.util.closeable.AbstractCloseable
org.apache.sshd.common.util.closeable.AbstractInnerCloseable
org.apache.sshd.common.channel.BufferedIoOutputStream
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Channel
,ChannelIdentifier
,Closeable
,IoOutputStream
public class BufferedIoOutputStream
extends AbstractInnerCloseable
implements IoOutputStream, ChannelIdentifier
An
IoOutputStream
capable of queuing write requests.-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.sshd.common.util.closeable.AbstractCloseable
AbstractCloseable.State
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final long
protected final AtomicReference
<IoWriteFutureImpl> protected final Object
protected final int
protected final Duration
protected final IoOutputStream
protected final AtomicInteger
protected final AtomicReference
<SshChannelBufferedOutputException> protected final Queue
<IoWriteFutureImpl> protected final AtomicLong
Fields inherited from class org.apache.sshd.common.util.closeable.AbstractCloseable
closeFuture, futureLock, state
Fields inherited from class org.apache.sshd.common.util.logging.AbstractLoggingBean
log
-
Constructor Summary
ConstructorsConstructorDescriptionBufferedIoOutputStream
(Object id, long channelId, IoOutputStream out, int maxPendingBytesCount, Duration maxWaitForPendingWrites) BufferedIoOutputStream
(Object id, long channelId, IoOutputStream out, PropertyResolver resolver) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
finishWrite
(IoWriteFutureImpl future, int bufferSize) long
getId()
protected Closeable
private IoWriteFutureImpl
protected void
toString()
protected void
waitForAvailableWriteSpace
(int requiredSize) writeBuffer
(Buffer buffer) Write the given buffer.Methods inherited from class org.apache.sshd.common.util.closeable.AbstractInnerCloseable
doCloseGracefully, doCloseImmediately
Methods inherited from class org.apache.sshd.common.util.closeable.AbstractCloseable
addCloseFutureListener, builder, close, getFutureLock, isClosed, isClosing, preClose, removeCloseFutureListener
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
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.sshd.common.Closeable
addCloseFutureListener, close, close, isClosed, isClosing, isOpen, removeCloseFutureListener
-
Field Details
-
id
-
channelId
protected final long channelId -
maxPendingBytesCount
protected final int maxPendingBytesCount -
maxWaitForPendingWrites
-
out
-
pendingBytesCount
-
writtenBytesCount
-
writes
-
currentWrite
-
pendingException
-
-
Constructor Details
-
BufferedIoOutputStream
public BufferedIoOutputStream(Object id, long channelId, IoOutputStream out, PropertyResolver resolver) -
BufferedIoOutputStream
public BufferedIoOutputStream(Object id, long channelId, IoOutputStream out, int maxPendingBytesCount, Duration maxWaitForPendingWrites)
-
-
Method Details
-
getChannelId
public long getChannelId()- Specified by:
getChannelId
in interfaceChannelIdentifier
- Returns:
- Local channel UINT32 identifier
-
getId
-
writeBuffer
Description copied from interface:IoOutputStream
Write the given buffer.- Specified by:
writeBuffer
in interfaceIoOutputStream
- Parameters:
buffer
- the data to write. NOTE: the buffer must not be touched until the returned write future is completed.- Returns:
- An
IoWriteFuture
that can be used to check when the data has actually been written. - Throws:
IOException
- if an error occurred when writing the data
-
waitForAvailableWriteSpace
- Throws:
IOException
-
getWriteRequest
-
startWriting
- Throws:
IOException
-
finishWrite
-
getInnerCloseable
- Specified by:
getInnerCloseable
in classAbstractInnerCloseable
-
toString
-