Create a new ThreadPipe with the given buffer size.
Implements IConduit.bufferSize.
Implements InputStream.clear().
This does nothing because we have no clue whether the members have been collected, and detach is run in the destructor. To stop communications, use stop().
Returns true if there is data left to be read, and the write end isn't closed.
Implements InputStream.read.
Return the number of bytes remaining to be read in the circular buffer.
Close the write end of the conduit. Writing to the conduit after it is closed will return Eof.
Implements IConduit.toString
Return the number of bytes that can be written to the circular buffer.
Implements OutputStream.write.
Clean up when collected. See method detach().
Return the name of this conduit.
Return a preferred size for buffering conduit I/O.
Read from conduit into a target array. The provided dst will be populated with content from the conduit.
Write to conduit from a source array. The provided src content will be written to the conduit.
Disconnect this conduit. Note that this may be invoked both explicitly by the user, and implicitly by the GC. Be sure to manage multiple detachment requests correctly: set a flag, or sentinel value as necessary.
Set the active timeout period for IO calls (in milliseconds.)
Get the active timeout period for IO calls (in milliseconds.)
Is the conduit alive? Default behaviour returns true.
Return the host. This is part of the Stream interface.
Emit buffered output or reset buffered input.
Close this conduit.
Throw an IOException, with the provided message.
Return the input stream.
Return the output stream.
Emit fixed-length content from 'src' into this conduit, throwing an IOException upon Eof.
Consume fixed-length content into 'dst' from this conduit, throwing an IOException upon Eof.
Rewind to beginning of file.
Transfer the content of another conduit to this one. Returns the dst OutputStream, or throws IOException on failure.
Seek on this stream. Source conduits that don't support seeking will throw an IOException.
Load text from a stream, and return them all in an array.
Load the bits from a stream, and return them all in an array. The dst array can be provided as an option, which will be expanded as necessary to consume the input.
Load the bits from a stream, and return them all in an array. The dst array can be provided as an option, which will be expanded as necessary to consume input.
Emit fixed-length content from 'src' into 'output', throwing an IOException upon Eof.
Consume fixed-length content into 'dst' from 'input', throwing an IOException upon Eof.
Low-level data transfer, where max represents the maximum number of bytes to transfer.
Conduit to support a data stream between 2 threads. One creates a ThreadPipe, then uses the OutputStream and the InputStream from it to communicate. All traffic is automatically synchronized, so one just uses the streams like they were normal device streams.
It works by maintaining a circular buffer, where data is written to, and read from, in a FIFO fashion.