public interface IoMulti
Create reactive stream from standard IO resources.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic final classFluent API builder for creating aMultifrom aReadableByteChannel.static final classFluent API builder for creating aMultifrom anInputStream.static final classFluent API builder for creating a subscriber consumingMulti<ByteBuffer>toWritableByteChannel.static final classFluent API builder forOutputStreamMulti. -
Method Summary
Modifier and TypeMethodDescriptionbuilderInputStream(InputStream inputStream) Deprecated, for removal: This API element is subject to removal in a future version.Deprecated, for removal: This API element is subject to removal in a future version.Please useoutputStreamMultiBuilder()static Multi<ByteBuffer> createInputStream(InputStream inputStream) Deprecated, for removal: This API element is subject to removal in a future version.please usemultiFromStream(java.io.InputStream)static OutputStreamMultiDeprecated, for removal: This API element is subject to removal in a future version.Please useoutputStreamMulti()static Multi<ByteBuffer> multiFromByteChannel(ReadableByteChannel byteChannel) Creates a multi that reads data from the provided byte channel.multiFromByteChannelBuilder(ReadableByteChannel byteChannel) Creates a builder ofMultifrom providedReadableByteChannel.static Multi<ByteBuffer> multiFromStream(InputStream inputStream) multiFromStreamBuilder(InputStream inputStream) Creates a builder of theMultifrom suppliedInputStream.static Function<? super Multi<ByteBuffer>, ? extends Single<Void>> multiToByteChannel(WritableByteChannel writableChannel) Creates function consumingMulti<ByteBuffer>to suppliedWritableByteChannel.multiToByteChannelBuilder(WritableByteChannel byteChannel) Creates function consumingMulti<ByteBuffer>to suppliedWritableByteChannel.static OutputStreamMultiCreate anOutputStreamthat provides the data written as aMulti.Creates a builder of theOutputStreamthat provides data written as aMulti.writeToFile(Path filePath)
-
Method Details
-
createOutputStream
Deprecated, for removal: This API element is subject to removal in a future version.Please useoutputStreamMulti()Create anOutputStreamthat provides the data written as aMulti.In case there is no demand,
OutputStream.write(byte[], int, int)methods are blocked until downstream request for more data.- Returns:
- new
Multipublisher extendingOutputStream
-
outputStreamMulti
Create anOutputStreamthat provides the data written as aMulti.In case there is no demand,
OutputStream.write(byte[], int, int)methods are blocked until downstream request for more data.- Returns:
- new
OutputStreamimplementingMulti
-
builderOutputStream
@Deprecated(since="2.0.0", forRemoval=true) static IoMulti.OutputStreamMultiBuilder builderOutputStream()Deprecated, for removal: This API element is subject to removal in a future version.Please useoutputStreamMultiBuilder()Creates a builder of theOutputStreamthat provides data written as aMulti.- Returns:
- the builder
- See Also:
-
outputStreamMultiBuilder
Creates a builder of theOutputStreamthat provides data written as aMulti.- Returns:
- the builder
- See Also:
-
createInputStream
@Deprecated(since="2.0.0", forRemoval=true) static Multi<ByteBuffer> createInputStream(InputStream inputStream) Deprecated, for removal: This API element is subject to removal in a future version.please usemultiFromStream(java.io.InputStream)Create aMultiinstance that publishesByteBuffers from the givenInputStream.InputStreamis trusted not to block on read operations, in case it can't be assured use builder to specify executor for asynchronous waiting for blocking reads.IoMulti.builder(is).executor(executorService).build().- Parameters:
inputStream- the Stream to publish- Returns:
- Multi
- Throws:
NullPointerException- ifstreamisnull
-
multiFromStream
Create aMultiinstance that publishesByteBuffers from the givenInputStream.InputStreamis trusted not to block on read operations, in case it can't be assured use builder to specify executor for asynchronous waiting for blocking reads.IoMulti.builder(is).executor(executorService).build().- Parameters:
inputStream- the Stream to publish- Returns:
- Multi
-
builderInputStream
@Deprecated(since="2.0.0", forRemoval=true) static IoMulti.MultiFromInputStreamBuilder builderInputStream(InputStream inputStream) Deprecated, for removal: This API element is subject to removal in a future version.Please usemultiFromStreamBuilder(java.io.InputStream)Creates a builder of theMultifrom suppliedInputStream.- Parameters:
inputStream- the Stream to publish- Returns:
- the builder
-
multiFromStreamBuilder
Creates a builder of theMultifrom suppliedInputStream.- Parameters:
inputStream- the Stream to publish- Returns:
- the builder
-
multiFromByteChannel
Creates a multi that reads data from the provided byte channel. The multi uses an executor service to process asynchronous reads. You can provide a custom executor service usingmultiFromByteChannelBuilder(java.nio.channels.ReadableByteChannel).- Parameters:
byteChannel- readable byte channel with data- Returns:
- publisher of data from the provided channel
-
multiToByteChannel
static Function<? super Multi<ByteBuffer>,? extends Single<Void>> multiToByteChannel(WritableByteChannel writableChannel) Creates function consumingMulti<ByteBuffer>to suppliedWritableByteChannel.
Example usage:Multi.create(listOfByteBuffers) .map(s -> ByteBuffer.wrap(s.getBytes(StandardCharsets.UTF_8))) .to(IoMulti.multiToByteChannel(fileChannel)) .await();- Parameters:
writableChannel- for consuming ByteBuffers from upstream- Returns:
- mapper consuming
Multi<ByteBuffer>and returning Single for observing asynchronous writing.
-
multiToByteChannelBuilder
Creates function consumingMulti<ByteBuffer>to suppliedWritableByteChannel.
Example usage:Multi.create(listOfByteBuffers) .map(s -> ByteBuffer.wrap(s.getBytes(StandardCharsets.UTF_8))) .to(IoMulti.multiToByteChannelBuilder(fileChannel) .executor(customExecutor) .build()) .await();- Parameters:
byteChannel- for consuming ByteBuffers from upstream- Returns:
- mapper consuming
Multi<ByteBuffer>and returning Single for observing asynchronous writing.
-
writeToFile
Creates function consumingMulti<ByteBuffer>toFileChannelopened from suppliedPath.
Example usage:Multi.create(listOfByteBuffers) .map(s -> ByteBuffer.wrap(s.getBytes(StandardCharsets.UTF_8))) .to(IoMulti.writeToFile(path) .executor(customExecutor) .build()) .await();- Parameters:
filePath- file for writing all ByteBuffers from upstream to- Returns:
- mapper consuming
Multi<ByteBuffer>and returning Single for observing asynchronous writing.
-
multiFromByteChannelBuilder
static IoMulti.MultiFromByteChannelBuilder multiFromByteChannelBuilder(ReadableByteChannel byteChannel) Creates a builder ofMultifrom providedReadableByteChannel.- Parameters:
byteChannel- readable byte channel with data- Returns:
- fluent API builder to configure additional details
-
multiFromStreamBuilder(java.io.InputStream)