- java.lang.Object
-
- io.helidon.webserver.ByteBufDataChunk
-
- All Implemented Interfaces:
DataChunk,Iterable<ByteBuffer>
public class ByteBufDataChunk extends Object implements DataChunk
A special DataChunk implementation based on Netty's buffers. This is used by our Jersey SPI implementation to take advantage of Netty's buffer pooling.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]bytes()static ByteBufDataChunkcreate(boolean flush, boolean readOnly, io.netty.buffer.ByteBuf... byteBufs)Creates an instance given an array ofByteBuf's.static ByteBufDataChunkcreate(boolean flush, boolean readOnly, Runnable releaseCallback, io.netty.buffer.ByteBuf... byteBufs)Creates an instance given an array ofByteBuf's.ByteBuffer[]data()This method is needed for testing some of our examples.<T> T[]data(Class<T> clazz)DataChunkduplicate()booleanflush()<T> booleanisBackedBy(Class<T> clazz)booleanisReadOnly()booleanisReleased()Iterator<ByteBuffer>iterator()voidrelease()intremaining()Optional<CompletableFuture<DataChunk>>writeFuture()voidwriteFuture(CompletableFuture<DataChunk> writeFuture)-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.helidon.common.http.DataChunk
id, isFlushChunk
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-
-
-
Method Detail
-
create
public static ByteBufDataChunk create(boolean flush, boolean readOnly, io.netty.buffer.ByteBuf... byteBufs)
Creates an instance given an array ofByteBuf's.- Parameters:
flush- a signal that this chunk should be written and flushed from any cache if possiblereadOnly- marks this buffer as read onlybyteBufs- the data for this chunk. Should not be reused untilreleaseCallbackis used- Returns:
- new chunk
-
create
public static ByteBufDataChunk create(boolean flush, boolean readOnly, Runnable releaseCallback, io.netty.buffer.ByteBuf... byteBufs)
Creates an instance given an array ofByteBuf's.- Parameters:
flush- a signal that this chunk should be written and flushed from any cache if possiblereadOnly- marks this buffer as read onlyreleaseCallback- a callback which is called when this chunk is completely processedbyteBufs- the data for this chunk. Should not be reused untilreleaseCallbackis used- Returns:
- new chunk
-
isBackedBy
public <T> boolean isBackedBy(Class<T> clazz)
- Specified by:
isBackedByin interfaceDataChunk
-
isReleased
public boolean isReleased()
- Specified by:
isReleasedin interfaceDataChunk
-
isReadOnly
public boolean isReadOnly()
- Specified by:
isReadOnlyin interfaceDataChunk
-
writeFuture
public void writeFuture(CompletableFuture<DataChunk> writeFuture)
- Specified by:
writeFuturein interfaceDataChunk
-
writeFuture
public Optional<CompletableFuture<DataChunk>> writeFuture()
- Specified by:
writeFuturein interfaceDataChunk
-
data
public ByteBuffer[] data()
This method is needed for testing some of our examples. It bypasses the optimization for which this class was created.
-
iterator
public Iterator<ByteBuffer> iterator()
- Specified by:
iteratorin interfaceDataChunk- Specified by:
iteratorin interfaceIterable<ByteBuffer>
-
-