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