From 693df8bb8aff4d003984aae8bad30db3a00f0221 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Thu, 19 Apr 2012 03:45:33 -0700 Subject: [PATCH] Missing function Ledger::writeBack --- src/LedgerNode.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/LedgerNode.cpp b/src/LedgerNode.cpp index 05156e657a..21238792ea 100644 --- a/src/LedgerNode.cpp +++ b/src/LedgerNode.cpp @@ -3,6 +3,27 @@ #include "boost/make_shared.hpp" +LedgerStateParms Ledger::writeBack(LedgerStateParms parms, SerializedLedgerEntry::pointer entry) +{ + ScopedLock l(mAccountStateMap->Lock()); + bool create = false; + + if (!mAccountStateMap->hasItem(entry->getIndex())) + { + if ((parms & lepCREATE) == 0) + return lepMISSING; + create = true; + } + + SHAMapItem::pointer item = boost::make_shared(entry->getIndex()); + entry->add(item->peekSerializer()); + + if (!mAccountStateMap->updateGiveItem(item, false)) + return lepERROR; + + return create ? lepCREATED : lepOKAY; +} + SerializedLedgerEntry::pointer Ledger::getAccountRoot(LedgerStateParms& parms, const uint160& accountID) { uint256 nodeID=getAccountRootIndex(accountID);