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 实例的循环处理函数。
Click to show internal directories.
Click to hide internal directories.