trait ProcessGroup[F[_], O, E] extends ProcessLike[F]
Process group is two or more processes attached to each other
This implements a pipeline of processes. The input of the first process and the output of the last process is redirectable with the RedirectableInput and RedirectableOutput traits. The processes are attached to each other's input/output streams, the pipe between them is customizable.
The error streams are also redirectable with the RedirectableErrors trait.
- F
Effect type
- O
Output type
- E
Error output type
- Alphabetic
- By Inheritance
- ProcessGroup
- ProcessLike
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- implicit abstract val concurrent: Concurrent[F]
- abstract val firstProcess: Process[F, Stream[F, Byte], E]
- abstract val innerProcesses: List[UnboundIProcess[F, Stream[F, Byte], E]]
- abstract val lastProcess: UnboundIProcess[F, O, E]
- abstract def map(f: Mapper[F, O, E]): ProcessGroup[F, O, E]
Applies the given mapper to each process in the group
Applies the given mapper to each process in the group
- f
process mapper
- returns
a new process group with all the processes altered by the mapper
- abstract val originalProcesses: List[Process[F, Unit, Unit]]
Concrete Value Members
- def run(blocker: Blocker)(implicit runner: ProcessRunner[F]): F[ProcessGroupResult[F, O, E]]
Starts the process group asynchronously and blocks the execution until it is finished
Starts the process group asynchronously and blocks the execution until it is finished
- blocker
Execution context for blocking operations
- runner
The process runner to be used
- returns
the result of the finished processes
- def start(blocker: Blocker)(implicit runner: ProcessRunner[F]): Resource[F, Fiber[F, ProcessGroupResult[F, O, E]]]
Starts the process group asynchronously and returns a closeable fiber representing it
Starts the process group asynchronously and returns a closeable fiber representing it
Joining the fiber waits for the processes to be terminated. Canceling the fiber terminates the processesnormally (with SIGTERM).
- blocker
Execution context for blocking operations
- runner
The process runner to be used
- returns
a managed fiber representing the running processes
- def startProcessGroup(blocker: Blocker)(implicit runner: ProcessRunner[F]): F[RunningProcessGroup[F, O, E]]
Starts the process group asynchronously and returns the RunningProcessGroup interface for it
Starts the process group asynchronously and returns the RunningProcessGroup interface for it
This is the most advanced way to start process groups. See start and run as alternatives.
- blocker
Execution context for blocking operations
- runner
The process runner to be used
- returns
interface for handling the running process group