Class: Plug::PeerList

Inherits:
Array show all
Defined in:
lib/rbkb/plug/peer.rb

Direct Known Subclasses

ProxyPeerList

Instance Method Summary collapse

Methods inherited from Array

#rand_elem, #randomize

Constructor Details

#initialize(owner, *args) ⇒ PeerList

Returns a new instance of PeerList.



39
40
41
42
43
44
# File 'lib/rbkb/plug/peer.rb', line 39

def initialize(owner, *args)
  @owner = owner
  @transport = @owner.transport
  
  super(*args)
end

Instance Method Details

#add_peer(addr) ⇒ Object



51
52
53
54
# File 'lib/rbkb/plug/peer.rb', line 51

def add_peer(addr)
  self << Peer.new(addr, @owner)
  self.last
end

#add_peer_manually(host, port) ⇒ Object



56
57
58
59
# File 'lib/rbkb/plug/peer.rb', line 56

def add_peer_manually(host, port)
  addr = Socket.pack_sockaddr_in(port, host)
  return (find_peer(addr) || add_peer(addr))
end

#delete(addr) ⇒ Object



61
62
63
64
65
66
# File 'lib/rbkb/plug/peer.rb', line 61

def delete(addr)
  if p=find_peer(addr)
    p.close
    super(p)
  end
end

#find_peer(addr) ⇒ Object



46
47
48
49
# File 'lib/rbkb/plug/peer.rb', line 46

def find_peer(addr)
  self.find {|p| p.addr == addr }
  return nil
end