Mercurial > hg > orthanc-databases
comparison Framework/Plugins/StorageBackend.cpp @ 255:d663d9e44f8d
reintroduction of IDatabaseFactory into DatabaseManager
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 14 Apr 2021 17:57:08 +0200 |
parents | 33fa478c119a |
children | cd73e34d5411 |
comparison
equal
deleted
inserted
replaced
254:8a4ce70f456a | 255:d663d9e44f8d |
---|---|
54 } | 54 } |
55 | 55 |
56 | 56 |
57 namespace OrthancDatabases | 57 namespace OrthancDatabases |
58 { | 58 { |
59 void StorageBackend::SetDatabase(IDatabase* database) | 59 StorageBackend::StorageBackend(IDatabaseFactory* factory) : |
60 { | 60 manager_(factory) |
61 if (database == NULL) | 61 { |
62 { | |
63 throw Orthanc::OrthancException(Orthanc::ErrorCode_NullPointer); | |
64 } | |
65 else if (manager_.get() != NULL) | |
66 { | |
67 delete database; | |
68 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); | |
69 } | |
70 else | |
71 { | |
72 manager_.reset(new DatabaseManager(database)); | |
73 } | |
74 } | 62 } |
75 | 63 |
76 DatabaseManager& StorageBackend::GetManager() | |
77 { | |
78 if (manager_.get() == NULL) | |
79 { | |
80 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); | |
81 } | |
82 else | |
83 { | |
84 return *manager_; | |
85 } | |
86 } | |
87 | |
88 | |
89 void StorageBackend::AccessorBase::Create(const std::string& uuid, | 64 void StorageBackend::AccessorBase::Create(const std::string& uuid, |
90 const void* content, | 65 const void* content, |
91 size_t size, | 66 size_t size, |
92 OrthancPluginContentType type) | 67 OrthancPluginContentType type) |
93 { | 68 { |