From 8bcb9c00412172cd466083431eb93ae8e342df94 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Sat, 14 Jul 2012 19:16:58 -0700 Subject: [PATCH] Add get first/last/next SLE functions. --- src/Ledger.h | 3 +++ src/LedgerNode.cpp | 24 ++++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/src/Ledger.h b/src/Ledger.h index 66f351c42f..0bf03f49b7 100644 --- a/src/Ledger.h +++ b/src/Ledger.h @@ -156,6 +156,9 @@ public: static Ledger::pointer loadByHash(const uint256& ledgerHash); // next/prev function + SLE::pointer getSLE(const uint256& uHash); + SLE::pointer getFirstSLE(); + SLE::pointer getLastSLE(); SLE::pointer getNextSLE(const uint256& uHash); // first node >hash SLE::pointer getNextSLE(const uint256& uHash, const uint256& uEnd); // first node >hash, peekItem(); + if (!node) + return SLE::pointer(); + return boost::make_shared(node->peekSerializer(), node->getTag()); +} + +SLE::pointer Ledger::getFirstSLE() +{ + SHAMapItem::pointer node = mAccountStateMap->peekFirstItem(); + if (!node) + return SLE::pointer(); + return boost::make_shared(node->peekSerializer(), node->getTag()); +} + +SLE::pointer Ledger::getLastSLE() +{ + SHAMapItem::pointer node = mAccountStateMap->peekLastItem(); + if (!node) + return SLE::pointer(); + return boost::make_shared(node->peekSerializer(), node->getTag()); +} + SLE::pointer Ledger::getNextSLE(const uint256& uHash) { SHAMapItem::pointer node = mAccountStateMap->peekNextItem(uHash);