OsWritePipeStream
Description
A write pipe stream is a pipe stream that writes data to the writer side of the os pipe. This stream is used to stream data to a process via pipes and writes data in a blocking fashion.
Auto Flush
All write pipe streams support the concept of 'auto-flush' which is a policy to ensure data is flushed immediately to the os pipe and not queue it up in the smalltalk buffer. Users should not set that directly in <OsWritePipeStream>, but rather from #autoFlush methods or setting the OsProcessStarter>>tuneForInteractive policy.
Blocking API
This stream conforms to the majority of the smalltalk stream apis. Most of these will be considered blocking operations meaning that these methods can block the calling process. @see the methods in category IPC-API (Blocking)
Class Methods
None
Instance Methods
<details> autoFlush
<pre><code> Answer true if this buffer will flush to the underlying os pipe after every write
Answers:
<Boolean>
</code></pre> </details>
<details> autoFlush:
<pre><code> Sets a boolean indicating if the pipeBuffer will flush to the underlying os pipe after every call to write
Arguments:
aBoolean - <Boolean>
</code></pre> </details>
<details> cr
  Write out a newline
</details>
<details> flush
  Flush all the data in the pipeBuffer to the underlying os pipe.
     This will block if the os pipe is full
</details>
<details> flush:
<pre><code> Perform the actions of @aBlock followed by a flush to the subprocess stdin. autoFlush is disabled during this call to give the user a chance to override the normal 'autoFlush on every write' behavior. The autoFlush setting will be restored after this call.
This call can be useful for interactive contexts when communication with
a subprocess stdin should be very well controlled.

Arguments:
aBlock - 1-arg block passing in this stream
Answers:
<OsWritePipeStream> self
</code></pre> </details>
<details> next:put:
<pre><code> Store argument @aByteOrChar @anInteger number of times. If @anInteger < 1, then do not store any instances of @aByteOrChar Fail if @anInteger is not a kind of Integer
Answers:
<Integer | Character> the input byte or char
</code></pre> </details>
<details> nextPut:
<pre><code> Write @aByteOrChar to the pipe
Arguments:
aByteOrChar - <Integer | Character>
Answers:
<Integer | Character> byte or char
</code></pre> </details>
<details> nextPutAll:
<pre><code> Write each element of @aByteCollection to the pipe
Arguments:
aByteCollection - <ByteArray>
Answers:
<ByteArray> - aByteCollection
</code></pre> </details>
<details> nextPutAll:size:
<pre><code> Write @size elements from @aByteCollection beginning at 1 to the pipe
Arguments:
aByteCollection - <ByteArray>
</code></pre> </details>
<details> nextPutAll:startingAt:size:
<pre><code> Attempt to write @size bytes from the @aByteCollection starting at the 1-based @startingIndex to the pipe
Arguments:
aByteCollection - <String | ByteArray> byte collection to write from
startingIndex - <SmallInteger> 1-based offset from @aByteCollection
size - <SmallInteger> number of bytes to attempt to write
Raises:
<OsProcessException>
</code></pre> </details>
<details> nextPutLine:
<pre><code> Write each element of @aByteCollection to the pipe followed by a line delimiter
Arguments:
aByteCollection - <ByteArray>
</code></pre> </details>
<details> rawCr
  Store the CR (carriage return) character as the next object in the
     receiver.  Answer self.  Set the receiver's position reference to
     be immediately after the CR character.
</details>
<details> rawCrLf
  Store the CrLf line delimiter as the next object in the
     receiver.  Answer self.  Set the receiver's position reference to
     be immediately after the CrLf character.
</details>
<details> rawLf
  Store the LF (line feed) character as the next object in the
     receiver.  Answer self.  Set the receiver's position reference to
     be immediately after the CF character.
</details>
<details> space
  Append a space to the output stream
</details>
<details> tab
  Append a tab to the output stream
</details>
Last modified date: 07/07/2022