Interface IoMulti
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
Static MethodsModifier and TypeMethodDescriptionstatic 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
-
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
-
outputStreamMultiBuilder
Creates a builder of theOutputStreamthat provides data written as aMulti.- Returns:
- the builder
- See Also:
-
multiFromStream
Create aMultiinstance that publishesByteBuffers from the givenInputStream.InputStreamis trusted not to block on read operations, in caseInputStreamis 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.multiFromStreamBuilder(is).executor(executorService).build().- Parameters:
inputStream- the Stream to publish- Returns:
- Multi
-
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
-