Class SharedOutputBuffer
- java.lang.Object
-
- org.apache.hc.core5.http.impl.nio.ExpandableBuffer
-
- org.apache.hc.core5.http.nio.support.classic.AbstractSharedBuffer
-
- org.apache.hc.core5.http.nio.support.classic.SharedOutputBuffer
-
- All Implemented Interfaces:
ContentOutputBuffer
@Contract(threading=SAFE) public final class SharedOutputBuffer extends AbstractSharedBuffer implements ContentOutputBuffer
- Since:
- 5.0
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.hc.core5.http.impl.nio.ExpandableBuffer
ExpandableBuffer.Mode
-
-
Field Summary
Fields Modifier and Type Field Description private DataStreamChannel
dataStreamChannel
private boolean
endStreamPropagated
private boolean
hasCapacity
-
Fields inherited from class org.apache.hc.core5.http.nio.support.classic.AbstractSharedBuffer
aborted, condition, endStream, lock
-
-
Constructor Summary
Constructors Constructor Description SharedOutputBuffer(int bufferSize)
SharedOutputBuffer(java.util.concurrent.locks.ReentrantLock lock, int initialBufferSize)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
ensureNotAborted()
void
flush(DataStreamChannel channel)
private void
propagateEndStream()
private void
waitFlush()
void
write(byte[] b, int off, int len)
Writeslen
bytes from the specified byte array starting at offsetoff
to this buffer.void
write(int b)
Writes the specified byte to this buffer.void
writeCompleted()
Indicates the content has been fully written.-
Methods inherited from class org.apache.hc.core5.http.nio.support.classic.AbstractSharedBuffer
abort, capacity, hasData, isEndStream, length, reset
-
Methods inherited from class org.apache.hc.core5.http.impl.nio.ExpandableBuffer
buffer, clear, ensureAdjustedCapacity, ensureCapacity, expand, mode, setInputMode, setOutputMode, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.hc.core5.http.nio.support.classic.ContentOutputBuffer
length, reset
-
-
-
-
Field Detail
-
dataStreamChannel
private volatile DataStreamChannel dataStreamChannel
-
hasCapacity
private volatile boolean hasCapacity
-
endStreamPropagated
private volatile boolean endStreamPropagated
-
-
Method Detail
-
flush
public void flush(DataStreamChannel channel) throws java.io.IOException
- Throws:
java.io.IOException
-
ensureNotAborted
private void ensureNotAborted() throws java.io.InterruptedIOException
- Throws:
java.io.InterruptedIOException
-
write
public void write(byte[] b, int off, int len) throws java.io.IOException
Description copied from interface:ContentOutputBuffer
Writeslen
bytes from the specified byte array starting at offsetoff
to this buffer.If
off
is negative, orlen
is negative, oroff+len
is greater than the length of the arrayb
, this method can throw a runtime exception. The exact type of runtime exception thrown by this method depends on implementation.- Specified by:
write
in interfaceContentOutputBuffer
- Parameters:
b
- the data.off
- the start offset in the data.len
- the number of bytes to write.- Throws:
java.io.IOException
- if an I/O error occurs.
-
write
public void write(int b) throws java.io.IOException
Description copied from interface:ContentOutputBuffer
Writes the specified byte to this buffer.- Specified by:
write
in interfaceContentOutputBuffer
- Parameters:
b
- thebyte
.- Throws:
java.io.IOException
- if an I/O error occurs.
-
writeCompleted
public void writeCompleted() throws java.io.IOException
Description copied from interface:ContentOutputBuffer
Indicates the content has been fully written.- Specified by:
writeCompleted
in interfaceContentOutputBuffer
- Throws:
java.io.IOException
- if an I/O error occurs.
-
waitFlush
private void waitFlush() throws java.io.InterruptedIOException
- Throws:
java.io.InterruptedIOException
-
propagateEndStream
private void propagateEndStream() throws java.io.IOException
- Throws:
java.io.IOException
-
-