Interface StreamWindow
- All Superinterfaces:
AutoCloseable
,Closeable
- All Known Implementing Classes:
CopyingStreamWindow
A sliding window over the contents of a byte stream.
Implementations may use different buffering strategies for remembering recent stream data.
-
Method Summary
Modifier and TypeMethodDescriptionvoid
add
(com.couchbase.client.core.deps.io.netty.buffer.ByteBuf buffer) Appends the given buffer to the end of the stream.void
close()
Releases all buffers owned by the window.byte[]
getBytes
(long startOffset, long endOffset) Returns a region of the stream as a byte array.void
releaseBefore
(long offset) Forgets any bytes with stream offsets lower then the given offset.
-
Method Details
-
add
void add(com.couchbase.client.core.deps.io.netty.buffer.ByteBuf buffer) Appends the given buffer to the end of the stream. The window takes ownership of the buffer (and may even release it immediately). -
releaseBefore
void releaseBefore(long offset) Forgets any bytes with stream offsets lower then the given offset.- Parameters:
offset
- offset relative to the start of the stream.- Throws:
IndexOutOfBoundsException
- if the given offset is positive and outside the window
-
getBytes
byte[] getBytes(long startOffset, long endOffset) Returns a region of the stream as a byte array.- Parameters:
startOffset
- region start offset relative to beginning of stream.endOffset
- region end offset relative to beginning of stream.- Throws:
IndexOutOfBoundsException
- if the window does not contain all of the requested region
-
close
void close()Releases all buffers owned by the window.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
-