ProcessGroupImplI

io.github.vigoo.prox.ProcessGroupModule.ProcessGroup.ProcessGroupImplI
case class ProcessGroupImplI(firstProcess: UnboundEProcess[ProxStream[Byte]], innerProcesses: List[UnboundIEProcess[ProxStream[Byte]]], lastProcess: UnboundProcess, originalProcesses: List[Process[Unit, Unit]]) extends ProcessGroup[Unit, Unit], RedirectableOutput[ProcessGroupImplIO], RedirectableErrors[ProcessGroupImplIE]

Process group with bound input stream

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait ProcessGroup[Unit, Unit]
trait ProcessGroupConfiguration[Unit, Unit]
trait ProcessLike
class Object
trait Matchable
class Any
Show all

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

Types

override type Self = ProcessGroupImplI

Value members

Concrete methods

override def connectErrors[R <: GroupErrorRedirection, OR <: OutputRedirection, E](target: R)(implicit groupErrorRedirectionType: Aux[R, OR, E], outputRedirectionType: Aux[OR, E]): ProcessGroupImplIE[E]

The low level operation to attach an error output to all the processes in the group.

The low level operation to attach an error output to all the processes in the group.

Use one of the other methods of this trait or the advanced interface represented by customizedPerProcess for convenience.

This is the place where the process group's error output type gets calculated using the GroupErrorRedirectionType and OutputRedirectionType type classes.

Type parameters

E

Error output type

OR

Error output redirection type

R

Error output grouped redirection type

Value parameters

groupErrorRedirectionType

Helper for dependent error output type

outputRedirectionType

Helper for dependent error output type

target

Redirection target

Attributes

Returns

Returns a new process group with all the error streams redirected and the error redirection capability removed.

Definition Classes
override def connectOutput[R <: OutputRedirection, RO](target: R)(implicit outputRedirectionType: Aux[R, RO]): ProcessGroupImplIO[RO]

The low level operation to attach an output to a process

The low level operation to attach an output to a process

Use one of the other methods of this trait for convenience. This is the place where the output type gets calculated with a helper type class called OutputRedirectionType which implements the type level computation for figuring out O.

Type parameters

O

Output type

R

Output redirection type

Value parameters

outputRedirectionType

Helper for dependent output type

target

Redirection target

Attributes

Returns

Returns a new process or process group with its output redirected and its output redirection capability removed.

Definition Classes
def map(f: Mapper[Unit, Unit]): ProcessGroupImplI

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

Inherited methods

def !>(sink: ProxSink[Byte]): P[Unit]

Redirects the error outputs to a sink.

Redirects the error outputs to a sink.

The process error output type will be Unit. An alias for errorsToSink

Value parameters

sink

Target sink

Attributes

Returns

Returns a new process group with all the error streams redirected and the error redirection capability removed.

Inherited from:
RedirectableErrors
def !>#[O : ProxMonoid](pipe: ProxPipe[Byte, O]): P[O]

Redirects the error outputs to a pipe and folds its output with a monoid instance.

Redirects the error outputs to a pipe and folds its output with a monoid instance.

The process error output type will be the same as the pipe's output type. An alias for errorsToFoldMonoid

Type parameters

O

Output type of the pipe. Must have a monoid instance.

Value parameters

pipe

Target pipe

Attributes

Returns

Returns a new process group with all the error streams redirected and the error redirection capability removed.

Inherited from:
RedirectableErrors
def !>?[O](pipe: ProxPipe[Byte, O]): P[Vector[O]]

Redirects the error outputs to a pipe and collects its output to a vector

Redirects the error outputs to a pipe and collects its output to a vector

The process error output type will be a vector of the pipe's output type. An alias for errorsToVector

Type parameters

O

Output type of the pipe

Value parameters

pipe

Target pipe

Attributes

Returns

Returns a new process group with all the error streams redirected and the error redirection capability removed.

Inherited from:
RedirectableErrors
def >(path: Path): P[Unit]

Redirects the output to a file natively

Redirects the output to a file natively

An alias for toFile

Value parameters

path

Target file path

Attributes

Returns

Returns a new process or process group with its output redirected and its output redirection capability removed.

Inherited from:
RedirectableOutput
def >(sink: ProxSink[Byte]): P[Unit]

Redirects the output to a sink.

Redirects the output to a sink.

The process output type will be Unit. An alias for toSink

Value parameters

sink

Target sink

Attributes

Returns

Returns a new process or process group with its output redirected and its output redirection capability removed.

Inherited from:
RedirectableOutput
def >#[O : ProxMonoid](pipe: ProxPipe[Byte, O]): P[O]

Redirects the output to a pipe and folds its output with a monoid instance.

Redirects the output to a pipe and folds its output with a monoid instance.

The process output type will be the same as the pipe's output type. An alias for toFoldMonoid

Type parameters

O

Output type of the pipe. Must have a monoid instance.

Value parameters

pipe

Target pipe

Attributes

Returns

Returns a new process or process group with its output redirected and its output redirection capability removed.

Inherited from:
RedirectableOutput
def >>(path: Path): P[Unit]

Redirects the output to a file natively in append mode

Redirects the output to a file natively in append mode

An alias for appendToFile

Value parameters

path

Target file path

Attributes

Returns

Returns a new process or process group with its output redirected and its output redirection capability removed.

Inherited from:
RedirectableOutput
def >?[O](pipe: ProxPipe[Byte, O]): P[Vector[O]]

Redirects the output to a pipe and collects its output to a vector

Redirects the output to a pipe and collects its output to a vector

The process output type will be a vector of the pipe's output type. An alias for toVector

Type parameters

O

Output type of the pipe

Value parameters

pipe

Target pipe

Attributes

Returns

Returns a new process or process group with its output redirected and its output redirection capability removed.

Inherited from:
RedirectableOutput
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
def appendToFile(path: Path): P[Unit]

Redirects the output to a file natively in append mode

Redirects the output to a file natively in append mode

An alias for &gt;&gt;

Value parameters

path

Target file path

Attributes

Returns

Returns a new process or process group with its output redirected and its output redirection capability removed.

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

Attributes

Definition Classes
Inherited from:
ProcessGroupConfiguration
def drainErrors[O](pipe: ProxPipe[Byte, O]): P[Unit]

Redirects the error outputs to a pipe and drains it regardless of its output type.

Redirects the error outputs to a pipe and drains it regardless of its output type.

The process error output type will be Unit.

Type parameters

O

Output type of the pipe

Value parameters

pipe

Target pipe

Attributes

Returns

Returns a new process group with all the error streams redirected and the error redirection capability removed.

Inherited from:
RedirectableErrors
def drainOutput[O](pipe: ProxPipe[Byte, O]): P[Unit]

Redirects the output to a pipe and drains it regardless of its output type.

Redirects the output to a pipe and drains it regardless of its output type.

The process output type will be Unit.

Type parameters

O

Output type of the pipe

Value parameters

pipe

Target pipe

Attributes

Returns

Returns a new process or process group with its output redirected and its output redirection capability removed.

Inherited from:
RedirectableOutput
def errorsToFoldMonoid[O : ProxMonoid](pipe: ProxPipe[Byte, O]): P[O]

Redirects the error outputs to a pipe and folds its output with a monoid instance.

Redirects the error outputs to a pipe and folds its output with a monoid instance.

The process error output type will be the same as the pipe's output type. An alias for !&gt;#

Type parameters

O

Output type of the pipe. Must have a monoid instance.

Value parameters

pipe

Target pipe

Attributes

Returns

Returns a new process group with all the error streams redirected and the error redirection capability removed.

Inherited from:
RedirectableErrors
def errorsToSink(sink: ProxSink[Byte]): P[Unit]

Redirects the error outputs to a sink.

Redirects the error outputs to a sink.

The process error output type will be Unit. An alias for !&gt;

Value parameters

sink

Target sink

Attributes

Returns

Returns a new process group with all the error streams redirected and the error redirection capability removed.

Inherited from:
RedirectableErrors
def errorsToVector[O](pipe: ProxPipe[Byte, O]): P[Vector[O]]

Redirects the error outputs to a pipe and collects its output to a vector

Redirects the error outputs to a pipe and collects its output to a vector

The process error output type will be a vector of the pipe's output type. An alias for !&gt;?

Type parameters

O

Output type of the pipe

Value parameters

pipe

Target pipe

Attributes

Returns

Returns a new process group with all the error streams redirected and the error redirection capability removed.

Inherited from:
RedirectableErrors
def foldErrors[O, R](pipe: ProxPipe[Byte, O], init: R, fn: (R, O) => R): P[R]

Redirects the error outputs to a pipe and folds it with a custom function.

Redirects the error outputs to a pipe and folds it with a custom function.

The process error output type will be R.

Type parameters

O

Output type of the pipe

R

Result type of the fold

Value parameters

fn

The fold function

init

The initial value for the fold

pipe

Target pipe

Attributes

Returns

Returns a new process group with all the error streams redirected and the error redirection capability removed.

Inherited from:
RedirectableErrors
def foldOutput[O, R](pipe: ProxPipe[Byte, O], init: R, fn: (R, O) => R): P[R]

Redirects the output to a pipe and folds it with a custom function.

Redirects the output to a pipe and folds it with a custom function.

The process output type will be R.

Type parameters

O

Output type of the pipe

R

Result type of the fold

Value parameters

fn

The fold function

init

The initial value for the fold

pipe

Target pipe

Attributes

Returns

Returns a new process or process group with its output redirected and its output redirection capability removed.

Inherited from:
RedirectableOutput
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 productElementNames: Iterator[String]

Attributes

Inherited from:
Product
def productIterator: Iterator[Any]

Attributes

Inherited from:
Product
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

Inherited from:
ProcessGroup
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

Inherited from:
ProcessGroup
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 from:
ProcessGroup
def toFile(path: Path): P[Unit]

Redirects the output to a file natively

Redirects the output to a file natively

An alias for &gt;

Value parameters

path

Target file path

Attributes

Returns

Returns a new process or process group with its output redirected and its output redirection capability removed.

Inherited from:
RedirectableOutput
def toFoldMonoid[O : ProxMonoid](pipe: ProxPipe[Byte, O]): P[O]

Redirects the output to a pipe and folds its output with a monoid instance.

Redirects the output to a pipe and folds its output with a monoid instance.

The process output type will be the same as the pipe's output type. An alias for &gt;#

Type parameters

O

Output type of the pipe. Must have a monoid instance.

Value parameters

pipe

Target pipe

Attributes

Returns

Returns a new process or process group with its output redirected and its output redirection capability removed.

Inherited from:
RedirectableOutput
def toSink(sink: ProxSink[Byte]): P[Unit]

Redirects the output to a sink.

Redirects the output to a sink.

The process output type will be Unit. An alias for &gt;

Value parameters

sink

Target sink

Attributes

Returns

Returns a new process or process group with its output redirected and its output redirection capability removed.

Inherited from:
RedirectableOutput
def toVector[O](pipe: ProxPipe[Byte, O]): P[Vector[O]]

Redirects the output to a pipe and collects its output to a vector

Redirects the output to a pipe and collects its output to a vector

The process output type will be a vector of the pipe's output type. An alias for &gt;?

Type parameters

O

Output type of the pipe

Value parameters

pipe

Target pipe

Attributes

Returns

Returns a new process or process group with its output redirected and its output redirection capability removed.

Inherited from:
RedirectableOutput
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

Inherited fields

A more advanced interface for customizing the redirection per process

A more advanced interface for customizing the redirection per process

Attributes

Inherited from:
RedirectableErrors
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