comparison Framework/Plugins/StorageBackend.cpp @ 226:a4918d57435c

DatabaseManager doesn't IDatabaseFactory anymore
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 02 Apr 2021 19:23:36 +0200
parents dd6cfc250747
children 675f8322eb7c
comparison
equal deleted inserted replaced
225:94c9908e6aca 226:a4918d57435c
52 } 52 }
53 53
54 54
55 namespace OrthancDatabases 55 namespace OrthancDatabases
56 { 56 {
57 StorageBackend::StorageBackend(IDatabaseFactory* factory) : 57 void StorageBackend::SetDatabase(IDatabase* database)
58 manager_(factory) 58 {
59 { 59 if (database == NULL)
60 } 60 {
61 61 throw Orthanc::OrthancException(Orthanc::ErrorCode_NullPointer);
62 }
63 else if (manager_.get() != NULL)
64 {
65 delete database;
66 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls);
67 }
68 else
69 {
70 manager_.reset(new DatabaseManager(database));
71 }
72 }
73
74 DatabaseManager& StorageBackend::GetManager()
75 {
76 if (manager_.get() == NULL)
77 {
78 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls);
79 }
80 else
81 {
82 return *manager_;
83 }
84 }
85
62 86
63 void StorageBackend::Create(DatabaseManager::Transaction& transaction, 87 void StorageBackend::Create(DatabaseManager::Transaction& transaction,
64 const std::string& uuid, 88 const std::string& uuid,
65 const void* content, 89 const void* content,
66 size_t size, 90 size_t size,
385 } 409 }
386 else 410 else
387 { 411 {
388 context_ = context; 412 context_ = context;
389 backend_.reset(backend); 413 backend_.reset(backend);
390 backend_->GetManager().Open();
391 414
392 bool hasLoadedV2 = false; 415 bool hasLoadedV2 = false;
393 416
394 #if defined(ORTHANC_PLUGINS_VERSION_IS_ABOVE) // Macro introduced in Orthanc 1.3.1 417 #if defined(ORTHANC_PLUGINS_VERSION_IS_ABOVE) // Macro introduced in Orthanc 1.3.1
395 # if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 9, 0) 418 # if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 9, 0)