Version: v0.16.0 Latest Latest

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

Go to latest
Published: Jun 2, 2022 License: MIT Imports: 16 Imported by: 35




View Source
const ProvidersKeyPrefix = "/providers/"

ProvidersKeyPrefix is the prefix/namespace for ALL provider record keys stored in the data store.


View Source
var ProvideValidity = time.Hour * 24

ProvideValidity is the default time that a provider record should last


This section is empty.


type Option added in v0.7.6

type Option func(*ProviderManager) error

Option is a function that sets a provider manager option.

func Cache added in v0.7.6

func Cache(c lru.LRUCache) Option

Cache sets the LRU cache implementation. Defaults to a simple LRU cache.

func CleanupInterval added in v0.7.6

func CleanupInterval(d time.Duration) Option

CleanupInterval sets the time between GC runs. Defaults to 1h.

type ProviderManager

type ProviderManager struct {
	// contains filtered or unexported fields

ProviderManager adds and pulls providers out of the datastore, caching them in between

func NewProviderManager

func NewProviderManager(ctx context.Context, local peer.ID, ps peerstore.Peerstore, dstore ds.Batching, opts ...Option) (*ProviderManager, error)

NewProviderManager constructor

func (*ProviderManager) AddProvider

func (pm *ProviderManager) AddProvider(ctx context.Context, k []byte, provInfo peer.AddrInfo) error

AddProvider adds a provider

func (*ProviderManager) GetProviders

func (pm *ProviderManager) GetProviders(ctx context.Context, k []byte) ([]peer.AddrInfo, error)

GetProviders returns the set of providers for the given key. This method _does not_ copy the set. Do not modify it.

func (*ProviderManager) Process

func (pm *ProviderManager) Process() goprocess.Process

Process returns the ProviderManager process

type ProviderStore added in v0.14.0

type ProviderStore interface {
	AddProvider(ctx context.Context, key []byte, prov peer.AddrInfo) error
	GetProviders(ctx context.Context, key []byte) ([]peer.AddrInfo, error)

ProviderStore represents a store that associates peers and their addresses to keys.

Jump to

Keyboard shortcuts

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