pin

package
v0.0.0-...-bafe949 Latest Latest
Warning

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

Go to latest
Published: Mar 10, 2022 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

package pin implemnts structures and methods to keep track of which objects a user wants to keep stored locally.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewIndirectPin

func NewIndirectPin(dstore ds.Datastore) *indirectPin

Types

type ManualPinner

type ManualPinner interface {
	PinWithMode(util.Key, PinMode)
	RemovePinWithMode(util.Key, PinMode)
	Pinner
}

ManualPinner is for manually editing the pin structure Use with care! If used improperly, garbage collection may not be successful

type PinMode

type PinMode int
const (
	Recursive PinMode = iota
	Direct
	Indirect
	NotPinned
)

type Pinner

type Pinner interface {
	IsPinned(util.Key) bool
	Pin(context.Context, *mdag.Node, bool) error
	Unpin(context.Context, util.Key, bool) error
	Flush() error
	GetManual() ManualPinner
	DirectKeys() []util.Key
	IndirectKeys() map[util.Key]int
	RecursiveKeys() []util.Key
}

func LoadPinner

func LoadPinner(d ds.ThreadSafeDatastore, dserv mdag.DAGService) (Pinner, error)

LoadPinner loads a pinner and its keysets from the given datastore

func NewPinner

func NewPinner(dstore ds.ThreadSafeDatastore, serv mdag.DAGService) Pinner

NewPinner creates a new pinner using the given datastore as a backend

Jump to

Keyboard shortcuts

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