Changeset View
Changeset View
Standalone View
Standalone View
src/avalanche/peermanager.cpp
Show First 20 Lines • Show All 179 Lines • ▼ Show 20 Lines | void PeerManager::updatedBlockTip() { | ||||
} | } | ||||
} | } | ||||
PeerId PeerManager::getPeerId(const std::shared_ptr<Proof> &proof) { | PeerId PeerManager::getPeerId(const std::shared_ptr<Proof> &proof) { | ||||
auto it = fetchOrCreatePeer(proof); | auto it = fetchOrCreatePeer(proof); | ||||
return it == peers.end() ? NO_PEER : it->peerid; | return it == peers.end() ? NO_PEER : it->peerid; | ||||
} | } | ||||
std::shared_ptr<Proof> PeerManager::getProof(const ProofId &proofid) const { | |||||
auto &pview = peers.get<proof_index>(); | |||||
auto it = pview.find(proofid); | |||||
return it == pview.end() ? nullptr : it->proof; | |||||
} | |||||
PeerManager::PeerSet::iterator | PeerManager::PeerSet::iterator | ||||
PeerManager::fetchOrCreatePeer(const std::shared_ptr<Proof> &proof) { | PeerManager::fetchOrCreatePeer(const std::shared_ptr<Proof> &proof) { | ||||
{ | { | ||||
// Check if we already know of that peer. | // Check if we already know of that peer. | ||||
auto &pview = peers.get<proof_index>(); | auto &pview = peers.get<proof_index>(); | ||||
auto it = pview.find(proof->getId()); | auto it = pview.find(proof->getId()); | ||||
if (it != pview.end()) { | if (it != pview.end()) { | ||||
return peers.project<0>(it); | return peers.project<0>(it); | ||||
▲ Show 20 Lines • Show All 264 Lines • Show Last 20 Lines |