Files
xahaud/src/cpp/ripple/LedgerHistory.h
2013-05-21 16:10:51 -07:00

28 lines
725 B
C++

#ifndef __LEDGERHISTORY__
#define __LEDGERHISTORY__
#include "TaggedCache.h"
#include "Ledger.h"
class LedgerHistory
{
TaggedCache<uint256, Ledger> mLedgersByHash;
std::map<uint32, uint256> mLedgersByIndex; // accepted ledgers
public:
LedgerHistory();
void addLedger(Ledger::pointer ledger);
void addAcceptedLedger(Ledger::pointer ledger, bool fromConsensus);
float getCacheHitRate() { return mLedgersByHash.getHitRate(); }
uint256 getLedgerHash(uint32 index);
Ledger::pointer getLedgerBySeq(uint32 index);
Ledger::pointer getLedgerByHash(const uint256& hash);
Ledger::pointer canonicalizeLedger(Ledger::pointer, bool cache);
void tune(int size, int age);
void sweep() { mLedgersByHash.sweep(); }
};
#endif