changeset 3457:9ea218c90057

merge
author Alain Mazy <alain@mazy.be>
date Wed, 03 Jul 2019 10:31:06 +0200
parents ca3ac0f210d6 (diff) 0013818bf6d4 (current diff)
children 4e34fd3e226a fbe22748cd9c
files
diffstat 3 files changed, 32 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/Core/Cache/LeastRecentlyUsedIndex.h	Sat Jun 29 10:35:58 2019 +0200
+++ b/Core/Cache/LeastRecentlyUsedIndex.h	Wed Jul 03 10:31:06 2019 +0200
@@ -35,6 +35,7 @@
 
 #include <list>
 #include <map>
+#include <vector>
 #include <boost/noncopyable.hpp>
 #include <cassert>
 
@@ -151,6 +152,17 @@
     const T& GetOldest() const;
     
     const Payload& GetOldestPayload() const;
+
+    void GetAllKeys(std::vector<T>& keys) const
+    {
+      keys.clear();
+      keys.reserve(GetSize());
+      for (typename Index::const_iterator it = index_.begin(); it != index_.end(); it++)
+      {
+        keys.push_back(it->first);
+      }
+    }
+
   };
 
 
--- a/Core/Images/PamReader.h	Sat Jun 29 10:35:58 2019 +0200
+++ b/Core/Images/PamReader.h	Wed Jul 03 10:31:06 2019 +0200
@@ -49,6 +49,7 @@
     std::string content_;
 
   public:
+
 #if ORTHANC_SANDBOXED == 0
     void ReadFromFile(const std::string& filename);
 #endif
--- a/UnitTestsSources/MemoryCacheTests.cpp	Sat Jun 29 10:35:58 2019 +0200
+++ b/UnitTestsSources/MemoryCacheTests.cpp	Wed Jul 03 10:31:06 2019 +0200
@@ -35,6 +35,7 @@
 #include "gtest/gtest.h"
 
 #include <memory>
+#include <algorithm>
 #include <boost/thread.hpp>
 #include <boost/lexical_cast.hpp>
 
@@ -170,6 +171,24 @@
   ASSERT_TRUE(r.IsEmpty());
 }
 
+TEST(LRU, GetAllKeys)
+{
+  Orthanc::LeastRecentlyUsedIndex<std::string, int> r;
+  std::vector<std::string> keys;
+
+  r.AddOrMakeMostRecent("a", 420);
+  r.GetAllKeys(keys);
+
+  ASSERT_EQ(1, keys.size());
+  ASSERT_EQ("a", keys[0]);
+
+  r.AddOrMakeMostRecent("b", 421);
+  r.GetAllKeys(keys);
+
+  ASSERT_EQ(2, keys.size());
+  ASSERT_TRUE(std::find(keys.begin(), keys.end(),"a") != keys.end());
+  ASSERT_TRUE(std::find(keys.begin(), keys.end(),"b") != keys.end());
+}