Interface BufferConsumer
- All Known Implementing Classes:
BaseSharedBuffer, BaseSharedBuffer.AsFlux, ConcatenatingSubscriber, FormDemuxer, ReactiveByteBufferByteBody.SharedBuffer, StreamingNettyByteBody.SharedBuffer
This is a reactor-like API for streaming bytes. It's a bit better than reactor because it's more
explicit about reference counting semantics, has more fine-grained controls for cancelling, and
has more relaxed concurrency semantics.
- Since:
- 4.8.0
- Author:
- Jonas Konrad
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceThis interface manages the backpressure for data consumptions. -
Method Summary
Modifier and TypeMethodDescriptionvoidadd(ReadBuffer rb) Send a buffer to this consumer.default voidSend a final buffer to this consumer and signal normal completion of the stream, in one operation.voidcomplete()Signal normal completion of the stream.default voiddiscard()Signal that the upstream has discarded the remaining data, as requested byBufferConsumer.Upstream.allowDiscard().voidSignal an upstream error.
-
Method Details
-
add
Send a buffer to this consumer. Ownership of the buffer transfers to the consumer.- Parameters:
rb- The buffer
-
complete
void complete()Signal normal completion of the stream. -
addAndComplete
Send a final buffer to this consumer and signal normal completion of the stream, in one operation. Ownership of the buffer transfers to the consumer.This is semantically identical to
add(ReadBuffer)followed bycomplete(). Implementations may override it to combine the two into a single downstream message, e.g. to write the trailing bytes of a response as part of the message that terminates it.- Parameters:
rb- The final buffer
-
discard
default void discard()Signal that the upstream has discarded the remaining data, as requested byBufferConsumer.Upstream.allowDiscard(). -
error
-