package stdcopy

import "github.com/docker/docker/pkg/stdcopy"

Index

Constants

const (
	StdWriterPrefixLen = 8
	StdWriterFdIndex   = 0
	StdWriterSizeIndex = 4
)

Variables

var ErrInvalidStdHeader = errors.New("Unrecognized input header")

Functions

func StdCopy

func StdCopy(dstout, dsterr io.Writer, src io.Reader) (written int64, err error)

StdCopy is a modified version of io.Copy.

StdCopy will demultiplex `src`, assuming that it contains two streams, previously multiplexed together using a StdWriter instance. As it reads from `src`, StdCopy will write to `dstout` and `dsterr`.

StdCopy will read until it hits EOF on `src`. It will then return a nil error. In other words: if `err` is non nil, it indicates a real underlying error.

`written` will hold the total number of bytes written to `dstout` and `dsterr`.

Types

type StdType

type StdType [StdWriterPrefixLen]byte
var (
	Stdin  StdType = StdType{0: 0}
	Stdout StdType = StdType{0: 1}
	Stderr StdType = StdType{0: 2}
)

type StdWriter

type StdWriter struct {
	io.Writer
	// contains filtered or unexported fields
}

func NewStdWriter

func NewStdWriter(w io.Writer, t StdType) *StdWriter

NewStdWriter instanciates a new Writer. Everything written to it will be encapsulated using a custom format, and written to the underlying `w` stream. This allows multiple write streams (e.g. stdout and stderr) to be muxed into a single connection. `t` indicates the id of the stream to encapsulate. It can be utils.Stdin, utils.Stdout, utils.Stderr.

func (*StdWriter) Write

func (w *StdWriter) Write(buf []byte) (n int, err error)

Source Files

stdcopy.go

Version
v1.6.0-rc5
Published
Apr 6, 2015
Platform
js/wasm
Imports
4 packages
Last checked
3 minutes ago

Tools for package owners.