From ba37349b95a62dbaf6e0074eb3b52fa9fb0d583e Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Wed, 20 Feb 2013 11:59:33 -0800 Subject: [PATCH] Function to get map entry with its hash. --- src/cpp/ripple/SHAMap.cpp | 11 +++++++++++ src/cpp/ripple/SHAMap.h | 1 + 2 files changed, 12 insertions(+) diff --git a/src/cpp/ripple/SHAMap.cpp b/src/cpp/ripple/SHAMap.cpp index 1ae98ed14..2e7c621be 100644 --- a/src/cpp/ripple/SHAMap.cpp +++ b/src/cpp/ripple/SHAMap.cpp @@ -485,6 +485,17 @@ SHAMapItem::pointer SHAMap::peekItem(const uint256& id, SHAMapTreeNode::TNType& return leaf->peekItem(); } +SHAMapItem::pointer SHAMap::peekItem(const uint256& id, uint256& hash) +{ + boost::recursive_mutex::scoped_lock sl(mLock); + SHAMapTreeNode* leaf = walkToPointer(id); + if (!leaf) + return no_item; + hash = leaf->getNodeHash(); + return leaf->peekItem(); +} + + bool SHAMap::hasItem(const uint256& id) { // does the tree have an item with this ID boost::recursive_mutex::scoped_lock sl(mLock); diff --git a/src/cpp/ripple/SHAMap.h b/src/cpp/ripple/SHAMap.h index 18919c7d8..ada464b01 100644 --- a/src/cpp/ripple/SHAMap.h +++ b/src/cpp/ripple/SHAMap.h @@ -406,6 +406,7 @@ public: // save a copy if you only need a temporary SHAMapItem::pointer peekItem(const uint256& id); + SHAMapItem::pointer peekItem(const uint256& id, uint256& hash); SHAMapItem::pointer peekItem(const uint256& id, SHAMapTreeNode::TNType& type); // traverse functions