Construct a buffer.
Construct a buffer.
Clear/flush are the same
Access the source.
Access buffer capacity.
Compress buffer space.
Drain buffer content to the specific conduit.
Fill the provided buffer
Clear buffer content.
Set the input stream.
Access buffer limit.
Load the bits from a stream, up to an indicated length, and return them all in an array.
Iterator support.
Place more data from the source stream into this buffer, and returns the number of bytes added.
Access buffer read position.
Transfer content into the provided dst.
Available content.
Read directly from this buffer.
Reserve the specified space within the buffer, compressing existing content as necessary to make room.
Move the current read location.
Move the current read location.
Retrieve the valid content.
Access buffer content.
Write into this buffer.
Cast to a target type without invoking the wrath of the runtime checks for misalignment. Instead, we truncate the array length.
Attempt to share an upstream Buffer, and create an instance where there's not one available.
Return the hosting conduit.
Read from conduit into a target array. The provided dst will be populated with content from the conduit.
Load the bits from a stream, and return them all in an array. The dst array can be provided as an option, which will be expanded as necessary to consume the input.
Clear any buffered content.
Seek on this stream. Target conduits that don't support seeking will throw an IOException.
Return the upstream host of this filter.
Close the input.
Buffers the flow of data from a upstream input
A downstream neighbour can locate and use this buffer instead of creating another instance of their own.
Note: upstream is closer to the source, and downstream is further away