storage

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Jul 1, 2022 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package storage provides implementation contracts and notions used across storage-aware components in aurora.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNotFound        = errors.New("storage: not found")
	ErrInvalidChunk    = errors.New("storage: invalid chunk")
	ErrReferenceLength = errors.New("invalid reference length")
)

Functions

This section is empty.

Types

type Descriptor

type Descriptor struct {
	Address boson.Address
	BinID   uint64
}

Descriptor holds information required for Pull syncing. This struct is provided by subscribing to pull index.

func (*Descriptor) String

func (d *Descriptor) String() string

type Getter

type Getter interface {
	Get(ctx context.Context, mode ModeGet, addr boson.Address, index int64) (ch boson.Chunk, err error)
}

type Hasser

type Hasser interface {
	Has(ctx context.Context, hasMode ModeHas, addr boson.Address) (yes bool, err error)
	HasMulti(ctx context.Context, hasMode ModeHas, addrs ...boson.Address) (yes []bool, err error)
}

type ModeGet

type ModeGet int

ModeGet enumerates different Getter modes.

const (
	// ModeGetRequest: when accessed for retrieval
	ModeGetRequest ModeGet = iota
	// ModeGetSync: when accessed for syncing or proof of custody request
	ModeGetSync
	// ModeGetLookup: when accessed to lookup a a chunk in feeds or other places
	ModeGetLookup
	// ModeGetPin: used when a pinned chunk is accessed
	ModeGetPin
	ModeGetChain
)

Getter modes.

func (ModeGet) String

func (m ModeGet) String() string

type ModeHas

type ModeHas int
const (
	// ModeHasPin: when checked for pin files
	ModeHasPin ModeHas = iota
	// ModeHasChunk: when checked for chunk data
	ModeHasChunk
)

Hasser modes.

type ModePut

type ModePut int

ModePut enumerates different Putter modes.

const (
	// ModePutRequest: when a chunk is received as a result of retrieve request and delivery
	ModePutRequest ModePut = iota
	// ModePutUpload: when a chunk is created by local upload
	ModePutUpload
	// ModePutUploadPin: the same as ModePutUpload but also pin the chunk atomically with the put
	ModePutUploadPin
	// ModePutRequestPin: the same as ModePutRequest but also pin the chunk with the put
	ModePutRequestPin

	ModePutChain
)

Putter modes.

func (ModePut) String

func (m ModePut) String() string

type ModeSet

type ModeSet int

ModeSet enumerates different Setter modes.

const (
	// ModeSetSync: when a push sync receipt is received for a chunk
	ModeSetSync ModeSet = iota
	// ModeSetRemove: when a chunk is removed
	ModeSetRemove
	// ModeSetPin: when a chunk is pinned during upload or separately
	ModeSetPin
	// ModeSetUnpin: when a chunk is unpinned using a command locally
	ModeSetUnpin
)

Setter modes.

func (ModeSet) String

func (m ModeSet) String() string

type Putter

type Putter interface {
	Put(ctx context.Context, mode ModePut, chs ...boson.Chunk) (exist []bool, err error)
}

type Setter

type Setter interface {
	Set(ctx context.Context, mode ModeSet, addrs ...boson.Address) (err error)
}

type StateIterFunc

type StateIterFunc func(key, value []byte) (stop bool, err error)

StateIterFunc is used when iterating through StateStorer key/value pairs

type StateStorer

type StateStorer interface {
	Get(key string, i interface{}) (err error)
	Put(key string, i interface{}) (err error)
	Delete(key string) (err error)
	Iterate(prefix string, iterFunc StateIterFunc) (err error)
	// DB returns the underlying DB storage.
	DB() driver.BatchDB
	io.Closer
}

StateStorer defines methods required to get, set, delete values for different keys and close the underlying resources.

type Storer

type Storer interface {
	Getter
	Putter
	GetMulti(ctx context.Context, mode ModeGet, addrs ...boson.Address) (ch []boson.Chunk, err error)
	Hasser
	Setter
	io.Closer
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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