diff Core/FileStorage/CompressedFileStorageAccessor.cpp @ 1124:790ff7a5b3bf

IStorageArea abstraction
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 05 Sep 2014 16:28:34 +0200
parents 6c5a77637b23
children bf67431a7383
line wrap: on
line diff
--- a/Core/FileStorage/CompressedFileStorageAccessor.cpp	Fri Sep 05 15:59:04 2014 +0200
+++ b/Core/FileStorage/CompressedFileStorageAccessor.cpp	Fri Sep 05 16:28:34 2014 +0200
@@ -37,6 +37,8 @@
 #include "FileStorageAccessor.h"
 #include "../HttpServer/BufferHttpSender.h"
 
+#include <memory>
+
 namespace Orthanc
 {
   FileInfo CompressedFileStorageAccessor::WriteInternal(const void* data,
@@ -70,7 +72,16 @@
         Toolbox::ComputeMD5(compressedMD5, compressed);
       }
 
-      std::string uuid = storage_.Create(compressed);
+      std::string uuid;
+      if (compressed.size() > 0)
+      {
+        uuid = storage_.Create(&compressed[0], compressed.size());
+      }
+      else
+      {
+        uuid = storage_.Create(NULL, 0);
+      }
+
       return FileInfo(uuid, type, size, md5,
                       CompressionType_Zlib, compressed.size(), compressedMD5);
     }
@@ -80,7 +91,7 @@
     }
   }
 
-  CompressedFileStorageAccessor::CompressedFileStorageAccessor(FilesystemStorage& storage) : 
+  CompressedFileStorageAccessor::CompressedFileStorageAccessor(IStorageArea& storage) : 
     storage_(storage)
   {
     compressionType_ = CompressionType_None;