Package io.micronaut.http.netty.body
Class StreamingNettyByteBody.SharedBuffer
java.lang.Object
io.micronaut.http.body.stream.BaseSharedBuffer<ByteBufConsumer,io.netty.buffer.ByteBuf>
io.micronaut.http.netty.body.StreamingNettyByteBody.SharedBuffer
- All Implemented Interfaces:
io.micronaut.http.body.stream.BufferConsumer,ByteBufConsumer
- Enclosing class:
- StreamingNettyByteBody
public static final class StreamingNettyByteBody.SharedBuffer
extends io.micronaut.http.body.stream.BaseSharedBuffer<ByteBufConsumer,io.netty.buffer.ByteBuf>
implements ByteBufConsumer
This class buffers input data and distributes it to multiple
StreamingNettyByteBody
instances.
Thread safety: The ByteBufConsumer methods must only be called from one
thread, the eventLoop thread. The other methods (subscribe, reserve) can be
called from any thread.
-
Nested Class Summary
Nested classes/interfaces inherited from class io.micronaut.http.body.stream.BaseSharedBuffer
io.micronaut.http.body.stream.BaseSharedBuffer.AsFlux<B extends Object>Nested classes/interfaces inherited from interface io.micronaut.http.body.stream.BufferConsumer
io.micronaut.http.body.stream.BufferConsumer.Upstream -
Constructor Summary
ConstructorsConstructorDescriptionSharedBuffer(io.netty.channel.EventLoop loop, io.micronaut.http.body.stream.BodySizeLimits limits, io.micronaut.http.body.stream.BufferConsumer.Upstream rootUpstream) -
Method Summary
Modifier and TypeMethodDescriptionvoidadd(io.netty.buffer.ByteBuf buf) Consume a buffer.protected voidprotected voidprotected voidaddForward(List<ByteBufConsumer> consumers) protected voidafterSubscribe(boolean last) protected voidprotected voidforwardInitialBuffer(@Nullable ByteBufConsumer subscriber, boolean last) protected voidreserve0()voidsetExpectedLengthFrom(io.netty.handler.codec.http.HttpHeaders headers) protected io.netty.buffer.ByteBufsubscribeFullResult(boolean last) Methods inherited from class io.micronaut.http.body.stream.BaseSharedBuffer
add, complete, error, failClaim, getExpectedLength, getLimits, getRootUpstream, logClaim, setExpectedLength, setExpectedLengthFrom, subscribe0, subscribeFull0Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.micronaut.http.body.stream.BufferConsumer
complete, discard, error
-
Constructor Details
-
SharedBuffer
public SharedBuffer(io.netty.channel.EventLoop loop, io.micronaut.http.body.stream.BodySizeLimits limits, io.micronaut.http.body.stream.BufferConsumer.Upstream rootUpstream)
-
-
Method Details
-
setExpectedLengthFrom
public void setExpectedLengthFrom(io.netty.handler.codec.http.HttpHeaders headers) -
reserve0
protected void reserve0()- Overrides:
reserve0in classio.micronaut.http.body.stream.BaseSharedBuffer<ByteBufConsumer,io.netty.buffer.ByteBuf>
-
forwardInitialBuffer
- Specified by:
forwardInitialBufferin classio.micronaut.http.body.stream.BaseSharedBuffer<ByteBufConsumer,io.netty.buffer.ByteBuf>
-
afterSubscribe
protected void afterSubscribe(boolean last) - Overrides:
afterSubscribein classio.micronaut.http.body.stream.BaseSharedBuffer<ByteBufConsumer,io.netty.buffer.ByteBuf>
-
subscribeFullResult
protected io.netty.buffer.ByteBuf subscribeFullResult(boolean last) - Specified by:
subscribeFullResultin classio.micronaut.http.body.stream.BaseSharedBuffer<ByteBufConsumer,io.netty.buffer.ByteBuf>
-
add
public void add(io.netty.buffer.ByteBuf buf) Description copied from interface:ByteBufConsumerConsume a buffer. Release ownership is transferred to this consumer.- Specified by:
addin interfaceByteBufConsumer- Parameters:
buf- The buffer to consume
-
addForward
- Specified by:
addForwardin classio.micronaut.http.body.stream.BaseSharedBuffer<ByteBufConsumer,io.netty.buffer.ByteBuf>
-
addBuffer
protected void addBuffer()- Specified by:
addBufferin classio.micronaut.http.body.stream.BaseSharedBuffer<ByteBufConsumer,io.netty.buffer.ByteBuf>
-
addDoNotBuffer
protected void addDoNotBuffer()- Overrides:
addDoNotBufferin classio.micronaut.http.body.stream.BaseSharedBuffer<ByteBufConsumer,io.netty.buffer.ByteBuf>
-
discardBuffer
protected void discardBuffer()- Specified by:
discardBufferin classio.micronaut.http.body.stream.BaseSharedBuffer<ByteBufConsumer,io.netty.buffer.ByteBuf>
-