repo

package
v0.4.12 Latest Latest
Warning

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

Go to latest
Published: Nov 10, 2017 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrApiNotRunning = errors.New("api not running")
)

Functions

This section is empty.

Types

type Datastore added in v0.4.0

type Datastore interface {
	ds.Batching // should be threadsafe, just be careful
	io.Closer
}

Datastore is the interface required from a datastore to be acceptable to FSRepo.

type Mock

type Mock struct {
	C config.Config
	D Datastore
	K keystore.Keystore
}

Mock is not thread-safe

func (*Mock) Close

func (m *Mock) Close() error

func (*Mock) Config

func (m *Mock) Config() (*config.Config, error)

func (*Mock) Datastore

func (m *Mock) Datastore() Datastore

func (*Mock) FileManager added in v0.4.7

func (m *Mock) FileManager() *filestore.FileManager

func (*Mock) GetConfigKey

func (m *Mock) GetConfigKey(key string) (interface{}, error)

func (*Mock) GetStorageUsage added in v0.3.10

func (m *Mock) GetStorageUsage() (uint64, error)

func (*Mock) Keystore added in v0.4.5

func (m *Mock) Keystore() keystore.Keystore

func (*Mock) SetAPIAddr added in v0.3.8

func (m *Mock) SetAPIAddr(addr ma.Multiaddr) error

func (*Mock) SetConfig

func (m *Mock) SetConfig(updated *config.Config) error

func (*Mock) SetConfigKey

func (m *Mock) SetConfigKey(key string, value interface{}) error

func (*Mock) SwarmKey added in v0.4.7

func (m *Mock) SwarmKey() ([]byte, error)

type OnlyOne added in v0.3.2

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

OnlyOne tracks open Repos by arbitrary key and returns the already open one.

func (*OnlyOne) Open added in v0.3.2

func (o *OnlyOne) Open(key interface{}, open func() (Repo, error)) (Repo, error)

Open a Repo identified by key. If Repo is not already open, the open function is called, and the result is remember for further use.

Key must be comparable, or Open will panic. Make sure to pick keys that are unique across different concrete Repo implementations, e.g. by creating a local type:

type repoKey string
r, err := o.Open(repoKey(path), open)

Call Repo.Close when done.

type Repo

type Repo interface {
	Config() (*config.Config, error)
	SetConfig(*config.Config) error

	SetConfigKey(key string, value interface{}) error
	GetConfigKey(key string) (interface{}, error)

	Datastore() Datastore
	GetStorageUsage() (uint64, error)

	Keystore() keystore.Keystore

	FileManager() *filestore.FileManager

	// SetAPIAddr sets the API address in the repo.
	SetAPIAddr(addr ma.Multiaddr) error

	SwarmKey() ([]byte, error)

	io.Closer
}

Directories

Path Synopsis
package config implements the ipfs config file datastructures and utilities.
package config implements the ipfs config file datastructures and utilities.
package fsrepo TODO explain the package roadmap...
package fsrepo TODO explain the package roadmap...

Jump to

Keyboard shortcuts

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