comparison OrthancServer/Plugins/Engine/OrthancPluginDatabaseV4.cpp @ 5517:0d433132b249 pg-transactions

refactoring IDatabaseWrapper::Capabilities
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 29 Jan 2024 19:19:52 +0100
parents 4dd50c4b985a
children 2c5eb1ef26a0
comparison
equal deleted inserted replaced
5516:d9c9f3c57f4f 5517:0d433132b249
303 // Destructors must not throw exceptions 303 // Destructors must not throw exceptions
304 LOG(ERROR) << "Cannot finalize the database engine: " << e.What(); 304 LOG(ERROR) << "Cannot finalize the database engine: " << e.What();
305 } 305 }
306 } 306 }
307 307
308 virtual const IDatabaseWrapper::Capabilities& GetDatabaseCapabilities() const ORTHANC_OVERRIDE 308 virtual const Capabilities GetDatabaseCapabilities() const ORTHANC_OVERRIDE
309 { 309 {
310 return database_.GetDatabaseCapabilities(); 310 return database_.GetDatabaseCapabilities();
311 } 311 }
312 312
313 void* GetTransactionObject() 313 void* GetTransactionObject()
1290 library_(library), 1290 library_(library),
1291 errorDictionary_(errorDictionary), 1291 errorDictionary_(errorDictionary),
1292 definition_(database), 1292 definition_(database),
1293 serverIdentifier_(serverIdentifier), 1293 serverIdentifier_(serverIdentifier),
1294 open_(false), 1294 open_(false),
1295 databaseVersion_(0), 1295 databaseVersion_(0)
1296 dbCapabilities_(false, false, false, false, false, false) // updated in Open()
1297 { 1296 {
1298 CLOG(INFO, PLUGINS) << "Identifier of this Orthanc server for the global properties " 1297 CLOG(INFO, PLUGINS) << "Identifier of this Orthanc server for the global properties "
1299 << "of the custom database: \"" << serverIdentifier << "\""; 1298 << "of the custom database: \"" << serverIdentifier << "\"";
1300 1299
1301 if (definition_.backend == NULL || 1300 if (definition_.backend == NULL ||
1361 DatabasePluginMessages::DatabaseResponse response; 1360 DatabasePluginMessages::DatabaseResponse response;
1362 ExecuteDatabase(response, *this, DatabasePluginMessages::OPERATION_GET_SYSTEM_INFORMATION, request); 1361 ExecuteDatabase(response, *this, DatabasePluginMessages::OPERATION_GET_SYSTEM_INFORMATION, request);
1363 1362
1364 const ::Orthanc::DatabasePluginMessages::GetSystemInformation_Response& systemInfo = response.get_system_information(); 1363 const ::Orthanc::DatabasePluginMessages::GetSystemInformation_Response& systemInfo = response.get_system_information();
1365 databaseVersion_ = systemInfo.database_version(); 1364 databaseVersion_ = systemInfo.database_version();
1366 dbCapabilities_.hasFlushToDisk_ = systemInfo.supports_flush_to_disk(); 1365 dbCapabilities_.SetFlushToDisk(systemInfo.supports_flush_to_disk());
1367 dbCapabilities_.hasRevisionsSupport_ = systemInfo.supports_revisions(); 1366 dbCapabilities_.SetRevisionsSupport(systemInfo.supports_revisions());
1368 dbCapabilities_.hasLabelsSupport_ = systemInfo.supports_labels(); 1367 dbCapabilities_.SetLabelsSupport(systemInfo.supports_labels());
1369 dbCapabilities_.hasAtomicIncrementGlobalProperty_ = systemInfo.supports_increment_global_property(); 1368 dbCapabilities_.SetAtomicIncrementGlobalProperty(systemInfo.supports_increment_global_property());
1370 dbCapabilities_.hasUpdateAndGetStatistics_ = systemInfo.has_update_and_get_statistics(); 1369 dbCapabilities_.SetUpdateAndGetStatistics(systemInfo.has_update_and_get_statistics());
1371 dbCapabilities_.hasMeasureLatency_ = systemInfo.has_measure_latency(); 1370 dbCapabilities_.SetMeasureLatency(systemInfo.has_measure_latency());
1372 } 1371 }
1373 1372
1374 open_ = true; 1373 open_ = true;
1375 } 1374 }
1376 1375
1489 throw; 1488 throw;
1490 } 1489 }
1491 } 1490 }
1492 } 1491 }
1493 1492
1494 const IDatabaseWrapper::Capabilities& OrthancPluginDatabaseV4::GetDatabaseCapabilities() const 1493
1494 const IDatabaseWrapper::Capabilities OrthancPluginDatabaseV4::GetDatabaseCapabilities() const
1495 { 1495 {
1496 if (!open_) 1496 if (!open_)
1497 { 1497 {
1498 throw OrthancException(ErrorCode_BadSequenceOfCalls); 1498 throw OrthancException(ErrorCode_BadSequenceOfCalls);
1499 } 1499 }
1500 else 1500 else
1501 { 1501 {
1502 return dbCapabilities_; 1502 return dbCapabilities_;
1503 } 1503 }
1504 } 1504 }
1505
1506
1507 } 1505 }