package io
Provides various ways to work with streams that perform IO.
These methods accept a blocking ExecutionContext
, as the underlying
implementations perform blocking IO. The recommendation is to use an
unbounded thread pool with application level bounds.
- Alphabetic
- By Inheritance
- io
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
Value Members
-
def
readInputStream[F[_]](fis: F[InputStream], chunkSize: Int, blockingExecutionContext: ExecutionContext, closeAfterUse: Boolean = true)(implicit F: Sync[F], cs: ContextShift[F]): Stream[F, Byte]
Reads all bytes from the specified
InputStream
with a buffer size ofchunkSize
.Reads all bytes from the specified
InputStream
with a buffer size ofchunkSize
. SetcloseAfterUse
to false if theInputStream
should not be closed after use. -
def
stdin[F[_]](bufSize: Int, blockingExecutionContext: ExecutionContext)(implicit F: Sync[F], cs: ContextShift[F]): Stream[F, Byte]
Stream of bytes read asynchronously from standard input.
-
def
stdout[F[_]](blockingExecutionContext: ExecutionContext)(implicit F: Sync[F], cs: ContextShift[F]): Pipe[F, Byte, Unit]
Pipe of bytes that writes emitted values to standard output asynchronously.
-
def
toInputStream[F[_]](implicit F: ConcurrentEffect[F]): Pipe[F, Byte, InputStream]
Pipe that converts a stream of bytes to a stream that will emits a single
java.io.InputStream
, that is closed whenever the resulting stream terminates.Pipe that converts a stream of bytes to a stream that will emits a single
java.io.InputStream
, that is closed whenever the resulting stream terminates.If the
close
of resulting input stream is invoked manually, then this will await until the original stream completely terminates.Because all
InputStream
methods block (includingclose
), the resultingInputStream
should be consumed on a different thread pool than the one that is backing theConcurrentEffect
.Note that the implementation is not thread safe -- only one thread is allowed at any time to operate on the resulting
java.io.InputStream
. -
def
unsafeReadInputStream[F[_]](fis: F[InputStream], chunkSize: Int, blockingExecutionContext: ExecutionContext, closeAfterUse: Boolean = true)(implicit F: Sync[F], cs: ContextShift[F]): Stream[F, Byte]
Reads all bytes from the specified
InputStream
with a buffer size ofchunkSize
.Reads all bytes from the specified
InputStream
with a buffer size ofchunkSize
. SetcloseAfterUse
to false if theInputStream
should not be closed after use.Each read operation is performed on the supplied execution context. Reads are blocking so the execution context should be configured appropriately.
Recycles an underlying input buffer for performance. It is safe to call this as long as whatever consumes this
Stream
does not store theChunk
returned or pipe it to a combinator that does (e.g.buffer
). UsereadInputStream
for a safe version. -
def
writeOutputStream[F[_]](fos: F[OutputStream], blockingExecutionContext: ExecutionContext, closeAfterUse: Boolean = true)(implicit F: Sync[F], cs: ContextShift[F]): Pipe[F, Byte, Unit]
Writes all bytes to the specified
OutputStream
.Writes all bytes to the specified
OutputStream
. SetcloseAfterUse
to false if theOutputStream
should not be closed after use.Each write operation is performed on the supplied execution context. Writes are blocking so the execution context should be configured appropriately.
- object Watcher