From f0eb8e79430cf7770ab701614692a6c4261b92a5 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Wed, 31 Oct 2012 15:50:14 -0700 Subject: [PATCH] Add instance counts to core classes. --- src/Ledger.cpp | 1 + src/Ledger.h | 5 ++++- src/LedgerMaster.h | 2 ++ src/Peer.cpp | 1 + src/Peer.h | 5 ++++- src/SHAMap.cpp | 4 ++++ src/SHAMap.h | 13 +++++++++---- 7 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/Ledger.cpp b/src/Ledger.cpp index 1b6775232f..69807417e9 100644 --- a/src/Ledger.cpp +++ b/src/Ledger.cpp @@ -20,6 +20,7 @@ #include "Log.h" SETUP_LOG(); +DECLARE_INSTANCE(Ledger); Ledger::Ledger(const RippleAddress& masterID, uint64 startAmount) : mTotCoins(startAmount), mLedgerSeq(1), mCloseTime(0), mParentCloseTime(0), mCloseResolution(LEDGER_TIME_ACCURACY), mCloseFlags(0), diff --git a/src/Ledger.h b/src/Ledger.h index 1074ec9fbf..c033c59c4d 100644 --- a/src/Ledger.h +++ b/src/Ledger.h @@ -18,6 +18,7 @@ #include "types.h" #include "BitcoinUtil.h" #include "SHAMap.h" +#include "InstanceCounter.h" enum LedgerStateParms { @@ -38,7 +39,9 @@ enum LedgerStateParms #define LEDGER_JSON_DUMP_STATE 0x20000000 #define LEDGER_JSON_FULL 0x40000000 -class Ledger : public boost::enable_shared_from_this +DEFINE_INSTANCE(Ledger); + +class Ledger : public boost::enable_shared_from_this, public IS_INSTANCE(Ledger) { // The basic Ledger structure, can be opened, closed, or synching friend class TransactionEngine; public: diff --git a/src/LedgerMaster.h b/src/LedgerMaster.h index 967026fed3..e3270710e5 100644 --- a/src/LedgerMaster.h +++ b/src/LedgerMaster.h @@ -91,6 +91,8 @@ public: void setLedgerRangePresent(uint32 minV, uint32 maxV) { mCompleteLedgers.setRange(minV, maxV); } bool addHeldTransaction(const Transaction::pointer& trans); + + void sweep(void) { mLedgerHistory.sweep(); } }; #endif diff --git a/src/Peer.cpp b/src/Peer.cpp index 609bf90e50..491991c23f 100644 --- a/src/Peer.cpp +++ b/src/Peer.cpp @@ -16,6 +16,7 @@ #include "Log.h" SETUP_LOG(); +DECLARE_INSTANCE(Peer); // Don't try to run past receiving nonsense from a peer #define TRUST_NETWORK diff --git a/src/Peer.h b/src/Peer.h index 76b11d092c..cc3a525c5b 100644 --- a/src/Peer.h +++ b/src/Peer.h @@ -11,6 +11,7 @@ #include "PackedMessage.h" #include "Ledger.h" #include "Transaction.h" +#include "InstanceCounter.h" enum PeerPunish { @@ -21,7 +22,9 @@ enum PeerPunish typedef std::pair ipPort; -class Peer : public boost::enable_shared_from_this +DEFINE_INSTANCE(Peer); + +class Peer : public boost::enable_shared_from_this, public IS_INSTANCE(Peer) { public: typedef boost::shared_ptr pointer; diff --git a/src/SHAMap.cpp b/src/SHAMap.cpp index b7a775778a..e3de616d28 100644 --- a/src/SHAMap.cpp +++ b/src/SHAMap.cpp @@ -17,6 +17,10 @@ SETUP_LOG(); +DECLARE_INSTANCE(SHAMap); +DECLARE_INSTANCE(SHAMapItem); +DECLARE_INSTANCE(SHAMapTreeNode); + std::size_t hash_value(const SHAMapNode& mn) { std::size_t seed = theApp->getNonceST(); diff --git a/src/SHAMap.h b/src/SHAMap.h index 107d3d8b65..6acadf6679 100644 --- a/src/SHAMap.h +++ b/src/SHAMap.h @@ -14,6 +14,11 @@ #include "ScopedLock.h" #include "Serializer.h" #include "HashedObject.h" +#include "InstanceCounter.h" + +DEFINE_INSTANCE(SHAMap); +DEFINE_INSTANCE(SHAMapItem); +DEFINE_INSTANCE(SHAMapTreeNode); class SHAMap; @@ -31,7 +36,7 @@ private: public: - static const int rootDepth=0; + static const int rootDepth = 0; SHAMapNode() : mDepth(0) { ; } SHAMapNode(int depth, const uint256& hash); @@ -77,7 +82,7 @@ extern std::size_t hash_value(const SHAMapNode& mn); inline std::ostream& operator<<(std::ostream& out, const SHAMapNode& node) { return out << node.getString(); } -class SHAMapItem +class SHAMapItem : public IS_INSTANCE(SHAMapItem) { // an item stored in a SHAMap public: typedef boost::shared_ptr pointer; @@ -135,7 +140,7 @@ enum SHAMapType smtFREE =3, // A tree not part of a ledger }; -class SHAMapTreeNode : public SHAMapNode +class SHAMapTreeNode : public SHAMapNode, public IS_INSTANCE(SHAMapTreeNode) { friend class SHAMap; @@ -276,7 +281,7 @@ public: extern std::ostream& operator<<(std::ostream&, const SHAMapMissingNode&); -class SHAMap +class SHAMap : public IS_INSTANCE(SHAMap) { public: typedef boost::shared_ptr pointer;