memory

package
v0.0.0-...-c426cd6 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2020 License: Apache-2.0 Imports: 9 Imported by: 3

Documentation

Overview

Package memory is an in memory storage backend for Shade.

It stores files and chunks transiently in RAM. It respects MaxFiles and MaxChukBytes as an LRU cache, evicting the least-recently-used file or chunk. Both Gets and Puts are considered "uses", but GetFiles does not update the LRU state of any data.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewClient

func NewClient(c drive.Config) (drive.Client, error)

NewClient returns a Drive client, based on the provided config.

Types

type ChunkLister

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

ChunkLister allows iterating the chunks stored in memory.

func (*ChunkLister) Err

func (c *ChunkLister) Err() error

Err returns precisely no errors.

func (*ChunkLister) Next

func (c *ChunkLister) Next() bool

Next increments the pointer

func (*ChunkLister) Sha256

func (c *ChunkLister) Sha256() []byte

Sha256 returns the chunk pointed to by the pointer.

type Drive

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

Drive implements the drive.Client interface by storing Files and Chunks transiently in RAM. The provided config can be returned, but is otherwise ignored.

func (*Drive) Equal

func (s *Drive) Equal(other *Drive) error

Equal compares one Drive instance to another.

func (*Drive) GetChunk

func (s *Drive) GetChunk(sha256sum []byte, _ *shade.File) ([]byte, error)

GetChunk retrieves a chunk with a given SHA-256 sum

func (*Drive) GetConfig

func (s *Drive) GetConfig() drive.Config

GetConfig returns the config used to initialize this client.

func (*Drive) GetFile

func (s *Drive) GetFile(sha256sum []byte) ([]byte, error)

GetFile retrieves a file with a given SHA-256 sum

func (*Drive) ListFiles

func (s *Drive) ListFiles() ([][]byte, error)

ListFiles retrieves all of the File objects known to the client. The return is a list of sha256sums of the file object. The keys may be passed to GetFile() to retrieve the corresponding shade.File.

func (*Drive) Local

func (s *Drive) Local() bool

Local returns whether the storage is local to this machine.

func (*Drive) NewChunkLister

func (s *Drive) NewChunkLister() drive.ChunkLister

NewChunkLister allows listing all the chunks in memory.

func (*Drive) Persistent

func (s *Drive) Persistent() bool

Persistent returns whether the storage is persistent across task restarts.

func (*Drive) PutChunk

func (s *Drive) PutChunk(sha256sum []byte, chunk []byte, _ *shade.File) error

PutChunk writes a chunk and returns its SHA-256 sum

func (*Drive) PutFile

func (s *Drive) PutFile(sha256sum, f []byte) error

PutFile writes the metadata describing a new file. f should be marshalled JSON, and may be encrypted.

func (*Drive) ReleaseChunk

func (s *Drive) ReleaseChunk(sha256sum []byte) error

ReleaseChunk removes a chunk from the memory client.

func (*Drive) ReleaseFile

func (s *Drive) ReleaseFile(sha256sum []byte) error

ReleaseFile removes a file from the memory client.

func (*Drive) Warm

func (s *Drive) Warm(chunks [][]byte, f *shade.File)

Warm is unnecessary for this client.

Jump to

Keyboard shortcuts

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