func New(id uint64, tagger PeerTagger) *SessionPeerManager {
	return &SessionPeerManager{
		id:     id,
		tag:    fmt.Sprint("bs-ses-", id),
		tagger: tagger,
		peers:  make(map[peer.ID]struct{}),
	}
}
New creates a new SessionPeerManager
package sessionpeermanager
import (
	"fmt"
	"sync"
	logging "github.com/ipfs/go-log"
	peer "github.com/libp2p/go-libp2p-core/peer"
)
var log = logging.Logger("bs:sprmgr")
const (
	sessionPeerTagValue = 5
)
type PeerTagger interface {
	TagPeer(peer.ID, string, int)
	UntagPeer(p peer.ID, tag string)
	Protect(peer.ID, string)
	Unprotect(peer.ID, string) bool
}
type SessionPeerManager struct {
	tagger PeerTagger
	tag    string
	id              uint64
	plk             sync.RWMutex
	peers           map[peer.ID]struct{}
	peersDiscovered bool
}