Optimize and clean up SHAMap::iterator:

* Remove dependence on boost::iterator_facade.
* Rename iterator to const_iterator.
* Change value_type from shared_ptr<SHAMapItem const> to SHAMapItem.
* Install a stack-path to the current SHAMapItem in the const_iterator.
This commit is contained in:
Howard Hinnant
2015-06-30 12:15:47 -04:00
committed by Vinnie Falco
parent 30e068ae17
commit 361f1da5b8
8 changed files with 186 additions and 71 deletions

View File

@@ -59,7 +59,7 @@ class Ledger::txs_iter_impl
private:
bool metadata_;
ReadView const* view_;
SHAMap::iterator iter_;
SHAMap::const_iterator iter_;
public:
txs_iter_impl() = delete;
@@ -68,7 +68,7 @@ public:
txs_iter_impl (txs_iter_impl const&) = default;
txs_iter_impl (bool metadata,
SHAMap::iterator iter,
SHAMap::const_iterator iter,
ReadView const& view)
: metadata_ (metadata)
, view_ (&view)
@@ -102,8 +102,8 @@ public:
{
auto const item = *iter_;
if (metadata_)
return deserializeTxPlusMeta(*item);
return { deserializeTx(*item), nullptr };
return deserializeTxPlusMeta(item);
return { deserializeTx(item), nullptr };
}
};