OSDN Git Service

Merge pull request #201 from Bytom/v0.1
[bytom/vapor.git] / vendor / github.com / libp2p / go-libp2p-peer / peerset / peerset.go
diff --git a/vendor/github.com/libp2p/go-libp2p-peer/peerset/peerset.go b/vendor/github.com/libp2p/go-libp2p-peer/peerset/peerset.go
deleted file mode 100644 (file)
index 0cc87dd..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-package peerset
-
-import (
-       "sync"
-
-       peer "github.com/libp2p/go-libp2p-peer"
-)
-
-// PeerSet is a threadsafe set of peers
-type PeerSet struct {
-       ps   map[peer.ID]struct{}
-       lk   sync.RWMutex
-       size int
-}
-
-func New() *PeerSet {
-       ps := new(PeerSet)
-       ps.ps = make(map[peer.ID]struct{})
-       ps.size = -1
-       return ps
-}
-
-func NewLimited(size int) *PeerSet {
-       ps := new(PeerSet)
-       ps.ps = make(map[peer.ID]struct{})
-       ps.size = size
-       return ps
-}
-
-func (ps *PeerSet) Add(p peer.ID) {
-       ps.lk.Lock()
-       ps.ps[p] = struct{}{}
-       ps.lk.Unlock()
-}
-
-func (ps *PeerSet) Contains(p peer.ID) bool {
-       ps.lk.RLock()
-       _, ok := ps.ps[p]
-       ps.lk.RUnlock()
-       return ok
-}
-
-func (ps *PeerSet) Size() int {
-       ps.lk.RLock()
-       defer ps.lk.RUnlock()
-       return len(ps.ps)
-}
-
-// TryAdd Attempts to add the given peer into the set.
-// This operation can fail for one of two reasons:
-// 1) The given peer is already in the set
-// 2) The number of peers in the set is equal to size
-func (ps *PeerSet) TryAdd(p peer.ID) bool {
-       var success bool
-       ps.lk.Lock()
-       if _, ok := ps.ps[p]; !ok && (len(ps.ps) < ps.size || ps.size == -1) {
-               success = true
-               ps.ps[p] = struct{}{}
-       }
-       ps.lk.Unlock()
-       return success
-}
-
-func (ps *PeerSet) Peers() []peer.ID {
-       ps.lk.Lock()
-       out := make([]peer.ID, 0, len(ps.ps))
-       for p, _ := range ps.ps {
-               out = append(out, p)
-       }
-       ps.lk.Unlock()
-       return out
-}