changeset 1149:2da8b4d6f8c1 broker

renamed ParsedDicomFileCache as ParsedDicomCache
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 15 Nov 2019 12:35:35 +0100
parents 5e164c629923
children 7aad0984d38a
files Framework/Oracle/GenericOracleRunner.cpp Framework/Toolbox/ParsedDicomCache.cpp Framework/Toolbox/ParsedDicomCache.h Framework/Toolbox/ParsedDicomFileCache.cpp Framework/Toolbox/ParsedDicomFileCache.h Resources/CMake/OrthancStoneConfiguration.cmake
diffstat 6 files changed, 214 insertions(+), 214 deletions(-) [+]
line wrap: on
line diff
--- a/Framework/Oracle/GenericOracleRunner.cpp	Fri Nov 15 10:42:16 2019 +0100
+++ b/Framework/Oracle/GenericOracleRunner.cpp	Fri Nov 15 12:35:35 2019 +0100
@@ -217,7 +217,6 @@
       c = a / b;
     }
 
-    LOG(TRACE) << "Oracle reading file: " << c.string();
     return c.string();
   }
 
@@ -228,6 +227,7 @@
                           const ReadFileCommand& command)
   {
     std::string path = GetPath(root, command.GetPath());
+    LOG(TRACE) << "Oracle reading file: " << path;
 
     std::string content;
     Orthanc::SystemToolbox::ReadFile(content, path, true /* log */);
@@ -262,7 +262,7 @@
         }
 
         LOG(TRACE) << "Parsing DICOM file, " 
-                   << (command.IsPixelDataIncluded() ? "with" : "witout")
+                   << (command.IsPixelDataIncluded() ? "with" : "without")
                    << " pixel data: " << path;
 
         boost::posix_time::ptime start = boost::posix_time::microsec_clock::local_time();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Framework/Toolbox/ParsedDicomCache.cpp	Fri Nov 15 12:35:35 2019 +0100
@@ -0,0 +1,137 @@
+/**
+ * Stone of Orthanc
+ * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
+ * Department, University Hospital of Liege, Belgium
+ * Copyright (C) 2017-2019 Osimis S.A., Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU Affero General Public License
+ * as published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Affero General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+
+#include "ParsedDicomCache.h"
+
+namespace OrthancStone
+{
+  class ParsedDicomCache::Item : public Orthanc::ICacheable
+  {
+  private:
+    boost::mutex                             mutex_;
+    std::auto_ptr<Orthanc::ParsedDicomFile>  dicom_;
+    size_t                                   fileSize_;
+    bool                                     hasPixelData_;
+    
+  public:
+    Item(Orthanc::ParsedDicomFile* dicom,
+         size_t fileSize,
+         bool hasPixelData) :
+      dicom_(dicom),
+      fileSize_(fileSize),
+      hasPixelData_(hasPixelData)
+    {
+      if (dicom == NULL)
+      {
+        throw Orthanc::OrthancException(Orthanc::ErrorCode_NullPointer);
+      }
+    }
+
+    boost::mutex& GetMutex()
+    {
+      return mutex_;
+    }
+           
+    virtual size_t GetMemoryUsage() const
+    {
+      return fileSize_;
+    }
+
+    Orthanc::ParsedDicomFile& GetDicom() const
+    {
+      assert(dicom_.get() != NULL);
+      return *dicom_;
+    }
+
+    bool HasPixelData() const
+    {
+      return hasPixelData_;
+    }
+  };
+    
+
+  void ParsedDicomCache::Acquire(const std::string& key,
+                                 Orthanc::ParsedDicomFile* dicom,
+                                 size_t fileSize,
+                                 bool hasPixelData)
+  {
+    cache_.Acquire(key, new Item(dicom, fileSize, hasPixelData));
+  }
+
+  
+  ParsedDicomCache::Reader::Reader(ParsedDicomCache& cache,
+                                   const std::string& key) :
+    /**
+     * The "DcmFileFormat" object cannot be accessed from multiple
+     * threads, even if using only getters. An unique lock (mutex) is
+     * mandatory.
+     **/
+    accessor_(cache.cache_, key, true /* unique */)
+  {
+    if (accessor_.IsValid())
+    {
+      item_ = &dynamic_cast<Item&>(accessor_.GetValue());
+    }
+    else
+    {
+      item_ = NULL;
+    }
+  }
+
+
+  bool ParsedDicomCache::Reader::HasPixelData() const
+  {
+    if (item_ == NULL)
+    {
+      throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls);
+    }
+    else
+    {
+      return item_->HasPixelData();
+    }
+  }
+
+  
+  Orthanc::ParsedDicomFile& ParsedDicomCache::Reader::GetDicom() const
+  {
+    if (item_ == NULL)
+    {
+      throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls);
+    }
+    else
+    {
+      return item_->GetDicom();
+    }
+  }
+
+  
+  size_t ParsedDicomCache::Reader::GetFileSize() const
+  {
+    if (item_ == NULL)
+    {
+      throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls);
+    }
+    else
+    {
+      return item_->GetMemoryUsage();
+    }
+  }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Framework/Toolbox/ParsedDicomCache.h	Fri Nov 15 12:35:35 2019 +0100
@@ -0,0 +1,74 @@
+/**
+ * Stone of Orthanc
+ * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
+ * Department, University Hospital of Liege, Belgium
+ * Copyright (C) 2017-2019 Osimis S.A., Belgium
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU Affero General Public License
+ * as published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Affero General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ **/
+
+
+#pragma once
+
+#include <Core/Cache/MemoryObjectCache.h>
+#include <Core/DicomParsing/ParsedDicomFile.h>
+
+namespace OrthancStone
+{
+  class ParsedDicomCache : public boost::noncopyable
+  {
+  private:
+    class Item;
+    
+    Orthanc::MemoryObjectCache  cache_;
+
+  public:
+    ParsedDicomCache(size_t size)
+    {
+      cache_.SetMaximumSize(size);
+    }
+
+    void Invalidate(const std::string& key)
+    {
+      cache_.Invalidate(key);
+    }
+    
+    void Acquire(const std::string& key,
+                 Orthanc::ParsedDicomFile* dicom,
+                 size_t fileSize,
+                 bool hasPixelData);
+
+    class Reader : public boost::noncopyable
+    {
+    private:
+      Orthanc::MemoryObjectCache::Accessor accessor_;
+      Item*                                item_;
+
+    public:
+      Reader(ParsedDicomCache& cache,
+             const std::string& key);
+
+      bool IsValid() const
+      {
+        return item_ != NULL;
+      }
+
+      bool HasPixelData() const;
+
+      Orthanc::ParsedDicomFile& GetDicom() const;
+
+      size_t GetFileSize() const;
+    };
+  };
+}
--- a/Framework/Toolbox/ParsedDicomFileCache.cpp	Fri Nov 15 10:42:16 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-/**
- * Stone of Orthanc
- * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
- * Department, University Hospital of Liege, Belgium
- * Copyright (C) 2017-2019 Osimis S.A., Belgium
- *
- * This program is free software: you can redistribute it and/or
- * modify it under the terms of the GNU Affero General Public License
- * as published by the Free Software Foundation, either version 3 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Affero General Public License for more details.
- * 
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- **/
-
-
-#include "ParsedDicomFileCache.h"
-
-namespace OrthancStone
-{
-  class ParsedDicomFileCache::Item : public Orthanc::ICacheable
-  {
-  private:
-    boost::mutex                             mutex_;
-    std::auto_ptr<Orthanc::ParsedDicomFile>  dicom_;
-    size_t                                   fileSize_;
-    bool                                     hasPixelData_;
-    
-  public:
-    Item(Orthanc::ParsedDicomFile* dicom,
-         size_t fileSize,
-         bool hasPixelData) :
-      dicom_(dicom),
-      fileSize_(fileSize),
-      hasPixelData_(hasPixelData)
-    {
-      if (dicom == NULL)
-      {
-        throw Orthanc::OrthancException(Orthanc::ErrorCode_NullPointer);
-      }
-    }
-
-    boost::mutex& GetMutex()
-    {
-      return mutex_;
-    }
-           
-    virtual size_t GetMemoryUsage() const
-    {
-      return fileSize_;
-    }
-
-    Orthanc::ParsedDicomFile& GetDicom() const
-    {
-      assert(dicom_.get() != NULL);
-      return *dicom_;
-    }
-
-    bool HasPixelData() const
-    {
-      return hasPixelData_;
-    }
-  };
-    
-
-  void ParsedDicomFileCache::Acquire(const std::string& path,
-                                     Orthanc::ParsedDicomFile* dicom,
-                                     size_t fileSize,
-                                     bool hasPixelData)
-  {
-    cache_.Acquire(path, new Item(dicom, fileSize, hasPixelData));
-  }
-
-  
-  ParsedDicomFileCache::Reader::Reader(ParsedDicomFileCache& cache,
-                                       const std::string& path) :
-    /**
-     * The "DcmFileFormat" object cannot be accessed from multiple
-     * threads, even if using only getters. An unique lock (mutex) is
-     * mandatory.
-     **/
-    accessor_(cache.cache_, path, true /* unique */)
-  {
-    if (accessor_.IsValid())
-    {
-      item_ = &dynamic_cast<Item&>(accessor_.GetValue());
-    }
-    else
-    {
-      item_ = NULL;
-    }
-  }
-
-
-  bool ParsedDicomFileCache::Reader::HasPixelData() const
-  {
-    if (item_ == NULL)
-    {
-      throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls);
-    }
-    else
-    {
-      return item_->HasPixelData();
-    }
-  }
-
-  
-  Orthanc::ParsedDicomFile& ParsedDicomFileCache::Reader::GetDicom() const
-  {
-    if (item_ == NULL)
-    {
-      throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls);
-    }
-    else
-    {
-      return item_->GetDicom();
-    }
-  }
-
-  
-  size_t ParsedDicomFileCache::Reader::GetFileSize() const
-  {
-    if (item_ == NULL)
-    {
-      throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls);
-    }
-    else
-    {
-      return item_->GetMemoryUsage();
-    }
-  }
-}
--- a/Framework/Toolbox/ParsedDicomFileCache.h	Fri Nov 15 10:42:16 2019 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-/**
- * Stone of Orthanc
- * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
- * Department, University Hospital of Liege, Belgium
- * Copyright (C) 2017-2019 Osimis S.A., Belgium
- *
- * This program is free software: you can redistribute it and/or
- * modify it under the terms of the GNU Affero General Public License
- * as published by the Free Software Foundation, either version 3 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Affero General Public License for more details.
- * 
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- **/
-
-
-#pragma once
-
-#include <Core/Cache/MemoryObjectCache.h>
-#include <Core/DicomParsing/ParsedDicomFile.h>
-
-namespace OrthancStone
-{
-  class ParsedDicomFileCache : public boost::noncopyable
-  {
-  private:
-    class Item;
-    
-    Orthanc::MemoryObjectCache  cache_;
-
-  public:
-    ParsedDicomFileCache(size_t size)
-    {
-      cache_.SetMaximumSize(size);
-    }
-
-    void Invalidate(const std::string& path)
-    {
-      cache_.Invalidate(path);
-    }
-    
-    void Acquire(const std::string& path,
-                 Orthanc::ParsedDicomFile* dicom,
-                 size_t fileSize,
-                 bool hasPixelData);
-
-    class Reader : public boost::noncopyable
-    {
-    private:
-      Orthanc::MemoryObjectCache::Accessor accessor_;
-      Item*                                item_;
-
-    public:
-      Reader(ParsedDicomFileCache& cache,
-             const std::string& path);
-
-      bool IsValid() const
-      {
-        return item_ != NULL;
-      }
-
-      bool HasPixelData() const;
-
-      Orthanc::ParsedDicomFile& GetDicom() const;
-
-      size_t GetFileSize() const;
-    };
-  };
-}
--- a/Resources/CMake/OrthancStoneConfiguration.cmake	Fri Nov 15 10:42:16 2019 +0100
+++ b/Resources/CMake/OrthancStoneConfiguration.cmake	Fri Nov 15 12:35:35 2019 +0100
@@ -402,7 +402,7 @@
 if (ENABLE_DCMTK)
   list(APPEND ORTHANC_STONE_SOURCES
     ${ORTHANC_STONE_ROOT}/Framework/Oracle/ParseDicomFileCommand.cpp
-    ${ORTHANC_STONE_ROOT}/Framework/Toolbox/ParsedDicomFileCache.cpp
+    ${ORTHANC_STONE_ROOT}/Framework/Toolbox/ParsedDicomCache.cpp
     )
 endif()