Documentation ¶
Overview ¶
Package readahead will do asynchronous read-ahead from an input io.Reader and make the data available as an io.Reader.
This should be fully transparent, except that once an error has been returned from the Reader, it will not recover.
The readahead object also fulfills the io.WriterTo interface, which is likely to speed up copies.
Package home: https://github.com/klauspost/readahead
Index ¶
- Constants
- func NewReadCloser(rd io.ReadCloser) io.ReadCloser
- func NewReadCloserBuffer(rc io.ReadCloser, buffers [][]byte) (res io.ReadCloser, err error)
- func NewReadCloserSize(rc io.ReadCloser, buffers, size int) (res io.ReadCloser, err error)
- func NewReader(rd io.Reader) io.ReadCloser
- func NewReaderBuffer(rd io.Reader, buffers [][]byte) (res io.ReadCloser, err error)
- func NewReaderSize(rd io.Reader, buffers, size int) (res io.ReadCloser, err error)
- type ReadSeekCloser
- func NewReadSeekCloser(rd ReadSeekCloser) ReadSeekCloser
- func NewReadSeekCloserBuffer(rd ReadSeekCloser, buffers [][]byte) (res ReadSeekCloser, err error)
- func NewReadSeekCloserSize(rd ReadSeekCloser, buffers, size int) (res ReadSeekCloser, err error)
- func NewReadSeeker(rd io.ReadSeeker) ReadSeekCloser
- func NewReadSeekerSize(rd io.ReadSeeker, buffers, size int) (res ReadSeekCloser, err error)
Constants ¶
const ( // DefaultBuffers is the default number of buffers used. DefaultBuffers = 4 // DefaultBufferSize is the default buffer size, 1 MB. DefaultBufferSize = 1 << 20 )
Variables ¶
This section is empty.
Functions ¶
func NewReadCloser ¶ added in v1.14.0
func NewReadCloser(rd io.ReadCloser) io.ReadCloser
NewReadCloser returns a reader that will asynchronously read from the supplied reader into 4 buffers of 1MB each.
It will start reading from the input at once, maybe even before this function has returned.
The input can be read from the returned reader. When done use Close() to release the buffers, which will also close the supplied closer. If a reader supporting the io.Seeker is given, the returned reader will also support it.
func NewReadCloserBuffer ¶ added in v1.14.0
func NewReadCloserBuffer(rc io.ReadCloser, buffers [][]byte) (res io.ReadCloser, err error)
NewReadCloserBuffer returns a reader with a custom number of buffers and size. All buffers must be the same size. Buffers can be reused after Close has been called.
func NewReadCloserSize ¶ added in v1.14.0
func NewReadCloserSize(rc io.ReadCloser, buffers, size int) (res io.ReadCloser, err error)
NewReadCloserSize returns a reader with a custom number of buffers and size. buffers is the number of queued buffers and size is the size of each buffer in bytes.
func NewReader ¶ added in v1.14.0
func NewReader(rd io.Reader) io.ReadCloser
NewReader returns a reader that will asynchronously read from the supplied reader into 4 buffers of 1MB each.
It will start reading from the input at once, maybe even before this function has returned.
The input can be read from the returned reader. When done use Close() to release the buffers. If a reader supporting the io.Seeker is given, the returned reader will also support it.
func NewReaderBuffer ¶ added in v1.14.0
NewReaderBuffer returns a reader with a custom number of buffers and size. All buffers must be the same size. Buffers can be reused after Close has been called.
func NewReaderSize ¶
NewReaderSize returns a reader with a custom number of buffers and size. buffers is the number of queued buffers and size is the size of each buffer in bytes.
Types ¶
type ReadSeekCloser ¶
type ReadSeekCloser interface { io.ReadCloser io.Seeker }
func NewReadSeekCloser ¶ added in v1.14.0
func NewReadSeekCloser(rd ReadSeekCloser) ReadSeekCloser
NewReadSeekCloser returns a reader that will asynchronously read from the supplied reader into 4 buffers of 1MB each.
It will start reading from the input at once, maybe even before this function has returned.
The input can be read and seeked from the returned reader. When done use Close() to release the buffers, which will also close the supplied closer.
func NewReadSeekCloserBuffer ¶ added in v1.14.0
func NewReadSeekCloserBuffer(rd ReadSeekCloser, buffers [][]byte) (res ReadSeekCloser, err error)
NewReadSeekCloserBuffer returns a reader with a custom number of buffers and size. All buffers must be the same size. Buffers can be reused after Close has been called.
func NewReadSeekCloserSize ¶ added in v1.14.0
func NewReadSeekCloserSize(rd ReadSeekCloser, buffers, size int) (res ReadSeekCloser, err error)
NewReadSeekCloserSize returns a reader with a custom number of buffers and size. buffers is the number of queued buffers and size is the size of each buffer in bytes.
func NewReadSeeker ¶ added in v1.14.0
func NewReadSeeker(rd io.ReadSeeker) ReadSeekCloser
NewReadSeeker returns a reader that will asynchronously read from the supplied reader into 4 buffers of 1MB each.
It will start reading from the input at once, maybe even before this function has returned.
The input can be read and seeked from the returned reader. When done use Close() to release the buffers.
func NewReadSeekerSize ¶ added in v1.14.0
func NewReadSeekerSize(rd io.ReadSeeker, buffers, size int) (res ReadSeekCloser, err error)
NewReadSeekerSize returns a reader with a custom number of buffers and size. buffers is the number of queued buffers and size is the size of each buffer in bytes.