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

    Constructors
    Constructor
    Description
    SharedBuffer(io.netty.channel.EventLoop loop, io.micronaut.http.body.stream.BodySizeLimits limits, io.micronaut.http.body.stream.BufferConsumer.Upstream rootUpstream)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    add(io.netty.buffer.ByteBuf buf)
    Consume a buffer.
    protected void
     
    protected void
     
    protected void
     
    protected void
    afterSubscribe(boolean last)
     
    protected void
     
    protected void
    forwardInitialBuffer(@Nullable ByteBufConsumer subscriber, boolean last)
     
    protected void
     
    void
    setExpectedLengthFrom(io.netty.handler.codec.http.HttpHeaders headers)
     
    protected io.netty.buffer.ByteBuf
    subscribeFullResult(boolean last)
     

    Methods inherited from class io.micronaut.http.body.stream.BaseSharedBuffer

    add, complete, error, failClaim, getExpectedLength, getLimits, getRootUpstream, logClaim, setExpectedLength, setExpectedLengthFrom, subscribe0, subscribeFull0

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods 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:
      reserve0 in class io.micronaut.http.body.stream.BaseSharedBuffer<ByteBufConsumer,io.netty.buffer.ByteBuf>
    • forwardInitialBuffer

      protected void forwardInitialBuffer(@Nullable @Nullable ByteBufConsumer subscriber, boolean last)
      Specified by:
      forwardInitialBuffer in class io.micronaut.http.body.stream.BaseSharedBuffer<ByteBufConsumer,io.netty.buffer.ByteBuf>
    • afterSubscribe

      protected void afterSubscribe(boolean last)
      Overrides:
      afterSubscribe in class io.micronaut.http.body.stream.BaseSharedBuffer<ByteBufConsumer,io.netty.buffer.ByteBuf>
    • subscribeFullResult

      protected io.netty.buffer.ByteBuf subscribeFullResult(boolean last)
      Specified by:
      subscribeFullResult in class io.micronaut.http.body.stream.BaseSharedBuffer<ByteBufConsumer,io.netty.buffer.ByteBuf>
    • add

      public void add(io.netty.buffer.ByteBuf buf)
      Description copied from interface: ByteBufConsumer
      Consume a buffer. Release ownership is transferred to this consumer.
      Specified by:
      add in interface ByteBufConsumer
      Parameters:
      buf - The buffer to consume
    • addForward

      protected void addForward(List<ByteBufConsumer> consumers)
      Specified by:
      addForward in class io.micronaut.http.body.stream.BaseSharedBuffer<ByteBufConsumer,io.netty.buffer.ByteBuf>
    • addBuffer

      protected void addBuffer()
      Specified by:
      addBuffer in class io.micronaut.http.body.stream.BaseSharedBuffer<ByteBufConsumer,io.netty.buffer.ByteBuf>
    • addDoNotBuffer

      protected void addDoNotBuffer()
      Overrides:
      addDoNotBuffer in class io.micronaut.http.body.stream.BaseSharedBuffer<ByteBufConsumer,io.netty.buffer.ByteBuf>
    • discardBuffer

      protected void discardBuffer()
      Specified by:
      discardBuffer in class io.micronaut.http.body.stream.BaseSharedBuffer<ByteBufConsumer,io.netty.buffer.ByteBuf>