providers

package
v0.0.12 Latest Latest
Warning

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

Go to latest
Published: Jul 29, 2024 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ProvidersKeyPrefix = "/providers/"

	ProviderAddrTTL = 24 * time.Hour
)

Variables

View Source
var ProvideValidity = time.Hour * 48

Functions

This section is empty.

Types

type Option

type Option func(*ProviderManager) error

Option 是设置提供者管理器选项的函数。

func Cache

func Cache(c lru.LRUCache) Option

Cache 设置 LRU 缓存实现。 默认为简单的 LRU 缓存。

func CleanupInterval

func CleanupInterval(d time.Duration) Option

CleanupInterval 设置 GC 运行之间的时间。 默认为 1 小时。

type ProviderManager

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

ProviderManager 在数据存储中添加和拉出提供者,并在两者之间缓存它们

func NewProviderManager

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

func (*ProviderManager) AddProvider

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

AddProvider 添加提供商

func (*ProviderManager) Close

func (pm *ProviderManager) Close() error

func (*ProviderManager) GetProviders

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

GetProviders 返回给定键的提供者集。 该方法不复制集合。 不要修改它。

type ProviderStore

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

ProviderStore 表示将节点及其地址与密钥相关联的存储。

Jump to

Keyboard shortcuts

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