mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Refactor Ledger and support classes:
This performs a deep refactor on the Ledger class and its supporting classes, in preparation for the move to shared_ptr<SLE const> in places where the SLE is immutable and we are currently using shared_ptr<SLE>. Member functions are converted to free functions, the SLECache is an explicit parameter, one line convenience functions are removed to streamline the interface. Some callers are changed to use <SLE const> instead of <SLE> SLECache: * Moved to its own header file RippleState: * Remove unused functions * Store the SLE as const * Simplify callers AccountState: * Remove unused members * Simplify existing members Ledger: * Replace writeBack with insert and update * Remove unused functions * Remove LedgerStateParams * Move getLastFullLedger to Application * add entryCacheI, exists, fetch, erase * Use boost::optional where it makes sense * Make member functions free functions Free functions: * fetch: cache-aware SLE retrieval * forEachItem, forEachItemAfter * (various)
This commit is contained in:
@@ -248,12 +248,14 @@ public:
|
||||
stopped();
|
||||
}
|
||||
|
||||
// VFALCO TODO This should return boost::optional<uint256>
|
||||
LedgerHash getLedgerHash(Ledger::pointer ledger, LedgerIndex index)
|
||||
{
|
||||
LedgerHash hash;
|
||||
boost::optional<LedgerHash> hash;
|
||||
try
|
||||
{
|
||||
hash = ledger->getLedgerHash(index);
|
||||
hash = hashOfSeq(*ledger, index,
|
||||
getApp().getSLECache(), m_journal);
|
||||
}
|
||||
catch (SHAMapMissingNode &)
|
||||
{
|
||||
@@ -262,7 +264,7 @@ public:
|
||||
getApp().getInboundLedgers().acquire (
|
||||
ledger->getHash(), ledger->getLedgerSeq(), InboundLedger::fcGENERIC);
|
||||
}
|
||||
return hash;
|
||||
return hash ? *hash : zero; // kludge
|
||||
}
|
||||
|
||||
/** Process a single ledger
|
||||
|
||||
Reference in New Issue
Block a user