Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrClosedPipe = errors.New("bufpipe: read/write on closed pipe")
ErrClosedPipe is the error used for read or write operations on a closed pipe.
Functions ¶
func ConnPipe ¶
ConnPipe creates an asynchronous, in-memory, full duplex network connection; both ends implement the Conn interface. Reads on one end are matched with writes on the other
func NewBufPipe ¶
func NewBufPipe(maxSize int) (*PipeReader, *PipeWriter)
NewBufPipe creates an async pipe using buf as its initial contents. It can be used to connect code expecting an io.Reader with code expecting an io.Writer.
It is safe to call Read and Write in parallel with each other or with Close. Parallel calls to Read and parallel calls to Write are also safe: the individual calls will be gated sequentially.
Types ¶
type PipeReader ¶
type PipeReader struct {
// contains filtered or unexported fields
}
A PipeReader is the read half of a pipe.
func (*PipeReader) Close ¶
func (r *PipeReader) Close() error
Close closes the reader; subsequent writes from the write half of the pipe will return error ErrClosedPipe.
func (*PipeReader) CloseWithError ¶
func (r *PipeReader) CloseWithError(err error) error
CloseWithError closes the reader; subsequent writes to the write half of the pipe will return the error err.
func (*PipeReader) Read ¶
func (r *PipeReader) Read(data []byte) (int, error)
Read implements the standard Read interface: it reads data from the pipe, reading from the internal buffer, otherwise blocking until a writer arrives or the write end is closed. If the write end is closed with an error, that error is returned as err; otherwise err is io.EOF.
type PipeWriter ¶
type PipeWriter struct {
// contains filtered or unexported fields
}
A PipeWriter is the write half of a pipe.
func (*PipeWriter) Close ¶
func (w *PipeWriter) Close() error
Close closes the writer; subsequent reads from the read half of the pipe will return io.EOF once the internal buffer get empty.
func (*PipeWriter) CloseWithError ¶
func (w *PipeWriter) CloseWithError(err error) error
CloseWithError closes the writer; subsequent reads from the read half of the pipe will return err once the internal buffer get empty.