Defines termination cause for the process.
Defines termination cause for the process.
Cause is always wrapped in Halt
and controls process flow.
An effectful channel, to which we can send values and get back responses.
An effectful channel, to which we can send values and get back responses. Modeled as a source of effectful functions.
Exchange represents interconnection between two systems.
Exchange represents interconnection between two systems.
So called remote is resource from which program receives messages of type I
and can send to it messages of type O
.
Typically this can be sort of connection to external system, like for example tcp connection to internet server.
Exchange allows combining this pattern with Processes and allows to use different combinators to specify the Exchange behaviour.
Exchange is currently specialized to scalaz.concurrent.Task
values read from remote system
values written to remote system
Process reading values from remote system
Process writing values to remote system
An effectful stream of O
values.
An effectful stream of O
values. In between emitting values
a Process
may request evaluation of F
effects.
A Process[Nothing,A]
is a pure Process
with no effects.
A Process[Task,A]
may have Task
effects. A Process
halts due to some Cause
, generally End
(indicating normal
termination) or Error(t)
for some t: Throwable
indicating
abnormal termination due to some uncaught error.
A single input stream transducer.
A single input stream transducer. Accepts input of type I
,
and emits values of type O
.
An effectful sink, to which we can send values.
An effectful sink, to which we can send values. Modeled as a source of effectful functions.
A stream transducer that can read from one of two inputs,
the 'left' (of type I
) or the 'right' (of type I2
).
A stream transducer that can read from one of two inputs,
the 'left' (of type I
) or the 'right' (of type I2
).
Process1[I,O] <: Tee[I,I2,O]
.
This class provides infix syntax specific to Tee
.
This class provides infix syntax specific to Tee
. We put these here
rather than trying to cram them into Process
itself using implicit
equality witnesses. This doesn't work out so well due to variance
issues.
A Tee
that writes values of type W
.
A Writer[F,W,O]
is a Process[F, W \/ O]
.
A Writer[F,W,O]
is a Process[F, W \/ O]
. See
WriterSyntax
for convenience functions
for working with either the written values (the W
)
or the output values (the O
).
This is useful for logging or other situations where we
want to emit some values 'on the side' while doing something
else with the main output of a Process
.
A Process1
that writes values of type W
.
Infix syntax for working with Writer[F,W,O]
.
Infix syntax for working with Writer[F,W,O]
. We call
the W
parameter the 'write' side of the Writer
and
O
the 'output' side. Many method in this class end
with either W
or O
, depending on what side they
operate on.
A stream transducer that can read from one of two inputs, non-deterministically.
This class provides infix syntax specific to Wye
.
This class provides infix syntax specific to Wye
. We put these here
rather than trying to cram them into Process
itself using implicit
equality witnesses. This doesn't work out so well due to variance
issues.
A Wye
that writes values of type W
.
Scheduler used for timing processes.
Scheduler used for timing processes. This thread pool shall not be used for general purpose Process or Task execution
Module of Process
functions and combinators for file and network I/O.
Module for text related processes.