diff 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
line wrap: on
line diff
--- a/Framework/Plugins/StorageBackend.h	Thu Apr 01 19:18:19 2021 +0200
+++ b/Framework/Plugins/StorageBackend.h	Fri Apr 02 19:23:36 2021 +0200
@@ -31,7 +31,7 @@
   class StorageBackend : public boost::noncopyable
   {
   private:
-    DatabaseManager   manager_;
+    std::unique_ptr<DatabaseManager>   manager_;
 
   public:
     class IFileContentVisitor : public boost::noncopyable
@@ -44,16 +44,13 @@
       virtual void Assign(const std::string& content) = 0;
     };
     
-    explicit StorageBackend(IDatabaseFactory* factory);
-
     virtual ~StorageBackend()
     {
     }
 
-    DatabaseManager& GetManager() 
-    {
-      return manager_;
-    }
+    void SetDatabase(IDatabase* database);  // Takes ownership
+
+    DatabaseManager& GetManager();
     
     // NB: These methods will always be invoked in mutual exclusion,
     // as having access to some "DatabaseManager::Transaction" implies