diff --git a/src/LedgerAcquire.cpp b/src/LedgerAcquire.cpp index f5579a9c3..7f638c7af 100644 --- a/src/LedgerAcquire.cpp +++ b/src/LedgerAcquire.cpp @@ -326,6 +326,29 @@ void PeerSet::sendRequest(const ripple::TMGetLedger& tmGL) } } +int PeerSet::takePeerSetFrom(const PeerSet& s) +{ + int ret = 0; + mPeers.clear(); + mPeers.reserve(s.mPeers.size()); + BOOST_FOREACH(const boost::weak_ptr& p, s.mPeers) + if (p.lock()) + { + mPeers.push_back(p); + ++ret; + } + return ret; +} + +int PeerSet::getPeerCount() const +{ + int ret = 0; + BOOST_FOREACH(const boost::weak_ptr& p, mPeers) + if (p.lock()) + ++ret; + return ret; +} + bool LedgerAcquire::takeBase(const std::string& data) { // Return value: true=normal, false=bad data #ifdef LA_DEBUG diff --git a/src/LedgerAcquire.h b/src/LedgerAcquire.h index 196a325c1..354ad1593 100644 --- a/src/LedgerAcquire.h +++ b/src/LedgerAcquire.h @@ -45,6 +45,9 @@ public: void badPeer(Peer::ref); void resetTimer(); + int takePeerSetFrom(const PeerSet& s); + int getPeerCount() const; + protected: virtual void newPeer(Peer::ref) = 0; virtual void onTimer(void) = 0;