From 41be3dfd3570b4345f4f4a3c67839d1e91b4c895 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Sat, 5 May 2012 13:50:55 -0700 Subject: [PATCH] Ledger switch logic. --- src/LedgerMaster.cpp | 11 +++++++++++ src/LedgerMaster.h | 1 + 2 files changed, 12 insertions(+) diff --git a/src/LedgerMaster.cpp b/src/LedgerMaster.cpp index 6d72b2d0ec..12002a74bf 100644 --- a/src/LedgerMaster.cpp +++ b/src/LedgerMaster.cpp @@ -36,6 +36,17 @@ void LedgerMaster::pushLedger(Ledger::pointer newLedger) mEngine.setLedger(newLedger); } +void LedgerMaster::switchLedgers(Ledger::pointer lastClosed, Ledger::pointer current) +{ + mFinalizedLedger = lastClosed; + mFinalizedLedger->setClosed(); + mFinalizedLedger->setAccepted(); + + mCurrentLedger = current; + assert(!mCurrentLedger->isClosed()); + mEngine.setLedger(mCurrentLedger); +} + #if 0 void LedgerMaster::startFinalization() diff --git a/src/LedgerMaster.h b/src/LedgerMaster.h index 07c8907ed0..8caa1012e2 100644 --- a/src/LedgerMaster.h +++ b/src/LedgerMaster.h @@ -45,6 +45,7 @@ public: { return mEngine.applyTransaction(txn, params); } void pushLedger(Ledger::pointer newLedger); + void switchLedgers(Ledger::pointer lastClosed, Ledger::pointer newCurrent); Ledger::pointer getLedgerBySeq(uint32 index) {