Class ExpandableBuffer
- java.lang.Object
-
- org.apache.hc.core5.http.impl.nio.ExpandableBuffer
-
- Direct Known Subclasses:
AbstractSharedBuffer
,BufferedData
,SessionInputBufferImpl
,SessionOutputBufferImpl
@Internal public class ExpandableBuffer extends java.lang.Object
A buffer that expand its capacity on demand. Internally, this class is backed by an instance ofByteBuffer
.This class is not thread safe.
- Since:
- 4.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ExpandableBuffer.Mode
-
Field Summary
Fields Modifier and Type Field Description private java.nio.ByteBuffer
buffer
private ExpandableBuffer.Mode
mode
-
Constructor Summary
Constructors Modifier Constructor Description protected
ExpandableBuffer(int bufferSize)
Allocates buffer of the given size using the given allocator.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.nio.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
setInputMode()
Sets the mode to input.protected void
setOutputMode()
Sets the mode to output.java.lang.String
toString()
-
-
-
Field Detail
-
mode
private ExpandableBuffer.Mode mode
-
buffer
private java.nio.ByteBuffer buffer
-
-
Method Detail
-
mode
protected ExpandableBuffer.Mode 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
protected java.nio.ByteBuffer 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
protected void expand() throws java.nio.BufferOverflowException
Expands buffer's capacity.- Throws:
java.nio.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
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-