From bc3f64137360764a046c694a559ed4e0fcbae5c8 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Fri, 14 Dec 2012 09:56:28 -0800 Subject: [PATCH] Track when a node was last accessed. --- src/cpp/ripple/SHAMap.cpp | 1 + src/cpp/ripple/SHAMap.h | 5 +++-- src/cpp/ripple/SHAMapNodes.cpp | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/cpp/ripple/SHAMap.cpp b/src/cpp/ripple/SHAMap.cpp index 58524afab..bf55ea16c 100644 --- a/src/cpp/ripple/SHAMap.cpp +++ b/src/cpp/ripple/SHAMap.cpp @@ -144,6 +144,7 @@ SHAMapTreeNode::pointer SHAMap::checkCacheNode(const SHAMapNode& iNode) boost::unordered_map::iterator it = mTNByID.find(iNode); if (it == mTNByID.end()) return SHAMapTreeNode::pointer(); + it->second->touch(mSeq); return it->second; } diff --git a/src/cpp/ripple/SHAMap.h b/src/cpp/ripple/SHAMap.h index e02627bbf..df464bef1 100644 --- a/src/cpp/ripple/SHAMap.h +++ b/src/cpp/ripple/SHAMap.h @@ -161,7 +161,7 @@ private: uint256 mHash; uint256 mHashes[16]; SHAMapItem::pointer mItem; - uint32 mSeq; + uint32 mSeq, mAccessSeq; TNType mType; bool mFullBelow; @@ -183,7 +183,8 @@ public: // node functions uint32 getSeq() const { return mSeq; } - void setSeq(uint32 s) { mSeq = s; } + void setSeq(uint32 s) { mAccessSeq = mSeq = s; } + void touch(uint32 s) { mAccessSeq = s; } const uint256& getNodeHash() const { return mHash; } TNType getType() const { return mType; } diff --git a/src/cpp/ripple/SHAMapNodes.cpp b/src/cpp/ripple/SHAMapNodes.cpp index f4caccb8b..a296c54f7 100644 --- a/src/cpp/ripple/SHAMapNodes.cpp +++ b/src/cpp/ripple/SHAMapNodes.cpp @@ -173,8 +173,8 @@ void SHAMapNode::dump() const Log(lsDEBUG) << getString(); } -SHAMapTreeNode::SHAMapTreeNode(uint32 seq, const SHAMapNode& nodeID) : SHAMapNode(nodeID), mHash(0), mSeq(seq), - mType(tnERROR), mFullBelow(false) +SHAMapTreeNode::SHAMapTreeNode(uint32 seq, const SHAMapNode& nodeID) : SHAMapNode(nodeID), mHash(0), + mSeq(seq), mAccessSeq(seq), mType(tnERROR), mFullBelow(false) { }