chunkstore

package
v0.0.0-...-7570391 Latest Latest
Warning

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

Go to latest
Published: Mar 14, 2023 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	NewChunk      = true
	ExistingChunk = false
)
View Source
const (
	ChunkSignatureMagic1 = 0x05 // o t
	ChunkSignatureMagic2 = 0xa6 // a ru

	SignatureLength   = 2
	ChunkHeaderLength = 4096

	MaxChunkPayloadLen = math.MaxInt32
	MaxOrigFilenameLen = 1024

	CurrentFormat             byte = 0x03
	CurrentFrameEncapsulation byte = 0x02
)
View Source
const (
	ContentFramePayloadLength = btncrypt.BtnFrameMaxPayload
)

Variables

View Source
var ChunkSplitSize int64 = 256 * 1024 * 1024 // 256MB
View Source
var (
	ZeroContent = make([]byte, ContentFramePayloadLength)
)

Functions

func NewChunkWriter

func NewChunkWriter(w io.Writer, c *btncrypt.Cipher, h ChunkHeader) (io.WriteCloser, error)

func NewQueryChunkVersion

func NewQueryChunkVersion(c *btncrypt.Cipher) version.QueryFunc

Types

type ChunkHeader

type ChunkHeader struct {
	FrameEncapsulation byte
	PayloadLen         uint32
	PayloadVersion     int64
	OrigFilename       string
	OrigOffset         int64
}

func (*ChunkHeader) ReadFrom

func (h *ChunkHeader) ReadFrom(r io.Reader, c *btncrypt.Cipher) error

func (ChunkHeader) WriteTo

func (h ChunkHeader) WriteTo(w io.Writer, c *btncrypt.Cipher) error

type ChunkIO

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

ChunkIO provides RandomAccessIO for blobchunk

func NewChunkIO

func NewChunkIO(bh blobstore.BlobHandle, c *btncrypt.Cipher) *ChunkIO

func NewChunkIOWithMetadata

func NewChunkIOWithMetadata(bh blobstore.BlobHandle, c *btncrypt.Cipher, h ChunkHeader) *ChunkIO

func (*ChunkIO) Close

func (ch *ChunkIO) Close() error

func (*ChunkIO) Header

func (ch *ChunkIO) Header() ChunkHeader

func (*ChunkIO) PRead

func (ch *ChunkIO) PRead(p []byte, offset int64) error

func (*ChunkIO) PWrite

func (ch *ChunkIO) PWrite(p []byte, offset int64) error

func (*ChunkIO) PayloadLen

func (ch *ChunkIO) PayloadLen() int

func (*ChunkIO) Size

func (ch *ChunkIO) Size() int64

func (*ChunkIO) Sync

func (ch *ChunkIO) Sync() error

func (*ChunkIO) Truncate

func (ch *ChunkIO) Truncate(size int64) error

type ChunkLenUpdatedType

type ChunkLenUpdatedType bool
const (
	ChunkLenNotUpdated ChunkLenUpdatedType = false
	ChunkLenUpdated    ChunkLenUpdatedType = true
)

type ChunkReader

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

func NewChunkReader

func NewChunkReader(r io.Reader, c *btncrypt.Cipher) (*ChunkReader, error)

func (*ChunkReader) Close

func (cr *ChunkReader) Close() error

func (*ChunkReader) Header

func (cr *ChunkReader) Header() ChunkHeader

func (*ChunkReader) Length

func (cr *ChunkReader) Length() int

Length returns length of content.

func (*ChunkReader) Read

func (cr *ChunkReader) Read(p []byte) (int, error)

type ChunkedFileIO

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

func (*ChunkedFileIO) Close

func (cfio *ChunkedFileIO) Close() error

func (*ChunkedFileIO) OverrideNewChunkIOForTesting

func (cfio *ChunkedFileIO) OverrideNewChunkIOForTesting(newChunkIO func(blobstore.BlobHandle, *btncrypt.Cipher, int64) blobstore.BlobHandle)

func (*ChunkedFileIO) PWrite

func (cfio *ChunkedFileIO) PWrite(p []byte, offset int64) error

func (*ChunkedFileIO) ReadAt

func (cfio *ChunkedFileIO) ReadAt(p []byte, offset int64) (int, error)

func (*ChunkedFileIO) SetOrigFilename

func (cfio *ChunkedFileIO) SetOrigFilename(name string)

func (*ChunkedFileIO) Size

func (cfio *ChunkedFileIO) Size() int64

func (*ChunkedFileIO) Truncate

func (cfio *ChunkedFileIO) Truncate(size int64) error

type ChunksArrayIO

type ChunksArrayIO interface {
	Read() ([]inodedb.FileChunk, error)
	Write(cs []inodedb.FileChunk) error
}

type SimpleDBChunksArrayIO

type SimpleDBChunksArrayIO struct {
	Cs []inodedb.FileChunk
}

func NewSimpleDBChunksArrayIO

func NewSimpleDBChunksArrayIO() *SimpleDBChunksArrayIO

func (*SimpleDBChunksArrayIO) Close

func (caio *SimpleDBChunksArrayIO) Close() error

func (*SimpleDBChunksArrayIO) Read

func (caio *SimpleDBChunksArrayIO) Read() ([]inodedb.FileChunk, error)

func (*SimpleDBChunksArrayIO) Write

func (caio *SimpleDBChunksArrayIO) Write(cs []inodedb.FileChunk) error

Jump to

Keyboard shortcuts

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