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