comparison Framework/Plugins/StorageBackend.h @ 194:a51ce147dbe0

refactoring using new class StorageAreaBuffer
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 08 Jan 2021 14:40:03 +0100
parents 3236894320d6
children dd6cfc250747
comparison
equal deleted inserted replaced
193:3236894320d6 194:a51ce147dbe0
19 **/ 19 **/
20 20
21 21
22 #pragma once 22 #pragma once
23 23
24 #include "StorageAreaBuffer.h"
24 #include "../Common/DatabaseManager.h" 25 #include "../Common/DatabaseManager.h"
26
25 #include <orthanc/OrthancCDatabasePlugin.h> 27 #include <orthanc/OrthancCDatabasePlugin.h>
26 28
27 29
28 namespace OrthancDatabases 30 namespace OrthancDatabases
29 { 31 {
30 class StorageBackend : public boost::noncopyable 32 class StorageBackend : public boost::noncopyable
31 { 33 {
32 private: 34 private:
33 DatabaseManager manager_; 35 DatabaseManager manager_;
34
35 protected:
36 void ReadFromString(void*& buffer,
37 size_t& size,
38 const std::string& content);
39 36
40 public: 37 public:
41 explicit StorageBackend(IDatabaseFactory* factory); 38 explicit StorageBackend(IDatabaseFactory* factory);
42 39
43 virtual ~StorageBackend() 40 virtual ~StorageBackend()
56 const std::string& uuid, 53 const std::string& uuid,
57 const void* content, 54 const void* content,
58 size_t size, 55 size_t size,
59 OrthancPluginContentType type); 56 OrthancPluginContentType type);
60 57
61 virtual void Read(void*& content, 58 virtual void Read(StorageAreaBuffer& target,
62 size_t& size,
63 DatabaseManager::Transaction& transaction, 59 DatabaseManager::Transaction& transaction,
64 const std::string& uuid, 60 const std::string& uuid,
65 OrthancPluginContentType type); 61 OrthancPluginContentType type);
66 62
67 virtual void Remove(DatabaseManager::Transaction& transaction, 63 virtual void Remove(DatabaseManager::Transaction& transaction,
69 OrthancPluginContentType type); 65 OrthancPluginContentType type);
70 66
71 static void Register(OrthancPluginContext* context, 67 static void Register(OrthancPluginContext* context,
72 StorageBackend* backend); // Takes ownership 68 StorageBackend* backend); // Takes ownership
73 69
74 // For unit testing!
75 void ReadToString(std::string& content,
76 DatabaseManager::Transaction& transaction,
77 const std::string& uuid,
78 OrthancPluginContentType type);
79
80 static void Finalize(); 70 static void Finalize();
81 }; 71 };
82 } 72 }