chunks

package
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 30, 2024 License: Apache-2.0 Imports: 10 Imported by: 13

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidOffset    = errors.New("invalid offset")
	ErrInvalidReadSize  = errors.New("invalid read size")
	ErrInvalidWriteSize = errors.New("invalid write size")
)

Functions

func TestArbitraryReadWriterAtGeneric

func TestArbitraryReadWriterAtGeneric(
	t *testing.T,
	getArbitraryReadWriterAt func(chunkSize, chunkCount int64) (ReadWriterAt, func() error, error),
	configurations []ReadWriteConfiguration,
)

func TestChunkedReadWriterAtGeneric

func TestChunkedReadWriterAtGeneric(
	t *testing.T,
	getReadWriterAt func(chunkSize, chunkCount int64) (ReadWriterAt, func() error, error),
	validChunkSizes,
	validChunkCounts []int64,
)

Types

type ArbitraryReadWriterAt

type ArbitraryReadWriterAt struct {
	// contains filtered or unexported fields
}

func NewArbitraryReadWriterAt

func NewArbitraryReadWriterAt(backend ReadWriterAt, chunkSize int64) *ArbitraryReadWriterAt

func (*ArbitraryReadWriterAt) ReadAt

func (a *ArbitraryReadWriterAt) ReadAt(p []byte, off int64) (n int, err error)

func (*ArbitraryReadWriterAt) WriteAt

func (a *ArbitraryReadWriterAt) WriteAt(p []byte, off int64) (n int, err error)

type ChunkedReadWriterAt

type ChunkedReadWriterAt struct {
	// contains filtered or unexported fields
}

func NewChunkedReadWriterAt

func NewChunkedReadWriterAt(backend ReadWriterAt, chunkSize, chunks int64) *ChunkedReadWriterAt

func (*ChunkedReadWriterAt) ReadAt

func (c *ChunkedReadWriterAt) ReadAt(p []byte, off int64) (n int, err error)

func (*ChunkedReadWriterAt) WriteAt

func (c *ChunkedReadWriterAt) WriteAt(p []byte, off int64) (n int, err error)

type LockableReadWriterAt

type LockableReadWriterAt struct {
	// contains filtered or unexported fields
}

func NewLockableReadWriterAt

func NewLockableReadWriterAt(backend ReadWriterAt) *LockableReadWriterAt

func (*LockableReadWriterAt) Lock

func (a *LockableReadWriterAt) Lock()

func (*LockableReadWriterAt) ReadAt

func (a *LockableReadWriterAt) ReadAt(p []byte, off int64) (n int, err error)

func (*LockableReadWriterAt) Unlock

func (a *LockableReadWriterAt) Unlock()

func (*LockableReadWriterAt) WriteAt

func (a *LockableReadWriterAt) WriteAt(p []byte, off int64) (n int, err error)

type Puller

type Puller struct {
	// contains filtered or unexported fields
}

func NewPuller

func NewPuller(
	ctx context.Context,
	backend io.ReaderAt,
	chunkSize, chunks int64,
	pullPriority func(off int64) int64,
) *Puller

func (*Puller) Close

func (p *Puller) Close() error

func (*Puller) Finalize

func (p *Puller) Finalize(dirtyOffsets []int64)

func (*Puller) Open

func (p *Puller) Open(workers int64) error

func (*Puller) Wait

func (p *Puller) Wait() error

type Pusher

type Pusher struct {
	// contains filtered or unexported fields
}

func NewPusher

func NewPusher(
	ctx context.Context,
	local, remote ReadWriterAt,
	chunkSize int64,
	pushInterval time.Duration,
) *Pusher

func (*Pusher) Close

func (p *Pusher) Close() error

func (*Pusher) MarkOffsetPushable

func (p *Pusher) MarkOffsetPushable(off int64) error

func (*Pusher) Open

func (p *Pusher) Open(workers int64) error

func (*Pusher) ReadAt

func (p *Pusher) ReadAt(b []byte, off int64) (n int, err error)

func (*Pusher) Sync

func (p *Pusher) Sync() (int, error)

func (*Pusher) Wait

func (p *Pusher) Wait() error

func (*Pusher) WriteAt

func (p *Pusher) WriteAt(b []byte, off int64) (n int, err error)

type ReadWriteConfiguration

type ReadWriteConfiguration struct {
	ChunkSizes  []int64
	ChunkCount  int64
	BufferSizes []int64
}

type ReadWriterAt

type ReadWriterAt interface {
	io.ReaderAt
	io.WriterAt
}

type SyncedReadWriterAt

type SyncedReadWriterAt struct {
	// contains filtered or unexported fields
}

func NewSyncedReadWriterAt

func NewSyncedReadWriterAt(remote io.ReaderAt, local ReadWriterAt, onChunkIsLocal func(off int64) error) *SyncedReadWriterAt

func (*SyncedReadWriterAt) MarkAsRemote

func (c *SyncedReadWriterAt) MarkAsRemote(dirtyOffsets []int64)

func (*SyncedReadWriterAt) ReadAt

func (c *SyncedReadWriterAt) ReadAt(p []byte, off int64) (n int, err error)

func (*SyncedReadWriterAt) WriteAt

func (c *SyncedReadWriterAt) WriteAt(p []byte, off int64) (n int, err error)

type TrackingReadWriterAt

type TrackingReadWriterAt struct {
	// contains filtered or unexported fields
}

func NewTrackingReadWriterAt

func NewTrackingReadWriterAt(backend ReadWriterAt) *TrackingReadWriterAt

func (*TrackingReadWriterAt) ReadAt

func (c *TrackingReadWriterAt) ReadAt(p []byte, off int64) (n int, err error)

func (*TrackingReadWriterAt) Sync

func (c *TrackingReadWriterAt) Sync() []int64

func (*TrackingReadWriterAt) Track

func (c *TrackingReadWriterAt) Track()

func (*TrackingReadWriterAt) WriteAt

func (c *TrackingReadWriterAt) WriteAt(p []byte, off int64) (n int, err error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL