comparison Framework/Plugins/DatabaseBackendAdapterV3.cpp @ 233:7d46c99523a2

reorganization
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 06 Apr 2021 15:07:27 +0200
parents 4e15eace9b90
children d1b124d116c1
comparison
equal deleted inserted replaced
232:4e15eace9b90 233:7d46c99523a2
22 #include "DatabaseBackendAdapterV3.h" 22 #include "DatabaseBackendAdapterV3.h"
23 23
24 #if defined(ORTHANC_PLUGINS_VERSION_IS_ABOVE) // Macro introduced in Orthanc 1.3.1 24 #if defined(ORTHANC_PLUGINS_VERSION_IS_ABOVE) // Macro introduced in Orthanc 1.3.1
25 # if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 9, 2) 25 # if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 9, 2)
26 26
27 #include <MultiThreading/SharedMessageQueue.h>
28
27 #include <OrthancException.h> 29 #include <OrthancException.h>
28 30
29 #include <stdexcept> 31 #include <stdexcept>
30 #include <list> 32 #include <list>
31 #include <string> 33 #include <string>
32 #include <cassert> 34 #include <cassert>
33
34 #include <boost/thread/mutex.hpp> // TODO - REMOVE
35 35
36 36
37 #define ORTHANC_PLUGINS_DATABASE_CATCH(context) \ 37 #define ORTHANC_PLUGINS_DATABASE_CATCH(context) \
38 catch (::Orthanc::OrthancException& e) \ 38 catch (::Orthanc::OrthancException& e) \
39 { \ 39 { \
95 OrthancPluginContext* GetContext() const 95 OrthancPluginContext* GetContext() const
96 { 96 {
97 return context_; 97 return context_;
98 } 98 }
99 99
100 uint32_t GetDatabaseVersion() 100 void OpenConnections()
101 {
102 boost::mutex::scoped_lock lock(managerMutex_);
103 return backend_->GetDatabaseVersion(GetManager());
104 }
105
106 void UpgradeDatabase(OrthancPluginStorageArea* storageArea,
107 uint32_t targetVersion)
108 {
109 boost::mutex::scoped_lock lock(managerMutex_);
110 backend_->UpgradeDatabase(GetManager(), targetVersion, storageArea);
111 }
112
113 void OpenConnection()
114 { 101 {
115 boost::mutex::scoped_lock lock(managerMutex_); 102 boost::mutex::scoped_lock lock(managerMutex_);
116 103
117 if (manager_.get() == NULL) 104 if (manager_.get() == NULL)
118 { 105 {
122 { 109 {
123 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); 110 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls);
124 } 111 }
125 } 112 }
126 113
127 void CloseConnection() 114 void CloseConnections()
128 { 115 {
129 boost::mutex::scoped_lock lock(managerMutex_); 116 boost::mutex::scoped_lock lock(managerMutex_);
130 117
131 if (manager_.get() == NULL) 118 if (manager_.get() == NULL)
132 { 119 {
888 { 875 {
889 DatabaseBackendAdapterV3::Adapter* adapter = reinterpret_cast<DatabaseBackendAdapterV3::Adapter*>(database); 876 DatabaseBackendAdapterV3::Adapter* adapter = reinterpret_cast<DatabaseBackendAdapterV3::Adapter*>(database);
890 877
891 try 878 try
892 { 879 {
893 adapter->OpenConnection(); 880 adapter->OpenConnections();
894 return OrthancPluginErrorCode_Success; 881 return OrthancPluginErrorCode_Success;
895 } 882 }
896 ORTHANC_PLUGINS_DATABASE_CATCH(adapter->GetContext()); 883 ORTHANC_PLUGINS_DATABASE_CATCH(adapter->GetContext());
897 } 884 }
898 885
901 { 888 {
902 DatabaseBackendAdapterV3::Adapter* adapter = reinterpret_cast<DatabaseBackendAdapterV3::Adapter*>(database); 889 DatabaseBackendAdapterV3::Adapter* adapter = reinterpret_cast<DatabaseBackendAdapterV3::Adapter*>(database);
903 890
904 try 891 try
905 { 892 {
906 adapter->CloseConnection(); 893 adapter->CloseConnections();
907 return OrthancPluginErrorCode_Success; 894 return OrthancPluginErrorCode_Success;
908 } 895 }
909 ORTHANC_PLUGINS_DATABASE_CATCH(adapter->GetContext()); 896 ORTHANC_PLUGINS_DATABASE_CATCH(adapter->GetContext());
910 } 897 }
911 898
941 { 928 {
942 DatabaseBackendAdapterV3::Adapter* adapter = reinterpret_cast<DatabaseBackendAdapterV3::Adapter*>(database); 929 DatabaseBackendAdapterV3::Adapter* adapter = reinterpret_cast<DatabaseBackendAdapterV3::Adapter*>(database);
943 930
944 try 931 try
945 { 932 {
946 *version = adapter->GetDatabaseVersion(); 933 DatabaseBackendAdapterV3::Adapter::DatabaseAccessor accessor(*adapter);
934 *version = accessor.GetBackend().GetDatabaseVersion(accessor.GetManager());
947 return OrthancPluginErrorCode_Success; 935 return OrthancPluginErrorCode_Success;
948 } 936 }
949 ORTHANC_PLUGINS_DATABASE_CATCH(adapter->GetContext()); 937 ORTHANC_PLUGINS_DATABASE_CATCH(adapter->GetContext());
950 } 938 }
951 939
956 { 944 {
957 DatabaseBackendAdapterV3::Adapter* adapter = reinterpret_cast<DatabaseBackendAdapterV3::Adapter*>(database); 945 DatabaseBackendAdapterV3::Adapter* adapter = reinterpret_cast<DatabaseBackendAdapterV3::Adapter*>(database);
958 946
959 try 947 try
960 { 948 {
961 adapter->UpgradeDatabase(storageArea, targetVersion); 949 DatabaseBackendAdapterV3::Adapter::DatabaseAccessor accessor(*adapter);
950 accessor.GetBackend().UpgradeDatabase(accessor.GetManager(), targetVersion, storageArea);
962 return OrthancPluginErrorCode_Success; 951 return OrthancPluginErrorCode_Success;
963 } 952 }
964 ORTHANC_PLUGINS_DATABASE_CATCH(adapter->GetContext()); 953 ORTHANC_PLUGINS_DATABASE_CATCH(adapter->GetContext());
965 } 954 }
966 955