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 {