docker: Index | Files

package ioutils

import ""


Package Files

buffer.go bytespipe.go fswriters.go readers.go temp_unix.go writeflusher.go writers.go


var (
    // ErrClosed is returned when Write is called on a closed BytesPipe.
    ErrClosed = errors.New("write to closed BytesPipe")

func AtomicWriteFile Uses

func AtomicWriteFile(filename string, data []byte, perm os.FileMode) error

AtomicWriteFile atomically writes data to a file named by filename.

func HashData Uses

func HashData(src io.Reader) (string, error)

HashData returns the sha256 sum of src.

func NewAtomicFileWriter Uses

func NewAtomicFileWriter(filename string, perm os.FileMode) (io.WriteCloser, error)

NewAtomicFileWriter returns WriteCloser so that writing to it writes to a temporary file and closing it atomically changes the temporary file to destination path. Writing and closing concurrently is not allowed.

func NewCancelReadCloser Uses

func NewCancelReadCloser(ctx context.Context, in io.ReadCloser) io.ReadCloser

NewCancelReadCloser creates a wrapper that closes the ReadCloser when the context is cancelled. The returned io.ReadCloser must be closed when it is no longer needed.

func NewReadCloserWrapper Uses

func NewReadCloserWrapper(r io.Reader, closer func() error) io.ReadCloser

NewReadCloserWrapper returns a new io.ReadCloser.

func NewReaderErrWrapper Uses

func NewReaderErrWrapper(r io.Reader, closer func()) io.Reader

NewReaderErrWrapper returns a new io.Reader.

func NewWriteCloserWrapper Uses

func NewWriteCloserWrapper(r io.Writer, closer func() error) io.WriteCloser

NewWriteCloserWrapper returns a new io.WriteCloser.

func NopWriteCloser Uses

func NopWriteCloser(w io.Writer) io.WriteCloser

NopWriteCloser returns a nopWriteCloser.

func TempDir Uses

func TempDir(dir, prefix string) (string, error)

TempDir on Unix systems is equivalent to ioutil.TempDir.

type AtomicWriteSet Uses

type AtomicWriteSet struct {
    // contains filtered or unexported fields

AtomicWriteSet is used to atomically write a set of files and ensure they are visible at the same time. Must be committed to a new directory.

func NewAtomicWriteSet Uses

func NewAtomicWriteSet(tmpDir string) (*AtomicWriteSet, error)

NewAtomicWriteSet creates a new atomic write set to atomically create a set of files. The given directory is used as the base directory for storing files before commit. If no temporary directory is given the system default is used.

func (*AtomicWriteSet) Cancel Uses

func (ws *AtomicWriteSet) Cancel() error

Cancel cancels the set and removes all temporary data created in the set.

func (*AtomicWriteSet) Commit Uses

func (ws *AtomicWriteSet) Commit(target string) error

Commit moves all created files to the target directory. The target directory must not exist and the parent of the target directory must exist.

func (*AtomicWriteSet) FileWriter Uses

func (ws *AtomicWriteSet) FileWriter(name string, flag int, perm os.FileMode) (io.WriteCloser, error)

FileWriter opens a file writer inside the set. The file should be synced and closed before calling commit.

func (*AtomicWriteSet) String Uses

func (ws *AtomicWriteSet) String() string

String returns the location the set is writing to.

func (*AtomicWriteSet) WriteFile Uses

func (ws *AtomicWriteSet) WriteFile(filename string, data []byte, perm os.FileMode) error

WriteFile writes a file to the set, guaranteeing the file has been synced.

type BytesPipe Uses

type BytesPipe struct {
    // contains filtered or unexported fields

BytesPipe is io.ReadWriteCloser which works similarly to pipe(queue). All written data may be read at most once. Also, BytesPipe allocates and releases new byte slices to adjust to current needs, so the buffer won't be overgrown after peak loads.

func NewBytesPipe Uses

func NewBytesPipe() *BytesPipe

NewBytesPipe creates new BytesPipe, initialized by specified slice. If buf is nil, then it will be initialized with slice which cap is 64. buf will be adjusted in a way that len(buf) == 0, cap(buf) == cap(buf).

func (*BytesPipe) Close Uses

func (bp *BytesPipe) Close() error

Close causes further reads from a BytesPipe to return immediately.

func (*BytesPipe) CloseWithError Uses

func (bp *BytesPipe) CloseWithError(err error) error

CloseWithError causes further reads from a BytesPipe to return immediately.

func (*BytesPipe) Read Uses

func (bp *BytesPipe) Read(p []byte) (n int, err error)

Read reads bytes from BytesPipe. Data could be read only once.

func (*BytesPipe) Write Uses

func (bp *BytesPipe) Write(p []byte) (int, error)

Write writes p to BytesPipe. It can allocate new []byte slices in a process of writing.

type NopFlusher Uses

type NopFlusher struct{}

NopFlusher represents a type which flush operation is nop.

func (*NopFlusher) Flush Uses

func (f *NopFlusher) Flush()

Flush is a nop operation.

type NopWriter Uses

type NopWriter struct{}

NopWriter represents a type which write operation is nop.

func (*NopWriter) Write Uses

func (*NopWriter) Write(buf []byte) (int, error)

type OnEOFReader Uses

type OnEOFReader struct {
    Rc  io.ReadCloser
    Fn  func()

OnEOFReader wraps an io.ReadCloser and a function the function will run at the end of file or close the file.

func (*OnEOFReader) Close Uses

func (r *OnEOFReader) Close() error

Close closes the file and run the function.

func (*OnEOFReader) Read Uses

func (r *OnEOFReader) Read(p []byte) (n int, err error)

type ReadCloserWrapper Uses

type ReadCloserWrapper struct {
    // contains filtered or unexported fields

ReadCloserWrapper wraps an io.Reader, and implements an io.ReadCloser It calls the given callback function when closed. It should be constructed with NewReadCloserWrapper

func (*ReadCloserWrapper) Close Uses

func (r *ReadCloserWrapper) Close() error

Close calls back the passed closer function

type WriteCounter Uses

type WriteCounter struct {
    Count  int64
    Writer io.Writer

WriteCounter wraps a concrete io.Writer and hold a count of the number of bytes written to the writer during a "session". This can be convenient when write return is masked (e.g., json.Encoder.Encode())

func NewWriteCounter Uses

func NewWriteCounter(w io.Writer) *WriteCounter

NewWriteCounter returns a new WriteCounter.

func (*WriteCounter) Write Uses

func (wc *WriteCounter) Write(p []byte) (count int, err error)

type WriteFlusher Uses

type WriteFlusher struct {
    // contains filtered or unexported fields

WriteFlusher wraps the Write and Flush operation ensuring that every write is a flush. In addition, the Close method can be called to intercept Read/Write calls if the targets lifecycle has already ended.

func NewWriteFlusher Uses

func NewWriteFlusher(w io.Writer) *WriteFlusher

NewWriteFlusher returns a new WriteFlusher.

func (*WriteFlusher) Close Uses

func (wf *WriteFlusher) Close() error

Close closes the write flusher, disallowing any further writes to the target. After the flusher is closed, all calls to write or flush will result in an error.

func (*WriteFlusher) Flush Uses

func (wf *WriteFlusher) Flush()

Flush the stream immediately.

func (*WriteFlusher) Flushed Uses

func (wf *WriteFlusher) Flushed() bool

Flushed returns the state of flushed. If it's flushed, return true, or else it return false.

func (*WriteFlusher) Write Uses

func (wf *WriteFlusher) Write(b []byte) (n int, err error)


Remove this method. Its use is inherently racy. Seems to be used to detect whether or a response code has been issued or not. Another hook should be used instead.

Package ioutils imports 9 packages (graph) and is imported by 13049 packages. Updated 2020-02-18. Refresh now. Tools for package owners.