Class ExpandableBuffer
java.lang.Object
org.apache.hc.core5.http.impl.nio.ExpandableBuffer
- Direct Known Subclasses:
AbstractSharedBuffer
,BufferedData
,SessionInputBufferImpl
,SessionOutputBufferImpl
A buffer that expand its capacity on demand. Internally, this class is backed
by an instance of
ByteBuffer
.
This class is not thread safe.
- Since:
- 4.0
-
Nested Class Summary
Nested Classes -
Field Summary
Fields -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
ExpandableBuffer
(int bufferSize) Allocates buffer of the given size using the given allocator. -
Method Summary
Modifier and TypeMethodDescriptionprotected ByteBuffer
buffer()
protected int
capacity()
Returns available capacity of this buffer.protected void
clear()
Clears buffer.protected void
ensureAdjustedCapacity
(int requiredCapacity) Ensures the buffer can accommodate at least the required capacity adjusted to multiples of 1024.protected void
ensureCapacity
(int requiredCapacity) Ensures the buffer can accommodate the exact required capacity.protected void
expand()
Expands buffer's capacity.private void
expandCapacity
(int capacity) protected boolean
hasData()
Determines if the buffer contains data.protected int
length()
Returns the length of this buffer.protected ExpandableBuffer.Mode
mode()
Returns the current mode:protected void
Sets the mode to input.protected void
Sets the mode to output.toString()
-
Field Details
-
mode
-
buffer
-
-
Constructor Details
-
ExpandableBuffer
protected ExpandableBuffer(int bufferSize) Allocates buffer of the given size using the given allocator.Sets the mode to input.
- Parameters:
bufferSize
- the buffer size.
-
-
Method Details
-
mode
Returns the current mode:ExpandableBuffer.Mode.INPUT
: the buffer is in the input mode.ExpandableBuffer.Mode.OUTPUT
: the buffer is in the output mode.- Returns:
- current input/output mode.
-
buffer
-
setOutputMode
protected void setOutputMode()Sets the mode to output. The buffer can now be read from. -
setInputMode
protected void setInputMode()Sets the mode to input. The buffer can now be written into. -
expandCapacity
private void expandCapacity(int capacity) -
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 exact required capacity.- Parameters:
requiredCapacity
- the required capacity.
-
ensureAdjustedCapacity
protected void ensureAdjustedCapacity(int requiredCapacity) Ensures the buffer can accommodate at least the required capacity adjusted to multiples of 1024.- Parameters:
requiredCapacity
- the required capacity.
-
hasData
protected boolean hasData()Determines if the buffer contains data.Sets the mode to output.
- Returns:
true
if there is data in the buffer,false
otherwise.
-
length
protected int length()Returns the length of this buffer.Sets the mode to output.
- Returns:
- buffer length.
-
capacity
protected int capacity()Returns available capacity of this buffer.- Returns:
- buffer length.
-
clear
protected void clear()Clears buffer.Sets the mode to input.
-
toString
-