diff Framework/Plugins/IndexBackend.cpp @ 222:c8e06b41feec

refactoring registration/finalization of index backend
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 01 Apr 2021 11:16:13 +0200
parents 73cc85f3d9c1
children 94c9908e6aca
line wrap: on
line diff
--- a/Framework/Plugins/IndexBackend.cpp	Tue Mar 30 10:40:34 2021 +0200
+++ b/Framework/Plugins/IndexBackend.cpp	Thu Apr 01 11:16:13 2021 +0200
@@ -2221,13 +2221,18 @@
   }
 
 
-  void IndexBackend::Register(IndexBackend& backend)
+  void IndexBackend::Register(IndexBackend* backend)
   {
+    if (backend == NULL)
+    {
+      throw Orthanc::OrthancException(Orthanc::ErrorCode_NullPointer);
+    }
+    
     bool hasLoadedV3 = false;
       
 #if defined(ORTHANC_PLUGINS_VERSION_IS_ABOVE)         // Macro introduced in Orthanc 1.3.1
 #  if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 9, 2)
-    if (OrthancPluginCheckVersionAdvanced(backend.GetContext(), 1, 9, 2) == 1)
+    if (OrthancPluginCheckVersionAdvanced(backend->GetContext(), 1, 9, 2) == 1)
     {
       OrthancDatabases::DatabaseBackendAdapterV3::Register(backend);
       hasLoadedV3 = true;
@@ -2241,4 +2246,16 @@
       OrthancDatabases::DatabaseBackendAdapterV2::Register(backend);
     }
   }
+
+
+  void IndexBackend::Finalize()
+  {
+    OrthancDatabases::DatabaseBackendAdapterV2::Finalize();
+
+#if defined(ORTHANC_PLUGINS_VERSION_IS_ABOVE)         // Macro introduced in Orthanc 1.3.1
+#  if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 9, 2)
+    OrthancDatabases::DatabaseBackendAdapterV3::Finalize();
+#  endif
+#endif
+  }
 }