Simplify PeerSet, InboundLedger and TransactionAcquire:

* Use std::mutex instead of std::recursive_mutex
* Remove unnecessary type alias
* Use std::set instead of ripple::hash_map
* Don't reinvent virtual functions
This commit is contained in:
Nik Bougalis
2016-05-31 00:05:25 -07:00
parent d1200224e2
commit 279c2a6f82
13 changed files with 106 additions and 129 deletions

View File

@@ -42,7 +42,7 @@ enum
};
TransactionAcquire::TransactionAcquire (Application& app, uint256 const& hash, clock_type& clock)
: PeerSet (app, hash, TX_ACQUIRE_TIMEOUT, true, clock,
: PeerSet (app, hash, TX_ACQUIRE_TIMEOUT, clock,
app.journal("TransactionAcquire"))
, mHaveRoot (false)
, j_(app.journal("TransactionAcquire"))
@@ -56,6 +56,16 @@ TransactionAcquire::~TransactionAcquire ()
{
}
void TransactionAcquire::execute ()
{
app_.getJobQueue ().addJob (
jtTXN_DATA, "TransactionAcquire",
[ptr = shared_from_this()](Job&)
{
ptr->invokeOnTimer ();
});
}
void TransactionAcquire::done ()
{
// We hold a PeerSet lock and so cannot do real work here
@@ -99,7 +109,7 @@ void TransactionAcquire::onTimer (bool progress, ScopedLockType& psl)
}
if (aggressive)
trigger (Peer::ptr ());
trigger (nullptr);
addPeers (1);
}
@@ -109,7 +119,7 @@ std::weak_ptr<PeerSet> TransactionAcquire::pmDowncast ()
return std::dynamic_pointer_cast<PeerSet> (shared_from_this ());
}
void TransactionAcquire::trigger (Peer::ptr const& peer)
void TransactionAcquire::trigger (std::shared_ptr<Peer> const& peer)
{
if (mComplete)
{
@@ -173,7 +183,7 @@ void TransactionAcquire::trigger (Peer::ptr const& peer)
}
SHAMapAddNode TransactionAcquire::takeNodes (const std::list<SHAMapNodeID>& nodeIDs,
const std::list< Blob >& data, Peer::ptr const& peer)
const std::list< Blob >& data, std::shared_ptr<Peer> const& peer)
{
ScopedLockType sl (mLock);