atomic

package
v0.99.99-test-ignore Latest Latest
Warning

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

Go to latest
Published: Mar 30, 2021 License: BSD-3-Clause Imports: 12 Imported by: 58

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func WriteAll

func WriteAll(baseBatch database.Batch, batches ...database.Batch) error

WriteAll assumes all batches have the same underlying database. Batches should not be modified after being passed to this function.

Types

type Element added in v0.8.0

type Element struct {
	Key    []byte
	Value  []byte
	Traits [][]byte
}

Element ...

type Memory added in v0.8.0

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

Memory is the interface for shared memory inside a subnet

func (*Memory) GetDatabase added in v0.8.0

func (m *Memory) GetDatabase(sharedID ids.ID) (*versiondb.Database, database.Database)

GetDatabase returns and locks the provided DB

func (*Memory) Initialize added in v0.8.0

func (m *Memory) Initialize(log logging.Logger, db database.Database) error

Initialize the SharedMemory

func (*Memory) NewSharedMemory added in v0.8.0

func (m *Memory) NewSharedMemory(id ids.ID) SharedMemory

NewSharedMemory returns a new SharedMemory

func (*Memory) ReleaseDatabase added in v0.8.0

func (m *Memory) ReleaseDatabase(sharedID ids.ID)

ReleaseDatabase unlocks the provided DB

type SharedMemory

type SharedMemory interface {
	// Adds to the peer chain's side
	Put(peerChainID ids.ID, elems []*Element, batches ...database.Batch) error

	// Fetches from this chain's side
	Get(peerChainID ids.ID, keys [][]byte) (values [][]byte, err error)
	Indexed(
		peerChainID ids.ID,
		traits [][]byte,
		startTrait,
		startKey []byte,
		limit int,
	) (
		values [][]byte,
		lastTrait,
		lastKey []byte,
		err error,
	)
	Remove(peerChainID ids.ID, keys [][]byte, batches ...database.Batch) error
}

SharedMemory ...

Jump to

Keyboard shortcuts

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