diff Framework/Oracle/ThreadedOracle.cpp @ 1124:a8bf81756839 broker

unsuccessful attempt to cache ParseDicomFileCommand
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 05 Nov 2019 18:49:06 +0100
parents 79b1b541fe15
children a8c3908ecba9
line wrap: on
line diff
--- a/Framework/Oracle/ThreadedOracle.cpp	Mon Nov 04 15:54:57 2019 +0100
+++ b/Framework/Oracle/ThreadedOracle.cpp	Tue Nov 05 18:49:06 2019 +0100
@@ -181,6 +181,11 @@
           boost::mutex::scoped_lock lock(mutex_);
           runner.SetOrthanc(orthanc_);
           runner.SetRootDirectory(rootDirectory_);
+
+          if (dicomCache_)
+          {
+            runner.SetDicomCache(dicomCache_);
+          }
         }
         
         std::auto_ptr<IMessage> message(runner.Run(item.GetCommand()));
@@ -355,6 +360,31 @@
   }
 
 
+  void ThreadedOracle::SetDicomCacheSize(size_t size)
+  {
+#if ORTHANC_ENABLE_DCMTK == 1
+    boost::mutex::scoped_lock lock(mutex_);
+
+    if (state_ != State_Setup)
+    {
+      LOG(ERROR) << "ThreadedOracle::SetDicomCacheSize(): (state_ != State_Setup)";
+      throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls);
+    }
+    else
+    {
+      if (size == 0)
+      {
+        dicomCache_.reset();
+      }
+      else
+      {
+        dicomCache_.reset(new ParsedDicomFileCache(size));
+      }
+    }
+#endif
+  }
+
+
   void ThreadedOracle::Start()
   {
     boost::mutex::scoped_lock lock(mutex_);