rtrefresh

package
v0.0.6 Latest Latest
Warning

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

Go to latest
Published: Mar 25, 2024 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type RtRefreshManager

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

RtRefreshManager 是一个用于管理 Routing Table 刷新的结构体。 它包含了执行刷新操作所需的上下文、计数器、本地对等节点信息、Routing Table、刷新相关的配置参数和函数、刷新触发请求的通道等。

func NewRtRefreshManager

func NewRtRefreshManager(h host.Host, rt *kbucket.RoutingTable, autoRefresh bool,
	refreshKeyGenFnc func(cpl uint) (string, error),
	refreshQueryFnc func(ctx context.Context, key string) error,
	refreshPingFnc func(ctx context.Context, p peer.ID) error,
	refreshQueryTimeout time.Duration,
	refreshInterval time.Duration,
	successfulOutboundQueryGracePeriod time.Duration,
	refreshDoneCh chan struct{}) (*RtRefreshManager, error)

func (*RtRefreshManager) Close

func (r *RtRefreshManager) Close() error

Close 关闭 RtRefreshManager 实例。

func (*RtRefreshManager) Refresh

func (r *RtRefreshManager) Refresh(force bool) <-chan error

RefreshRoutingTable 请求刷新管理器刷新路由表。 如果force参数设置为true true,则所有bucket都将被刷新,无论它们上次刷新是什么时候。

返回的通道将阻塞直到刷新完成,然后产生错误并关闭。 该通道已缓冲并且可以安全地忽略。

func (*RtRefreshManager) RefreshNoWait

func (r *RtRefreshManager) RefreshNoWait()

RefreshNoWait 请求刷新管理器刷新路由表。 但是,如果请求无法通过,它会继续前进而不会阻塞。

func (*RtRefreshManager) Start

func (r *RtRefreshManager) Start()

Start 启动 RtRefreshManager 实例的循环处理函数。

Jump to

Keyboard shortcuts

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