Mercurial > hg > orthanc
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 |