aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/proj/internal/lru_cache.hpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/include/proj/internal/lru_cache.hpp b/include/proj/internal/lru_cache.hpp
index b7aff6b9..b2e997b3 100644
--- a/include/proj/internal/lru_cache.hpp
+++ b/include/proj/internal/lru_cache.hpp
@@ -160,6 +160,21 @@ class Cache {
keys_.splice(keys_.begin(), keys_, iter->second);
return iter->second->value;
}
+
+ /**
+ * The const reference returned here is only
+ * guaranteed to be valid till the next insert/delete
+ */
+ const Value* getPtr(const Key& k) {
+ Guard g(lock_);
+ const auto iter = cache_.find(k);
+ if (iter == cache_.end()) {
+ return nullptr;
+ }
+ keys_.splice(keys_.begin(), keys_, iter->second);
+ return &(iter->second->value);
+ }
+
/**
* returns a copy of the stored object (if found)
*/