Remove synched flag, and neww pushLedger function.

This commit is contained in:
JoelKatz
2012-05-30 21:25:47 -07:00
parent c2b200a74d
commit 83aa616d13
3 changed files with 22 additions and 15 deletions

View File

@@ -122,7 +122,6 @@ void Application::run()
Ledger::pointer secondLedger = boost::make_shared<Ledger>(firstLedger); Ledger::pointer secondLedger = boost::make_shared<Ledger>(firstLedger);
mMasterLedger.pushLedger(secondLedger); mMasterLedger.pushLedger(secondLedger);
assert(!!secondLedger->getAccountState(rootAddress)); assert(!!secondLedger->getAccountState(rootAddress));
mMasterLedger.setSynced();
// temporary // temporary
mNetOps.setStateTimer(0); mNetOps.setStateTimer(0);

View File

@@ -4,10 +4,6 @@
#include "Conversion.h" #include "Conversion.h"
#include <boost/foreach.hpp> #include <boost/foreach.hpp>
LedgerMaster::LedgerMaster() : mIsSynced(false)
{
}
uint32 LedgerMaster::getCurrentLedgerIndex() uint32 LedgerMaster::getCurrentLedgerIndex()
{ {
return mCurrentLedger->getLedgerSeq(); return mCurrentLedger->getLedgerSeq();
@@ -35,6 +31,18 @@ void LedgerMaster::pushLedger(Ledger::pointer newLedger)
mEngine.setLedger(newLedger); mEngine.setLedger(newLedger);
} }
void LedgerMaster::pushLedger(Ledger::pointer newLCL, Ledger::pointer newOL)
{
assert(newLCL->isClosed() && newLCL->isAccepted());
assert(!newOL->isClosed() && !newOL->isAccepted());
ScopedLock sl(mLock);
mLedgerHistory.addAcceptedLedger(newLCL);
mFinalizedLedger = newLCL;
mCurrentLedger = newOL;
mEngine.setLedger(newOL);
}
void LedgerMaster::switchLedgers(Ledger::pointer lastClosed, Ledger::pointer current) void LedgerMaster::switchLedgers(Ledger::pointer lastClosed, Ledger::pointer current)
{ {
mFinalizedLedger = lastClosed; mFinalizedLedger = lastClosed;

View File

@@ -15,7 +15,6 @@
class LedgerMaster class LedgerMaster
{ {
boost::recursive_mutex mLock; boost::recursive_mutex mLock;
bool mIsSynced;
TransactionEngine mEngine; TransactionEngine mEngine;
@@ -32,25 +31,28 @@ class LedgerMaster
public: public:
LedgerMaster(); LedgerMaster() { ; }
uint32 getCurrentLedgerIndex(); uint32 getCurrentLedgerIndex();
bool isSynced() { return mIsSynced; }
void setSynced() { mIsSynced=true; }
Ledger::pointer getCurrentLedger() { return mCurrentLedger; } ScopedLock getLock() { return ScopedLock(mLock); }
Ledger::pointer getClosedLedger() { return mFinalizedLedger; }
Ledger::pointer getCurrentLedger() { return mCurrentLedger; }
Ledger::pointer getClosedLedger() { return mFinalizedLedger; }
TransactionEngineResult doTransaction(const SerializedTransaction& txn, TransactionEngineParams params) TransactionEngineResult doTransaction(const SerializedTransaction& txn, TransactionEngineParams params)
{ return mEngine.applyTransaction(txn, params); } { return mEngine.applyTransaction(txn, params); }
void pushLedger(Ledger::pointer newLedger); void pushLedger(Ledger::pointer newLedger);
void pushLedger(Ledger::pointer newLCL, Ledger::pointer newOL);
void switchLedgers(Ledger::pointer lastClosed, Ledger::pointer newCurrent); void switchLedgers(Ledger::pointer lastClosed, Ledger::pointer newCurrent);
Ledger::pointer getLedgerBySeq(uint32 index) Ledger::pointer getLedgerBySeq(uint32 index)
{ {
if (mCurrentLedger && (mCurrentLedger->getLedgerSeq()==index)) return mCurrentLedger; if (mCurrentLedger && (mCurrentLedger->getLedgerSeq() == index))
if (mFinalizedLedger && (mFinalizedLedger->getLedgerSeq()==index)) return mFinalizedLedger; return mCurrentLedger;
if (mFinalizedLedger && (mFinalizedLedger->getLedgerSeq() == index))
return mFinalizedLedger;
return mLedgerHistory.getLedgerBySeq(index); return mLedgerHistory.getLedgerBySeq(index);
} }
@@ -62,8 +64,6 @@ public:
} }
bool addHeldTransaction(Transaction::pointer trans); bool addHeldTransaction(Transaction::pointer trans);
uint64 getBalance(std::string& strAcctID, const uint160 currency = 0);
uint64 getBalance(const NewcoinAddress& acctID, const uint160 currency = 0);
}; };
#endif #endif