comparison Core/FileStorage/CompressedFileStorageAccessor.h @ 1134:ba9fd42284d0

preparing storage plugin
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 09 Sep 2014 12:53:49 +0200
parents bf67431a7383
children 6e7e5ed91c2d
comparison
equal deleted inserted replaced
1133:382e162c074c 1134:ba9fd42284d0
39 namespace Orthanc 39 namespace Orthanc
40 { 40 {
41 class CompressedFileStorageAccessor : public StorageAccessor 41 class CompressedFileStorageAccessor : public StorageAccessor
42 { 42 {
43 private: 43 private:
44 IStorageArea& storage_; 44 IStorageArea* storage_;
45 ZlibCompressor zlib_; 45 ZlibCompressor zlib_;
46 CompressionType compressionType_; 46 CompressionType compressionType_;
47 47
48 protected: 48 protected:
49 virtual FileInfo WriteInternal(const void* data, 49 virtual FileInfo WriteInternal(const void* data,
50 size_t size, 50 size_t size,
51 FileContentType type); 51 FileContentType type);
52 52
53 public: 53 public:
54 CompressedFileStorageAccessor();
55
54 CompressedFileStorageAccessor(IStorageArea& storage); 56 CompressedFileStorageAccessor(IStorageArea& storage);
57
58 void SetStorageArea(IStorageArea& storage)
59 {
60 storage_ = &storage;
61 }
62
63 bool HasStorageArea() const
64 {
65 return storage_ != NULL;
66 }
67
68 IStorageArea& GetStorageArea();
55 69
56 void SetCompressionForNextOperations(CompressionType compression) 70 void SetCompressionForNextOperations(CompressionType compression)
57 { 71 {
58 compressionType_ = compression; 72 compressionType_ = compression;
59 } 73 }
69 83
70 virtual HttpFileSender* ConstructHttpFileSender(const std::string& uuid, 84 virtual HttpFileSender* ConstructHttpFileSender(const std::string& uuid,
71 FileContentType type); 85 FileContentType type);
72 86
73 virtual void Remove(const std::string& uuid, 87 virtual void Remove(const std::string& uuid,
74 FileContentType type) 88 FileContentType type);
75 {
76 storage_.Remove(uuid, type);
77 }
78 }; 89 };
79 } 90 }