Process encapsulates an operating system process and its ability to be communicated with via stdio i.e.
A buffering sink.
A buffering sink. The present implementation is quite limited in that the buffer can grow indefinitely.
A source of data that simply forwards on to the receiver.
A source of data given an input stream.
A source of data given an input stream. Flow control is implemented and for each ByteString event received by the receiver, an Ack is expected in return. At the end of the source, a Done event will be sent to the receiver and its associated input stream is closed.
A sink of data given an output stream.
A target to stream bytes to.
A target to stream bytes to. Flow control is provided i.e. every message of bytes sent is acknowledged with an Ack. A Done event is expected when there is no more data to be written.
Forwards messages on to a Source in a blocking manner conforming to the JDK OutputStream.
A holder of data received and forwarded on to a receiver with flow control.
A holder of data received and forwarded on to a receiver with flow control. There is only one sender expected and that sender should not send again until an Ack from the previous send.
Reads from a sink in a blocking manner conforming to the JDK InputStream
Declares the types of event that are involved with streaming.
Process encapsulates an operating system process and its ability to be communicated with via stdio i.e. stdin, stdout and stderr. The sink for stdin and the sources for stdout and stderr are communicated in a Started event upon the actor being established. The receiving actor (passed in as a constructor arg) is then subsequently sent stdout and stderr events. When there are no more stdout or stderr events then the process's exit code is communicated to the receiver as an int value. The exit code will always be the last event communicated by the process unless the process is a detached one.
The actor is expected to be associated with a blocking dispatcher as various calls are made to input and output streams which can block.