comparison Framework/Plugins/StorageBackend.h @ 226:a4918d57435c

DatabaseManager doesn't IDatabaseFactory anymore
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 02 Apr 2021 19:23:36 +0200
parents dd6cfc250747
children 675f8322eb7c
comparison
equal deleted inserted replaced
225:94c9908e6aca 226:a4918d57435c
29 namespace OrthancDatabases 29 namespace OrthancDatabases
30 { 30 {
31 class StorageBackend : public boost::noncopyable 31 class StorageBackend : public boost::noncopyable
32 { 32 {
33 private: 33 private:
34 DatabaseManager manager_; 34 std::unique_ptr<DatabaseManager> manager_;
35 35
36 public: 36 public:
37 class IFileContentVisitor : public boost::noncopyable 37 class IFileContentVisitor : public boost::noncopyable
38 { 38 {
39 public: 39 public:
42 } 42 }
43 43
44 virtual void Assign(const std::string& content) = 0; 44 virtual void Assign(const std::string& content) = 0;
45 }; 45 };
46 46
47 explicit StorageBackend(IDatabaseFactory* factory);
48
49 virtual ~StorageBackend() 47 virtual ~StorageBackend()
50 { 48 {
51 } 49 }
52 50
53 DatabaseManager& GetManager() 51 void SetDatabase(IDatabase* database); // Takes ownership
54 { 52
55 return manager_; 53 DatabaseManager& GetManager();
56 }
57 54
58 // NB: These methods will always be invoked in mutual exclusion, 55 // NB: These methods will always be invoked in mutual exclusion,
59 // as having access to some "DatabaseManager::Transaction" implies 56 // as having access to some "DatabaseManager::Transaction" implies
60 // that the parent "DatabaseManager" is locked 57 // that the parent "DatabaseManager" is locked
61 virtual void Create(DatabaseManager::Transaction& transaction, 58 virtual void Create(DatabaseManager::Transaction& transaction,