comparison 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
comparison
equal deleted inserted replaced
1123:6c5a77637b23 1124:790ff7a5b3bf
35 35
36 #include "../OrthancException.h" 36 #include "../OrthancException.h"
37 #include "FileStorageAccessor.h" 37 #include "FileStorageAccessor.h"
38 #include "../HttpServer/BufferHttpSender.h" 38 #include "../HttpServer/BufferHttpSender.h"
39 39
40 #include <memory>
41
40 namespace Orthanc 42 namespace Orthanc
41 { 43 {
42 FileInfo CompressedFileStorageAccessor::WriteInternal(const void* data, 44 FileInfo CompressedFileStorageAccessor::WriteInternal(const void* data,
43 size_t size, 45 size_t size,
44 FileContentType type) 46 FileContentType type)
68 if (storeMD5_) 70 if (storeMD5_)
69 { 71 {
70 Toolbox::ComputeMD5(compressedMD5, compressed); 72 Toolbox::ComputeMD5(compressedMD5, compressed);
71 } 73 }
72 74
73 std::string uuid = storage_.Create(compressed); 75 std::string uuid;
76 if (compressed.size() > 0)
77 {
78 uuid = storage_.Create(&compressed[0], compressed.size());
79 }
80 else
81 {
82 uuid = storage_.Create(NULL, 0);
83 }
84
74 return FileInfo(uuid, type, size, md5, 85 return FileInfo(uuid, type, size, md5,
75 CompressionType_Zlib, compressed.size(), compressedMD5); 86 CompressionType_Zlib, compressed.size(), compressedMD5);
76 } 87 }
77 88
78 default: 89 default:
79 throw OrthancException(ErrorCode_NotImplemented); 90 throw OrthancException(ErrorCode_NotImplemented);
80 } 91 }
81 } 92 }
82 93
83 CompressedFileStorageAccessor::CompressedFileStorageAccessor(FilesystemStorage& storage) : 94 CompressedFileStorageAccessor::CompressedFileStorageAccessor(IStorageArea& storage) :
84 storage_(storage) 95 storage_(storage)
85 { 96 {
86 compressionType_ = CompressionType_None; 97 compressionType_ = CompressionType_None;
87 } 98 }
88 99