diff PostgreSQL/Plugins/PostgreSQLStorageArea.cpp @ 255:d663d9e44f8d

reintroduction of IDatabaseFactory into DatabaseManager
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 14 Apr 2021 17:57:08 +0200
parents 35598014f140
children 567761f0c1ea
line wrap: on
line diff
--- a/PostgreSQL/Plugins/PostgreSQLStorageArea.cpp	Wed Apr 14 15:33:57 2021 +0200
+++ b/PostgreSQL/Plugins/PostgreSQLStorageArea.cpp	Wed Apr 14 17:57:08 2021 +0200
@@ -70,16 +70,13 @@
 
 
   PostgreSQLStorageArea::PostgreSQLStorageArea(const PostgreSQLParameters& parameters,
-                                               bool clearAll)
+                                               bool clearAll) :
+    StorageBackend(PostgreSQLDatabase::CreateDatabaseFactory(parameters))
   {
-    std::unique_ptr<PostgreSQLDatabase> database(PostgreSQLDatabase::OpenDatabaseConnection(parameters));
-    
-    if (database.get() == NULL)
     {
-      throw Orthanc::OrthancException(Orthanc::ErrorCode_InternalError);
+      AccessorBase accessor(*this);
+      PostgreSQLDatabase& database = dynamic_cast<PostgreSQLDatabase&>(accessor.GetManager().GetDatabase());
+      ConfigureDatabase(database, parameters, clearAll);
     }
-    
-    ConfigureDatabase(*database, parameters, clearAll);
-    SetDatabase(database.release());
   }
 }