public abstract class DataBufferUtils
extends java.lang.Object
DataBuffer
s.Constructor and Description |
---|
DataBufferUtils() |
Modifier and Type | Method and Description |
---|---|
static reactor.core.publisher.Flux<DataBuffer> |
read(java.nio.channels.AsynchronousFileChannel channel,
DataBufferFactory dataBufferFactory,
int bufferSize)
Read the given
AsynchronousFileChannel into a Flux of
DataBuffer s. |
static reactor.core.publisher.Flux<DataBuffer> |
read(java.nio.channels.AsynchronousFileChannel channel,
long position,
DataBufferFactory dataBufferFactory,
int bufferSize)
Read the given
AsynchronousFileChannel into a Flux of
DataBuffer s, starting at the given position. |
static reactor.core.publisher.Flux<DataBuffer> |
read(java.io.InputStream inputStream,
DataBufferFactory dataBufferFactory,
int bufferSize)
Read the given
InputStream into a Flux of
DataBuffer s. |
static reactor.core.publisher.Flux<DataBuffer> |
read(java.nio.channels.ReadableByteChannel channel,
DataBufferFactory dataBufferFactory,
int bufferSize)
Read the given
ReadableByteChannel into a Flux of
DataBuffer s. |
static reactor.core.publisher.Flux<DataBuffer> |
read(Resource resource,
DataBufferFactory dataBufferFactory,
int bufferSize)
Read the given
Resource into a Flux of DataBuffer s. |
static reactor.core.publisher.Flux<DataBuffer> |
read(Resource resource,
long position,
DataBufferFactory dataBufferFactory,
int bufferSize)
Read the given
Resource into a Flux of DataBuffer s
starting at the given position. |
static boolean |
release(DataBuffer dataBuffer)
Release the given data buffer, if it is a
PooledDataBuffer . |
static java.util.function.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,
java.nio.channels.AsynchronousFileChannel channel,
long position)
Write the given stream of
DataBuffer s to the given AsynchronousFileChannel . |
static reactor.core.publisher.Flux<DataBuffer> |
write(org.reactivestreams.Publisher<DataBuffer> source,
java.io.OutputStream outputStream)
Write the given stream of
DataBuffer s to the given OutputStream . |
static reactor.core.publisher.Flux<DataBuffer> |
write(org.reactivestreams.Publisher<DataBuffer> source,
java.nio.channels.WritableByteChannel channel)
Write the given stream of
DataBuffer s to the given WritableByteChannel . |
public static reactor.core.publisher.Flux<DataBuffer> read(java.io.InputStream inputStream, DataBufferFactory dataBufferFactory, int bufferSize)
InputStream
into a Flux
of
DataBuffer
s. 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(java.nio.channels.ReadableByteChannel channel, DataBufferFactory dataBufferFactory, int bufferSize)
ReadableByteChannel
into a Flux
of
DataBuffer
s. 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(java.nio.channels.AsynchronousFileChannel channel, DataBufferFactory dataBufferFactory, int bufferSize)
AsynchronousFileChannel
into a Flux
of
DataBuffer
s. 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(java.nio.channels.AsynchronousFileChannel channel, long position, DataBufferFactory dataBufferFactory, int bufferSize)
AsynchronousFileChannel
into a Flux
of
DataBuffer
s, 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 DataBuffer
s.
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 DataBuffer
s
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, java.io.OutputStream outputStream)
DataBuffer
s 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, java.nio.channels.WritableByteChannel channel)
DataBuffer
s 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, java.nio.channels.AsynchronousFileChannel channel, long position)
DataBuffer
s 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 countmaxByteCount
public 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 java.util.function.Consumer<DataBuffer> releaseConsumer()
release(DataBuffer)
on all
passed data buffers.