From 8bcb9c00412172cd466083431eb93ae8e342df94 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Sat, 14 Jul 2012 19:16:58 -0700 Subject: [PATCH 1/2] 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); From 0b0cf71d41dce88c0ebf01b63cf18247a4d7ad01 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Sat, 14 Jul 2012 19:18:04 -0700 Subject: [PATCH 2/2] Cleanups. --- src/LedgerNode.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/LedgerNode.cpp b/src/LedgerNode.cpp index 727634081d..07f4edc5bd 100644 --- a/src/LedgerNode.cpp +++ b/src/LedgerNode.cpp @@ -48,7 +48,7 @@ LedgerStateParms Ledger::writeBack(LedgerStateParms parms, SLE::pointer entry) SLE::pointer Ledger::getSLE(const uint256& uHash) { - SHAMapItem::pointer node = mAccountStateMap->peekItem(); + SHAMapItem::pointer node = mAccountStateMap->peekItem(uHash); if (!node) return SLE::pointer(); return boost::make_shared(node->peekSerializer(), node->getTag());