Package org.apache.http.nio.util
Class ExpandableBuffer
java.lang.Object
org.apache.http.nio.util.ExpandableBuffer
- All Implemented Interfaces:
org.apache.http.io.BufferInfo,BufferInfo
- Direct Known Subclasses:
SessionInputBufferImpl,SessionOutputBufferImpl,SharedInputBuffer,SharedOutputBuffer,SimpleInputBuffer,SimpleOutputBuffer
A buffer that expand its capacity on demand using
ByteBufferAllocator
interface. Internally, this class is backed by an instance of
ByteBuffer.
This class is not thread safe.
- Since:
- 4.0
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionExpandableBuffer(int bufferSize, ByteBufferAllocator allocator) Allocates buffer of the given size using the given allocator. -
Method Summary
Modifier and TypeMethodDescriptionintReturns available capacity of this buffer.intcapacity()Returns the total capacity of this buffer.protected voidclear()Clears buffer.protected voidensureCapacity(int requiredCapacity) Ensures the buffer can accommodate the required capacity.protected voidexpand()Expands buffer's capacity.protected intgetMode()Returns the current mode:booleanhasData()Determines if the buffer contains data.intlength()Returns the length of this buffer.protected voidSets input mode.protected voidSets output mode.toString()
-
Field Details
-
INPUT_MODE
public static final int INPUT_MODE- See Also:
-
OUTPUT_MODE
public static final int OUTPUT_MODE- See Also:
-
buffer
-
-
Constructor Details
-
ExpandableBuffer
Allocates buffer of the given size using the given allocator.- Parameters:
bufferSize- the buffer size.allocator- allocator to be used to allocateByteBuffers.
-
-
Method Details
-
getMode
protected int getMode()Returns the current mode:INPUT_MODE: the buffer is in the input mode.OUTPUT_MODE: the buffer is in the output mode.- Returns:
- current input/output mode.
-
setOutputMode
protected void setOutputMode()Sets output mode. The buffer can now be read from. -
setInputMode
protected void setInputMode()Sets input mode. The buffer can now be written into. -
expand
Expands buffer's capacity.- Throws:
BufferOverflowException- in case we get over the maximum allowed value
-
ensureCapacity
protected void ensureCapacity(int requiredCapacity) Ensures the buffer can accommodate the required capacity. -
capacity
public int capacity()Returns the total capacity of this buffer.- Specified by:
capacityin interfaceorg.apache.http.io.BufferInfo- Specified by:
capacityin interfaceBufferInfo- Returns:
- total capacity.
-
hasData
public boolean hasData()Determines if the buffer contains data.- Returns:
trueif there is data in the buffer,falseotherwise.
-
length
public int length()Returns the length of this buffer.- Specified by:
lengthin interfaceorg.apache.http.io.BufferInfo- Specified by:
lengthin interfaceBufferInfo- Returns:
- buffer length.
-
available
public int available()Returns available capacity of this buffer.- Specified by:
availablein interfaceorg.apache.http.io.BufferInfo- Specified by:
availablein interfaceBufferInfo- Returns:
- buffer length.
-
clear
protected void clear()Clears buffer. -
toString
-