diff PostgreSQL/Plugins/PostgreSQLIndex.cpp @ 225:94c9908e6aca

removed DatabaseManager member out of class IndexBackend
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 01 Apr 2021 19:18:19 +0200
parents 73cc85f3d9c1
children a4918d57435c
line wrap: on
line diff
--- a/PostgreSQL/Plugins/PostgreSQLIndex.cpp	Thu Apr 01 16:09:59 2021 +0200
+++ b/PostgreSQL/Plugins/PostgreSQLIndex.cpp	Thu Apr 01 19:18:19 2021 +0200
@@ -259,18 +259,19 @@
 
   PostgreSQLIndex::PostgreSQLIndex(OrthancPluginContext* context,
                                    const PostgreSQLParameters& parameters) :
-    IndexBackend(context, new Factory(*this)),
+    IndexBackend(context),
     parameters_(parameters),
     clearAll_(false)
   {
   }
 
   
-  int64_t PostgreSQLIndex::CreateResource(const char* publicId,
+  int64_t PostgreSQLIndex::CreateResource(DatabaseManager& manager,
+                                          const char* publicId,
                                           OrthancPluginResourceType type)
   {
     DatabaseManager::CachedStatement statement(
-      STATEMENT_FROM_HERE, GetManager(),
+      STATEMENT_FROM_HERE, manager,
       "INSERT INTO Resources VALUES(${}, ${type}, ${id}, NULL) RETURNING internalId");
      
     statement.SetParameterType("id", ValueType_Utf8String);
@@ -286,14 +287,14 @@
   }
 
 
-  uint64_t PostgreSQLIndex::GetTotalCompressedSize()
+  uint64_t PostgreSQLIndex::GetTotalCompressedSize(DatabaseManager& manager)
   {
     // Fast version if extension "./FastTotalSize.sql" is installed
     uint64_t result;
 
     {
       DatabaseManager::CachedStatement statement(
-        STATEMENT_FROM_HERE, GetManager(),
+        STATEMENT_FROM_HERE, manager,
         "SELECT value FROM GlobalIntegers WHERE key = 0");
 
       statement.SetReadOnly(true);
@@ -302,19 +303,19 @@
       result = static_cast<uint64_t>(ReadInteger64(statement, 0));
     }
     
-    assert(result == IndexBackend::GetTotalCompressedSize());
+    assert(result == IndexBackend::GetTotalCompressedSize(manager));
     return result;
   }
 
   
-  uint64_t PostgreSQLIndex::GetTotalUncompressedSize()
+  uint64_t PostgreSQLIndex::GetTotalUncompressedSize(DatabaseManager& manager)
   {
     // Fast version if extension "./FastTotalSize.sql" is installed
     uint64_t result;
 
     {
       DatabaseManager::CachedStatement statement(
-        STATEMENT_FROM_HERE, GetManager(),
+        STATEMENT_FROM_HERE, manager,
         "SELECT value FROM GlobalIntegers WHERE key = 1");
 
       statement.SetReadOnly(true);
@@ -323,20 +324,21 @@
       result = static_cast<uint64_t>(ReadInteger64(statement, 0));
     }
     
-    assert(result == IndexBackend::GetTotalUncompressedSize());
+    assert(result == IndexBackend::GetTotalUncompressedSize(manager));
     return result;
   }
 
 
 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1
   void PostgreSQLIndex::CreateInstance(OrthancPluginCreateInstanceResult& result,
+                                       DatabaseManager& manager,
                                        const char* hashPatient,
                                        const char* hashStudy,
                                        const char* hashSeries,
                                        const char* hashInstance)
   {
     DatabaseManager::CachedStatement statement(
-      STATEMENT_FROM_HERE, GetManager(),
+      STATEMENT_FROM_HERE, manager,
       "SELECT * FROM CreateInstance(${patient}, ${study}, ${series}, ${instance})");
 
     statement.SetParameterType("patient", ValueType_Utf8String);
@@ -379,7 +381,8 @@
 #endif
 
 
-  uint64_t PostgreSQLIndex::GetResourcesCount(OrthancPluginResourceType resourceType)
+  uint64_t PostgreSQLIndex::GetResourcesCount(DatabaseManager& manager,
+                                              OrthancPluginResourceType resourceType)
   {
     // Optimized version thanks to the "FastCountResources.sql" extension
 
@@ -392,7 +395,7 @@
     
     {
       DatabaseManager::CachedStatement statement(
-        STATEMENT_FROM_HERE, GetManager(),
+        STATEMENT_FROM_HERE, manager,
         "SELECT value FROM GlobalIntegers WHERE key = ${key}");
 
       statement.SetParameterType("key", ValueType_Integer64);
@@ -408,15 +411,15 @@
       result = static_cast<uint64_t>(ReadInteger64(statement, 0));
     }
       
-    assert(result == IndexBackend::GetResourcesCount(resourceType));
+    assert(result == IndexBackend::GetResourcesCount(manager, resourceType));
     return result;
   }
 
 
-  int64_t PostgreSQLIndex::GetLastChangeIndex()
+  int64_t PostgreSQLIndex::GetLastChangeIndex(DatabaseManager& manager)
   {
     DatabaseManager::CachedStatement statement(
-      STATEMENT_FROM_HERE, GetManager(),
+      STATEMENT_FROM_HERE, manager,
       "SELECT value FROM GlobalIntegers WHERE key = 6");
 
     statement.SetReadOnly(true);
@@ -426,7 +429,8 @@
   }
 
 
-  void PostgreSQLIndex::TagMostRecentPatient(int64_t patient)
+  void PostgreSQLIndex::TagMostRecentPatient(DatabaseManager& manager,
+                                             int64_t patient)
   {
     // This behavior is implemented in "CreateInstance()", and no
     // backward compatibility is necessary