mirror of
https://github.com/Xahau/xahaud.git
synced 2025-12-06 17:27:52 +00:00
Merge branch 'master' of github.com:jedmccaleb/NewCoin
This commit is contained in:
@@ -56,13 +56,13 @@ void PeerSet::badPeer(Peer::pointer ptr)
|
|||||||
void PeerSet::resetTimer()
|
void PeerSet::resetTimer()
|
||||||
{
|
{
|
||||||
mTimer.expires_from_now(boost::posix_time::seconds(mTimerInterval));
|
mTimer.expires_from_now(boost::posix_time::seconds(mTimerInterval));
|
||||||
mTimer.async_wait(getTimerLamba());
|
mTimer.async_wait(boost::bind(&PeerSet::TimerEntry, pmDowncast(), boost::asio::placeholders::error));
|
||||||
}
|
}
|
||||||
|
|
||||||
void LedgerAcquire::LATimerEntry(boost::weak_ptr<LedgerAcquire> wptr, const boost::system::error_code& result)
|
void PeerSet::TimerEntry(boost::weak_ptr<PeerSet> wptr, const boost::system::error_code& result)
|
||||||
{
|
{
|
||||||
if (result == boost::asio::error::operation_aborted) return;
|
if (result == boost::asio::error::operation_aborted) return;
|
||||||
boost::shared_ptr<LedgerAcquire> ptr = wptr.lock();
|
boost::shared_ptr<PeerSet> ptr = wptr.lock();
|
||||||
if (!!ptr) ptr->onTimer();
|
if (!!ptr) ptr->onTimer();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,10 +74,9 @@ LedgerAcquire::LedgerAcquire(const uint256& hash) : PeerSet(hash, LEDGER_ACQUIRE
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::function<void (boost::system::error_code)> LedgerAcquire::getTimerLamba()
|
boost::weak_ptr<PeerSet> LedgerAcquire::pmDowncast()
|
||||||
{
|
{
|
||||||
return boost::bind(&LedgerAcquire::LATimerEntry, boost::weak_ptr<LedgerAcquire>(shared_from_this()),
|
return boost::shared_polymorphic_downcast<PeerSet, LedgerAcquire>(shared_from_this());
|
||||||
boost::asio::placeholders::error);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void LedgerAcquire::done()
|
void LedgerAcquire::done()
|
||||||
|
|||||||
@@ -37,10 +37,14 @@ public:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void newPeer(Peer::pointer) = 0;
|
virtual void newPeer(Peer::pointer) = 0;
|
||||||
virtual boost::function<void (boost::system::error_code)> getTimerLamba() = 0;
|
virtual void onTimer(void) = 0;
|
||||||
|
virtual boost::weak_ptr<PeerSet> pmDowncast() = 0;
|
||||||
|
|
||||||
void setComplete() { mComplete = true; }
|
void setComplete() { mComplete = true; }
|
||||||
void setFailed() { mFailed = true; }
|
void setFailed() { mFailed = true; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
static void TimerEntry(boost::weak_ptr<PeerSet>, const boost::system::error_code& result);
|
||||||
};
|
};
|
||||||
|
|
||||||
class LedgerAcquire : public PeerSet, public boost::enable_shared_from_this<LedgerAcquire>
|
class LedgerAcquire : public PeerSet, public boost::enable_shared_from_this<LedgerAcquire>
|
||||||
@@ -61,8 +65,8 @@ protected:
|
|||||||
void sendRequest(boost::shared_ptr<newcoin::TMGetLedger> message, Peer::pointer peer);
|
void sendRequest(boost::shared_ptr<newcoin::TMGetLedger> message, Peer::pointer peer);
|
||||||
void newPeer(Peer::pointer peer) { trigger(peer); }
|
void newPeer(Peer::pointer peer) { trigger(peer); }
|
||||||
void trigger(Peer::pointer);
|
void trigger(Peer::pointer);
|
||||||
virtual boost::function<void (boost::system::error_code)> getTimerLamba();
|
|
||||||
static void LATimerEntry(boost::weak_ptr<LedgerAcquire>, const boost::system::error_code&);
|
boost::weak_ptr<PeerSet> pmDowncast();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
LedgerAcquire(const uint256& hash);
|
LedgerAcquire(const uint256& hash);
|
||||||
|
|||||||
Reference in New Issue
Block a user