providers

package
v0.20.1 Latest Latest
Warning

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

Go to latest
Published: Feb 12, 2023 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const ProviderAddrTTL = time.Minute * 30

ProviderAddrTTL is the TTL of an address we've received from a provider. This is also a temporary address, but lasts longer. After this expires, the records we return will require an extra lookup.

View Source
const ProvidersKeyPrefix = "/providers/"

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

Variables

View Source
var ProvideValidity = time.Hour * 48

ProvideValidity is the default time that a Provider Record should last on DHT This value is also known as Provider Record Expiration Interval.

Functions

This section is empty.

Types

type Option

type Option func(*ProviderManager) error

Option is a function that sets a provider manager option.

func Cache

func Cache(c lru.LRUCache) Option

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

func CleanupInterval

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

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