Mercurial > hg > orthanc-databases
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 |