ProcessGroup

io.github.vigoo.prox.ProcessGroupModule.ProcessGroup
See theProcessGroup companion object

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.

Type parameters

E

Error output type

O

Output type

Attributes

Companion
object
Graph
Supertypes
trait ProcessLike
class Object
trait Matchable
class Any
Show all
Known subtypes

Members list

Type members

Inherited classlikes

Attributes

Inherited from:
ProcessGroupConfiguration
Supertypes
class Object
trait Matchable
class Any

Attributes

Inherited from:
ProcessGroupConfiguration
Supertypes
class Object
trait Matchable
class Any

Inherited types

override type Self <: ProcessGroup[O, E]

Attributes

Inherited from:
ProcessGroupConfiguration

Value members

Abstract methods

def map(f: Mapper[O, E]): Self

Applies the given mapper to each process in the group

Applies the given mapper to each process in the group

Value parameters

f

process mapper

Attributes

Returns

a new process group with all the processes altered by the mapper

Concrete methods

def run[Info]()(implicit runner: ProcessRunner[Info]): ProxIO[ProcessGroupResult[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

Value parameters

runner

The process runner to be used

Attributes

Returns

the result of the finished processes

def start[Info]()(implicit runner: ProcessRunner[Info]): ProxResource[ProxFiber[ProcessGroupResult[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).

Value parameters

runner

The process runner to be used

Attributes

Returns

a managed fiber representing the running processes

def startProcessGroup[Info]()(implicit runner: ProcessRunner[Info]): ProxIO[RunningProcessGroup[O, E, Info]]

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.

Type parameters

Info

The runner-specific information about the started processes

Value parameters

runner

The process runner to be used

Attributes

Returns

interface for handling the running process group

Inherited methods

def `with`(nameValuePair: (String, String)): Self

Adds an environment variable to the process

Adds an environment variable to the process

Value parameters

nameValuePair

A pair of name and value

Attributes

Returns

a new process with the working directory set

Inherited from:
ProcessLikeConfiguration
override protected def applyConfiguration(workingDirectory: Option[Path], environmentVariables: Map[String, String], removedEnvironmentVariables: Set[String]): Self

Attributes

Definition Classes
Inherited from:
ProcessGroupConfiguration
def in(workingDirectory: Path): Self

Changes the working directory of the process

Changes the working directory of the process

Value parameters

workingDirectory

the working directory

Attributes

Returns

a new process with the working directory set

Inherited from:
ProcessLikeConfiguration

Use the inherited working directory of the process instead of an explicit one

Use the inherited working directory of the process instead of an explicit one

Attributes

Returns

a new process with the working directory cleared

Inherited from:
ProcessLikeConfiguration
def without(name: String): Self

Removes an environment variable from the process

Removes an environment variable from the process

Usable to remove variables inherited from the parent process.

Value parameters

name

Name of the environment variable

Attributes

Returns

a new process with the working directory set

Inherited from:
ProcessLikeConfiguration

Abstract fields

val originalProcesses: List[Process[Unit, Unit]]

Inherited fields

override val environmentVariables: Map[String, String]

Attributes

Inherited from:
ProcessGroupConfiguration
override val removedEnvironmentVariables: Set[String]

Attributes

Inherited from:
ProcessGroupConfiguration
override val workingDirectory: Option[Path]

Attributes

Inherited from:
ProcessGroupConfiguration