Class SharedInputBuffer
- 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.SharedInputBuffer
-
- All Implemented Interfaces:
ContentInputBuffer
@Contract(threading=SAFE) public final class SharedInputBuffer extends AbstractSharedBuffer implements ContentInputBuffer
- 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 CapacityChannel
capacityChannel
private java.util.concurrent.atomic.AtomicInteger
capacityIncrement
private int
initialBufferSize
-
Fields inherited from class org.apache.hc.core5.http.nio.support.classic.AbstractSharedBuffer
aborted, condition, endStream, lock
-
-
Constructor Summary
Constructors Constructor Description SharedInputBuffer(int bufferSize)
SharedInputBuffer(java.util.concurrent.locks.ReentrantLock lock, int initialBufferSize)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
awaitInput()
int
fill(java.nio.ByteBuffer src)
private void
incrementCapacity()
void
markEndStream()
int
read()
Reads one byte from this buffer.int
read(byte[] b, int off, int len)
Reads up tolen
bytes of data from this buffer into an array of bytes.void
updateCapacity(CapacityChannel capacityChannel)
-
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.ContentInputBuffer
length, reset
-
-
-
-
Field Detail
-
initialBufferSize
private final int initialBufferSize
-
capacityIncrement
private final java.util.concurrent.atomic.AtomicInteger capacityIncrement
-
capacityChannel
private volatile CapacityChannel capacityChannel
-
-
Method Detail
-
fill
public int fill(java.nio.ByteBuffer src)
-
incrementCapacity
private void incrementCapacity() throws java.io.IOException
- Throws:
java.io.IOException
-
updateCapacity
public void updateCapacity(CapacityChannel capacityChannel) throws java.io.IOException
- Throws:
java.io.IOException
-
awaitInput
private void awaitInput() throws java.io.InterruptedIOException
- Throws:
java.io.InterruptedIOException
-
read
public int read() throws java.io.IOException
Description copied from interface:ContentInputBuffer
Reads one byte from this buffer. If the buffer is empty this method can throw a runtime exception. The exact type of runtime exception thrown by this method depends on implementation. This method returns-1
if the end of content stream has been reached.- Specified by:
read
in interfaceContentInputBuffer
- Returns:
- one byte
- Throws:
java.io.IOException
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException
Description copied from interface:ContentInputBuffer
Reads up tolen
bytes of data from this buffer into an array of bytes. The exact number of bytes read depends how many bytes are stored in the 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. This method returns-1
if the end of content stream has been reached.- Specified by:
read
in interfaceContentInputBuffer
- Parameters:
b
- the buffer into which the data is read.off
- the start offset in arrayb
at which the data is written.len
- the maximum number of bytes to read.- Returns:
- the total number of bytes read into the buffer, or
-1
if there is no more data because the end of the stream has been reached. - Throws:
java.io.IOException
- if an I/O error occurs.
-
markEndStream
public void markEndStream()
-
-