Versions in this module Expand all Collapse all v1 v1.42.1 Dec 2, 2019 Changes in this version + type Implementation interface + Add func(peer.StatusPeer, peer.Identifier) Subscriber + Choose func(*transport.Request) peer.StatusPeer + Remove func(peer.StatusPeer, peer.Identifier, Subscriber) + type List struct + func New(name string, transport peer.Transport, implementation Implementation, ...) *List + func (pl *List) Available(pid peer.Identifier) bool + func (pl *List) Choose(ctx context.Context, req *transport.Request) (peer.Peer, func(error), error) + func (pl *List) Introspect() introspection.ChooserStatus + func (pl *List) IsRunning() bool + func (pl *List) Name() string + func (pl *List) NotifyStatusChanged(pid peer.Identifier) + func (pl *List) NumAvailable() int + func (pl *List) NumUnavailable() int + func (pl *List) NumUninitialized() int + func (pl *List) Peers() []peer.StatusPeer + func (pl *List) Start() error + func (pl *List) Stop() error + func (pl *List) Transport() peer.Transport + func (pl *List) Uninitialized(pid peer.Identifier) bool + func (pl *List) Update(updates peer.ListUpdates) error + type Option interface + func Capacity(capacity int) Option + func FailFast() Option + func Logger(logger *zap.Logger) Option + func NoShuffle() Option + func Seed(seed int64) Option + type Subscriber interface + UpdatePendingRequestCount func(int)