Change peerinfo to a class rather than a dictionary
This commit is contained in:
parent
e93ced5f6a
commit
95d3847d5a
|
@ -1,3 +1,5 @@
|
|||
# PeerStore
|
||||
|
||||
The PeerStore contains a mapping of peer IDs to PeerData objects. Each PeerData object represents a peer, and each PeerData contains a collection of protocols, addresses, and a mapping of metadata. PeerStore implements the IPeerStore (peer protocols), IAddrBook (address book), and IPeerMetadata (peer metadata) interfaces, which allows the peer store to effectively function as a dictionary for peer ID to protocol, address, and metadata.
|
||||
|
||||
Note: PeerInfo represents a read-only summary of a PeerData object. Only the attributes assigned in PeerInfo are readable by references to PeerInfo objects.
|
4
peer/peerinfo.py
Normal file
4
peer/peerinfo.py
Normal file
|
@ -0,0 +1,4 @@
|
|||
class PeerInfo:
|
||||
def __init__(self, peer_id, peer_data):
|
||||
self.peer_id = peer_id
|
||||
self.addrs = peer_data.get_addrs()
|
|
@ -1,5 +1,6 @@
|
|||
from .peerstore_interface import IPeerStore
|
||||
from .peerdata import PeerData
|
||||
from .peerinfo import PeerInfo
|
||||
|
||||
class PeerStore(IPeerStore):
|
||||
|
||||
|
@ -24,10 +25,7 @@ class PeerStore(IPeerStore):
|
|||
def peer_info(self, peer_id):
|
||||
if peer_id in self.peer_map:
|
||||
peer = self.peer_map[peer_id]
|
||||
return {
|
||||
"peer_id": peer_id,
|
||||
"addrs": peer.get_addrs()
|
||||
}
|
||||
return PeerInfo(peer_id, peer)
|
||||
return None
|
||||
|
||||
def get_protocols(self, peer_id):
|
||||
|
|
Loading…
Reference in New Issue
Block a user