public abstract class DataBufferUtils
extends java.lang.Object
DataBuffers
を操作するためのユーティリティクラス。コンストラクターと説明 |
---|
DataBufferUtils() |
修飾子と型 | メソッドと説明 |
---|---|
static reactor.core.publisher.Mono<DataBuffer> | join(org.reactivestreams.Publisher<DataBuffer> dataBuffers) 指定された dataBuffers 要素を結合して構成される新しい DataBuffer を返します。 |
static reactor.core.publisher.Flux<DataBuffer> | read(Resource resource, DataBufferFactory dataBufferFactory, int bufferSize) 指定された Resource を DataBuffer の Flux に読み取ります。 |
static reactor.core.publisher.Flux<DataBuffer> | read(Resource resource, long position, DataBufferFactory dataBufferFactory, int bufferSize) 指定された Resource を、指定された位置から DataBuffer の Flux に読み込みます。 |
static reactor.core.publisher.Flux<DataBuffer> | readAsynchronousFileChannel(java.util.concurrent.Callable<java.nio.channels.AsynchronousFileChannel> channelSupplier, DataBufferFactory dataBufferFactory, int bufferSize) 指定されたサプライヤーから AsynchronousFileChannel を取得し、DataBuffer の Flux に読み込みます。 |
static reactor.core.publisher.Flux<DataBuffer> | readAsynchronousFileChannel(java.util.concurrent.Callable<java.nio.channels.AsynchronousFileChannel> channelSupplier, long position, DataBufferFactory dataBufferFactory, int bufferSize) 指定されたサプライヤーから AsynchronousFileChannel を取得し、指定された位置から DataBuffer の Flux に読み込みます。 |
static reactor.core.publisher.Flux<DataBuffer> | readByteChannel(java.util.concurrent.Callable<java.nio.channels.ReadableByteChannel> channelSupplier, DataBufferFactory dataBufferFactory, int bufferSize) 指定されたサプライヤーから ReadableByteChannel を取得し、DataBuffer の Flux に読み込みます。 |
static reactor.core.publisher.Flux<DataBuffer> | readInputStream(java.util.concurrent.Callable<java.io.InputStream> inputStreamSupplier, DataBufferFactory dataBufferFactory, int bufferSize) 指定されたサプライヤーから InputStream を取得し、DataBuffer の Flux に読み込みます。 |
static boolean | release(DataBuffer dataBuffer) 指定されたデータバッファが PooledDataBuffer であり、割り当てられている場合は、解放します。 |
static java.util.function.Consumer<DataBuffer> | releaseConsumer() 渡されたすべてのデータバッファで release(DataBuffer) を呼び出すコンシューマーを返します。 |
static <T extends DataBuffer> | retain(T dataBuffer) 指定されたデータバッファーを保持します。これは PooledDataBuffer です。 |
static reactor.core.publisher.Flux<DataBuffer> | skipUntilByteCount(org.reactivestreams.Publisher<DataBuffer> publisher, long maxByteCount) 合計バイト数が指定された最大バイト数に達するまで、またはパブリッシャーが完了するまで、指定された Publisher からバッファーをスキップします。 |
static reactor.core.publisher.Flux<DataBuffer> | takeUntilByteCount(org.reactivestreams.Publisher<DataBuffer> publisher, long maxByteCount) 合計バイト数が指定された最大バイト数に達するまで、またはパブリッシャーが完了するまで、指定された Publisher からバッファを中継します。 |
static reactor.core.publisher.Flux<DataBuffer> | write(org.reactivestreams.Publisher<DataBuffer> source, java.nio.channels.AsynchronousFileChannel channel) DataBuffers の指定されたストリームを指定された AsynchronousFileChannel に書き込みます。 |
static reactor.core.publisher.Flux<DataBuffer> | write(org.reactivestreams.Publisher<DataBuffer> source, java.nio.channels.AsynchronousFileChannel channel, long position) DataBuffers の指定されたストリームを指定された AsynchronousFileChannel に書き込みます。 |
static reactor.core.publisher.Flux<DataBuffer> | write(org.reactivestreams.Publisher<DataBuffer> source, java.io.OutputStream outputStream) DataBuffers の指定されたストリームを指定された OutputStream に書き込みます。 |
static reactor.core.publisher.Flux<DataBuffer> | write(org.reactivestreams.Publisher<DataBuffer> source, java.nio.channels.WritableByteChannel channel) DataBuffers の指定されたストリームを指定された WritableByteChannel に書き込みます。 |
public static reactor.core.publisher.Flux<DataBuffer> readInputStream(java.util.concurrent.Callable<java.io.InputStream> inputStreamSupplier, DataBufferFactory dataBufferFactory, int bufferSize)
InputStream
を取得し、それを DataBuffer
の Flux
に読み込みます。flux が終了すると、入力ストリームが閉じられます。inputStreamSupplier
- 読み取り元の入力ストリームのサプライヤー dataBufferFactory
- データバッファを作成するファクトリ bufferSize
- データバッファの最大サイズ public static reactor.core.publisher.Flux<DataBuffer> readByteChannel(java.util.concurrent.Callable<java.nio.channels.ReadableByteChannel> channelSupplier, DataBufferFactory dataBufferFactory, int bufferSize)
ReadableByteChannel
を取得し、それを DataBuffer
の Flux
に読み込みます。flux が終了するとチャネルを閉じます。channelSupplier
- チャンネルの読み取り元のサプライヤー dataBufferFactory
- データバッファを作成するファクトリ bufferSize
- データバッファの最大サイズ public static reactor.core.publisher.Flux<DataBuffer> readAsynchronousFileChannel(java.util.concurrent.Callable<java.nio.channels.AsynchronousFileChannel> channelSupplier, DataBufferFactory dataBufferFactory, int bufferSize)
AsynchronousFileChannel
を取得し、それを DataBuffer
の Flux
に読み込みます。flux が終了するとチャネルを閉じます。channelSupplier
- チャンネルの読み取り元のサプライヤー dataBufferFactory
- データバッファを作成するファクトリ bufferSize
- データバッファの最大サイズ public static reactor.core.publisher.Flux<DataBuffer> readAsynchronousFileChannel(java.util.concurrent.Callable<java.nio.channels.AsynchronousFileChannel> channelSupplier, long position, DataBufferFactory dataBufferFactory, int bufferSize)
AsynchronousFileChannel
を取得し、指定された位置から DataBuffer
の Flux
に読み込みます。flux が終了するとチャネルを閉じます。channelSupplier
- チャンネルの読み取り元のサプライヤー position
- 読み取りを開始する位置 dataBufferFactory
- データバッファを作成するファクトリ bufferSize
- データバッファの最大サイズ public static reactor.core.publisher.Flux<DataBuffer> read(Resource resource, DataBufferFactory dataBufferFactory, int bufferSize)
Resource
を DataBuffer
の Flux
に読み取ります。 リソースがファイルの場合、AsynchronousFileChannel
に読み込まれ、readAsynchronousFileChannel(Callable, DataBufferFactory, int)
を介して Flux
に変換されるか、readByteChannel(Callable, DataBufferFactory, int)
にフォールバックします。flux が終了するとチャネルが閉じられます。
resource
- 読み取るリソース dataBufferFactory
- データバッファを作成するファクトリ bufferSize
- データバッファの最大サイズ public static reactor.core.publisher.Flux<DataBuffer> read(Resource resource, long position, DataBufferFactory dataBufferFactory, int bufferSize)
Resource
を、指定された位置から DataBuffer
の Flux
に読み込みます。 リソースがファイルの場合、AsynchronousFileChannel
に読み込まれ、readAsynchronousFileChannel(Callable, DataBufferFactory, int)
を介して Flux
に変換されるか、readByteChannel(Callable, DataBufferFactory, int)
にフォールバックします。flux が終了するとチャネルが閉じられます。
resource
- 読み取るリソース position
- 読み取りを開始する位置 dataBufferFactory
- データバッファを作成するファクトリ bufferSize
- データバッファの最大サイズ public static reactor.core.publisher.Flux<DataBuffer> write(org.reactivestreams.Publisher<DataBuffer> source, java.io.OutputStream outputStream)
DataBuffers
のストリームを指定された OutputStream
に書き込みます。flux が終了しても出力ストリームは閉じられず、ソース内のデータバッファーは解放されません。解放が必要な場合は、返された Flux
に releaseConsumer()
でサブスクライブします。 返された Flux
がサブスクライブされるまで、書き込みプロセスは開始されないことに注意してください。
source
- 書き込まれるデータバッファのストリーム outputStream
- 書き込む出力ストリーム source
と同じバッファを含む flux。サブスクライブされると書き込みプロセスを開始し、書き込みエラーと完了シグナルを発行します。public static reactor.core.publisher.Flux<DataBuffer> write(org.reactivestreams.Publisher<DataBuffer> source, java.nio.channels.WritableByteChannel channel)
DataBuffers
のストリームを指定された WritableByteChannel
に書き込みます。flux が終了してもチャネルは閉じられず、ソース内のデータバッファーは解放されません。解放が必要な場合は、返された Flux
を releaseConsumer()
でサブスクライブします。 返された Flux
がサブスクライブされるまで、書き込みプロセスは開始されないことに注意してください。
source
- 書き込まれるデータバッファのストリーム channel
- 書き込むチャネル source
と同じバッファを含む flux。サブスクライブされると書き込みプロセスを開始し、書き込みエラーと完了シグナルを発行します。public static reactor.core.publisher.Flux<DataBuffer> write(org.reactivestreams.Publisher<DataBuffer> source, java.nio.channels.AsynchronousFileChannel channel)
DataBuffers
のストリームを指定された AsynchronousFileChannel
に書き込みます。flux が終了してもチャネルは閉じられず、ソース内のデータバッファーは解放されません。解放が必要な場合は、返された Flux
を releaseConsumer()
でサブスクライブします。 返された Flux
がサブスクライブされるまで、書き込みプロセスは開始されないことに注意してください。
source
- 書き込まれるデータバッファのストリーム channel
- 書き込むチャネル source
と同じバッファを含む flux。サブスクライブされると書き込みプロセスを開始し、書き込みエラーと完了シグナルを発行します。public static reactor.core.publisher.Flux<DataBuffer> write(org.reactivestreams.Publisher<DataBuffer> source, java.nio.channels.AsynchronousFileChannel channel, long position)
DataBuffers
のストリームを指定された AsynchronousFileChannel
に書き込みます。flux が終了してもチャネルは閉じられず、ソース内のデータバッファーは解放されません。解放が必要な場合は、返された Flux
を releaseConsumer()
でサブスクライブします。 返された Flux
がサブスクライブされるまで、書き込みプロセスは開始されないことに注意してください。
source
- 書き込まれるデータバッファのストリーム channel
- 書き込むチャネル position
- 書き込みを開始するファイル位置。負でない必要があります source
と同じバッファを含む flux。サブスクライブされると書き込みプロセスを開始し、書き込みエラーと完了シグナルを発行します。public static reactor.core.publisher.Flux<DataBuffer> takeUntilByteCount(org.reactivestreams.Publisher<DataBuffer> publisher, long maxByteCount)
Publisher
からバッファを中継します。publisher
- フィルタリングするパブリッシャー maxByteCount
- 最大バイト数 maxByteCount
である flux public static reactor.core.publisher.Flux<DataBuffer> skipUntilByteCount(org.reactivestreams.Publisher<DataBuffer> publisher, long maxByteCount)
Publisher
からバッファーをスキップします。publisher
- フィルタリングするパブリッシャー maxByteCount
- 最大バイト数 public static <T extends DataBuffer> T retain(T dataBuffer)
PooledDataBuffer
です。dataBuffer
- 保持するデータバッファ public static boolean release(@Nullable DataBuffer dataBuffer)
PooledDataBuffer
であり、割り当てられている場合は、解放します。dataBuffer
- 解放するデータバッファ true
。それ以外の場合は false
。public static java.util.function.Consumer<DataBuffer> releaseConsumer()
release(DataBuffer)
を呼び出すコンシューマーを返します。public static reactor.core.publisher.Mono<DataBuffer> join(org.reactivestreams.Publisher<DataBuffer> dataBuffers)
dataBuffers
要素を結合して構成された新しい DataBuffer
を返します。DataBuffer
型に応じて、返されるバッファーは、提供されたバッファーのすべてのデータを含む単一のバッファーである場合もあれば、指定されたバッファーへの参照を含むゼロコピーのコンポジットである場合もあります。dataBuffers
でエラーが発生した場合、またはキャンセルシグナルが発生した場合は、蓄積されたすべてのバッファが解放されます。
指定されたデータバッファを解放する必要がないことに注意してください。それらは、返却されたコンポジットの一部としてリリースされます。
dataBuffers
- 構成されるデータバッファ dataBuffers
引数から構成されるバッファー