public abstract class DataBufferUtils extends Object
DataBuffers.| Constructor and Description |
|---|
DataBufferUtils() |
| Modifier and Type | Method and Description |
|---|---|
static reactor.core.publisher.Flux<DataBuffer> |
read(AsynchronousFileChannel channel,
DataBufferFactory dataBufferFactory,
int bufferSize)
Read the given
AsynchronousFileChannel into a Flux of
DataBuffers. |
static reactor.core.publisher.Flux<DataBuffer> |
read(AsynchronousFileChannel channel,
long position,
DataBufferFactory dataBufferFactory,
int bufferSize)
Read the given
AsynchronousFileChannel into a Flux of
DataBuffers, starting at the given position. |
static reactor.core.publisher.Flux<DataBuffer> |
read(InputStream inputStream,
DataBufferFactory dataBufferFactory,
int bufferSize)
Read the given
InputStream into a Flux of
DataBuffers. |
static reactor.core.publisher.Flux<DataBuffer> |
read(ReadableByteChannel channel,
DataBufferFactory dataBufferFactory,
int bufferSize)
Read the given
ReadableByteChannel into a Flux of
DataBuffers. |
static reactor.core.publisher.Flux<DataBuffer> |
read(Resource resource,
DataBufferFactory dataBufferFactory,
int bufferSize)
Read the given
Resource into a Flux of DataBuffers. |
static reactor.core.publisher.Flux<DataBuffer> |
read(Resource resource,
long position,
DataBufferFactory dataBufferFactory,
int bufferSize)
Read the given
Resource into a Flux of DataBuffers
starting at the given position. |
static boolean |
release(DataBuffer dataBuffer)
Release the given data buffer, if it is a
PooledDataBuffer. |
static Consumer<DataBuffer> |
releaseConsumer()
Returns a consumer that calls
release(DataBuffer) on all
passed data buffers. |
static <T extends DataBuffer> |
retain(T dataBuffer)
Retain the given data buffer, it it is a
PooledDataBuffer. |
static reactor.core.publisher.Flux<DataBuffer> |
skipUntilByteCount(org.reactivestreams.Publisher<DataBuffer> publisher,
long maxByteCount)
Skip buffers from the given
Publisher until the total
byte count reaches
the given maximum byte count, or until the publisher is complete. |
static reactor.core.publisher.Flux<DataBuffer> |
takeUntilByteCount(org.reactivestreams.Publisher<DataBuffer> publisher,
long maxByteCount)
Relay buffers from the given
Publisher until the total
byte count reaches
the given maximum byte count, or until the publisher is complete. |
static reactor.core.publisher.Flux<DataBuffer> |
write(org.reactivestreams.Publisher<DataBuffer> source,
AsynchronousFileChannel channel,
long position)
Write the given stream of
DataBuffers to the given AsynchronousFileChannel. |
static reactor.core.publisher.Flux<DataBuffer> |
write(org.reactivestreams.Publisher<DataBuffer> source,
OutputStream outputStream)
Write the given stream of
DataBuffers to the given OutputStream. |
static reactor.core.publisher.Flux<DataBuffer> |
write(org.reactivestreams.Publisher<DataBuffer> source,
WritableByteChannel channel)
Write the given stream of
DataBuffers to the given WritableByteChannel. |
public static reactor.core.publisher.Flux<DataBuffer> read(InputStream inputStream, DataBufferFactory dataBufferFactory, int bufferSize)
InputStream into a Flux of
DataBuffers. Closes the input stream when the flux is terminated.inputStream - the input stream to read fromdataBufferFactory - the factory to create data buffers withbufferSize - the maximum size of the data bufferspublic static reactor.core.publisher.Flux<DataBuffer> read(ReadableByteChannel channel, DataBufferFactory dataBufferFactory, int bufferSize)
ReadableByteChannel into a Flux of
DataBuffers. Closes the channel when the flux is terminated.channel - the channel to read fromdataBufferFactory - the factory to create data buffers withbufferSize - the maximum size of the data bufferspublic static reactor.core.publisher.Flux<DataBuffer> read(AsynchronousFileChannel channel, DataBufferFactory dataBufferFactory, int bufferSize)
AsynchronousFileChannel into a Flux of
DataBuffers. Closes the channel when the flux is terminated.channel - the channel to read fromdataBufferFactory - the factory to create data buffers withbufferSize - the maximum size of the data bufferspublic static reactor.core.publisher.Flux<DataBuffer> read(AsynchronousFileChannel channel, long position, DataBufferFactory dataBufferFactory, int bufferSize)
AsynchronousFileChannel into a Flux of
DataBuffers, starting at the given position. Closes the channel when the flux is
terminated.channel - the channel to read fromposition - the position to start reading fromdataBufferFactory - the factory to create data buffers withbufferSize - the maximum size of the data bufferspublic static reactor.core.publisher.Flux<DataBuffer> read(Resource resource, DataBufferFactory dataBufferFactory, int bufferSize)
Resource into a Flux of DataBuffers.
If the resource is a file, it is read into an
AsynchronousFileChannel and turned to Flux via
read(AsynchronousFileChannel, DataBufferFactory, int) or else
fall back on read(InputStream, DataBufferFactory, int) closes
the channel when the flux is terminated.
resource - the resource to read fromdataBufferFactory - the factory to create data buffers withbufferSize - the maximum size of the data bufferspublic static reactor.core.publisher.Flux<DataBuffer> read(Resource resource, long position, DataBufferFactory dataBufferFactory, int bufferSize)
Resource into a Flux of DataBuffers
starting at the given position.
If the resource is a file, it is read into an
AsynchronousFileChannel and turned to Flux via
read(AsynchronousFileChannel, DataBufferFactory, int) or else
fall back on read(InputStream, DataBufferFactory, int). Closes
the channel when the flux is terminated.
resource - the resource to read fromposition - the position to start reading fromdataBufferFactory - the factory to create data buffers withbufferSize - the maximum size of the data bufferspublic static reactor.core.publisher.Flux<DataBuffer> write(org.reactivestreams.Publisher<DataBuffer> source, OutputStream outputStream)
DataBuffers to the given OutputStream. Does
not close the output stream when the flux is terminated, and does
not release the data buffers in the
source. If releasing is required, then subscribe to the returned Flux with a
releaseConsumer().
Note that the writing process does not start until the returned Flux is subscribed
to.
source - the stream of data buffers to be writtenoutputStream - the output stream to write tosource, that starts the writing
process when subscribed to, and that publishes any writing errors and the completion signalpublic static reactor.core.publisher.Flux<DataBuffer> write(org.reactivestreams.Publisher<DataBuffer> source, WritableByteChannel channel)
DataBuffers to the given WritableByteChannel. Does
not close the channel when the flux is terminated, and does
not release the data buffers in the
source. If releasing is required, then subscribe to the returned Flux with a
releaseConsumer().
Note that the writing process does not start until the returned Flux is subscribed
to.
source - the stream of data buffers to be writtenchannel - the channel to write tosource, that starts the writing
process when subscribed to, and that publishes any writing errors and the completion signalpublic static reactor.core.publisher.Flux<DataBuffer> write(org.reactivestreams.Publisher<DataBuffer> source, AsynchronousFileChannel channel, long position)
DataBuffers to the given AsynchronousFileChannel.
Does not close the channel when the flux is terminated, and does
not release the data buffers in the
source. If releasing is required, then subscribe to the returned Flux with a
releaseConsumer().
Note that the writing process does not start until the returned Flux is subscribed
to.
source - the stream of data buffers to be writtenchannel - the channel to write tosource, that starts the writing
process when subscribed to, and that publishes any writing errors and the completion signalpublic static reactor.core.publisher.Flux<DataBuffer> takeUntilByteCount(org.reactivestreams.Publisher<DataBuffer> publisher, long maxByteCount)
Publisher until the total
byte count reaches
the given maximum byte count, or until the publisher is complete.publisher - the publisher to filtermaxByteCount - the maximum byte countmaxByteCountpublic static reactor.core.publisher.Flux<DataBuffer> skipUntilByteCount(org.reactivestreams.Publisher<DataBuffer> publisher, long maxByteCount)
Publisher until the total
byte count reaches
the given maximum byte count, or until the publisher is complete.publisher - the publisher to filtermaxByteCount - the maximum byte countpublic static <T extends DataBuffer> T retain(T dataBuffer)
PooledDataBuffer.dataBuffer - the data buffer to retainpublic static boolean release(@Nullable DataBuffer dataBuffer)
PooledDataBuffer.dataBuffer - the data buffer to releasetrue if the buffer was released; false otherwise.public static Consumer<DataBuffer> releaseConsumer()
release(DataBuffer) on all
passed data buffers.