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:
@@ -61,6 +61,10 @@ public:
|
||||
std::string getText () const override;
|
||||
Json::Value getJson (int options) const override;
|
||||
|
||||
/** Returns the 'key' (or 'index') of this item.
|
||||
The key identifies this entry's position in
|
||||
the SHAMap associative container.
|
||||
*/
|
||||
uint256 const& getIndex () const
|
||||
{
|
||||
return mIndex;
|
||||
@@ -93,15 +97,15 @@ public:
|
||||
return mFormat;
|
||||
}
|
||||
|
||||
bool isThreadedType (); // is this a ledger entry that can be threaded
|
||||
bool isThreaded (); // is this ledger entry actually threaded
|
||||
bool hasOneOwner (); // This node has one other node that owns it
|
||||
bool hasTwoOwners (); // This node has two nodes that own it (like ripple balance)
|
||||
RippleAddress getOwner ();
|
||||
RippleAddress getFirstOwner ();
|
||||
RippleAddress getSecondOwner ();
|
||||
uint256 getThreadedTransaction ();
|
||||
std::uint32_t getThreadedLedger ();
|
||||
bool isThreadedType() const; // is this a ledger entry that can be threaded
|
||||
bool isThreaded () const; // is this ledger entry actually threaded
|
||||
bool hasOneOwner () const; // This node has one other node that owns it
|
||||
bool hasTwoOwners () const; // This node has two nodes that own it (like ripple balance)
|
||||
RippleAddress getOwner () const;
|
||||
RippleAddress getFirstOwner () const;
|
||||
RippleAddress getSecondOwner () const;
|
||||
uint256 getThreadedTransaction () const;
|
||||
std::uint32_t getThreadedLedger () const;
|
||||
bool thread (uint256 const& txID, std::uint32_t ledgerSeq, uint256 & prevTxID,
|
||||
std::uint32_t & prevLedgerID);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user