topology

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Aug 31, 2020 License: BSD-3-Clause Imports: 4 Imported by: 18

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNotFound = errors.New("no peer found")
	ErrWantSelf = errors.New("node wants self")
)

Functions

This section is empty.

Types

type ClosestPeerer

type ClosestPeerer interface {
	ClosestPeer(addr swarm.Address) (peerAddr swarm.Address, err error)
}

type Connecter

type Connecter interface {
	// Connected is called when a peer dials in, or in case explicit
	// notification to kademlia on dial out is requested.
	Connected(context.Context, swarm.Address) error
}

type Disconnecter

type Disconnecter interface {
	// Disconnected is called when a peer disconnects.
	// The disconnect event can be initiated on the local
	// node or on the remote node, this handle does not make
	// any distinctions between either of them.
	Disconnected(swarm.Address)
}

type Driver

type Driver interface {
	PeerAdder
	ClosestPeerer
	EachPeerer
	Notifier
	NeighborhoodDepth() uint8
	SubscribePeersChange() (c <-chan struct{}, unsubscribe func())
	io.Closer
}

type EachPeerFunc

type EachPeerFunc func(swarm.Address, uint8) (stop, jumpToNext bool, err error)

EachPeerFunc is a callback that is called with a peer and its PO

type EachPeerer

type EachPeerer interface {
	// EachPeer iterates from closest bin to farthest
	EachPeer(EachPeerFunc) error
	// EachPeerRev iterates from farthest bin to closest
	EachPeerRev(EachPeerFunc) error
}

type Notifier

type Notifier interface {
	Connecter
	Disconnecter
}

type PeerAdder

type PeerAdder interface {
	// AddPeers is called when peers are added to the topology backlog
	AddPeers(ctx context.Context, addr ...swarm.Address) error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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