diff Framework/Plugins/StorageBackend.h @ 219:dd6cfc250747

removed useless class StorageAreaBuffer
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 29 Mar 2021 14:52:55 +0200
parents a51ce147dbe0
children a4918d57435c
line wrap: on
line diff
--- a/Framework/Plugins/StorageBackend.h	Fri Mar 26 18:06:46 2021 +0100
+++ b/Framework/Plugins/StorageBackend.h	Mon Mar 29 14:52:55 2021 +0200
@@ -21,7 +21,6 @@
 
 #pragma once
 
-#include "StorageAreaBuffer.h"
 #include "../Common/DatabaseManager.h"
 
 #include <orthanc/OrthancCDatabasePlugin.h>
@@ -35,6 +34,16 @@
     DatabaseManager   manager_;
 
   public:
+    class IFileContentVisitor : public boost::noncopyable
+    {
+    public:
+      virtual ~IFileContentVisitor()
+      {
+      }
+
+      virtual void Assign(const std::string& content) = 0;
+    };
+    
     explicit StorageBackend(IDatabaseFactory* factory);
 
     virtual ~StorageBackend()
@@ -53,20 +62,26 @@
                         const std::string& uuid,
                         const void* content,
                         size_t size,
-                        OrthancPluginContentType type);
+                        OrthancPluginContentType type) ORTHANC_FINAL;
 
-    virtual void Read(StorageAreaBuffer& target,
+    virtual void Read(IFileContentVisitor& target,
                       DatabaseManager::Transaction& transaction, 
                       const std::string& uuid,
-                      OrthancPluginContentType type);
+                      OrthancPluginContentType type) ORTHANC_FINAL;
 
     virtual void Remove(DatabaseManager::Transaction& transaction,
                         const std::string& uuid,
-                        OrthancPluginContentType type);
+                        OrthancPluginContentType type) ORTHANC_FINAL;
 
     static void Register(OrthancPluginContext* context,
                          StorageBackend* backend);   // Takes ownership
 
     static void Finalize();
+
+    // For unit tests
+    void ReadToString(std::string& target,
+                      DatabaseManager::Transaction& transaction, 
+                      const std::string& uuid,
+                      OrthancPluginContentType type);
   };
 }