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