comparison OrthancServer/Sources/Database/StatelessDatabaseOperations.h @ 5522:dd430a1b21fe pg-transactions

simplifying StatelessDatabaseOperations
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 30 Jan 2024 09:41:06 +0100
parents 0d433132b249
children 28cc06e4859a 12d8a1a266e9 c1ed59a5bdc2
comparison
equal deleted inserted replaced
5521:0d0f8788884a 5522:dd430a1b21fe
174 174
175 class ReadOnlyTransaction : public boost::noncopyable 175 class ReadOnlyTransaction : public boost::noncopyable
176 { 176 {
177 private: 177 private:
178 ITransactionContext& context_; 178 ITransactionContext& context_;
179 const IDatabaseWrapper::Capabilities& dbCapabilities_;
180 179
181 protected: 180 protected:
182 IDatabaseWrapper::ITransaction& transaction_; 181 IDatabaseWrapper::ITransaction& transaction_;
183 182
184 public: 183 public:
185 explicit ReadOnlyTransaction(IDatabaseWrapper::ITransaction& transaction, 184 explicit ReadOnlyTransaction(IDatabaseWrapper::ITransaction& transaction,
186 ITransactionContext& context, 185 ITransactionContext& context) :
187 const IDatabaseWrapper::Capabilities& dbCapabilities) :
188 context_(context), 186 context_(context),
189 dbCapabilities_(dbCapabilities),
190 transaction_(transaction) 187 transaction_(transaction)
191 { 188 {
192 } 189 }
193 190
194 ITransactionContext& GetTransactionContext() 191 ITransactionContext& GetTransactionContext()
195 { 192 {
196 return context_; 193 return context_;
197 }
198
199 const IDatabaseWrapper::Capabilities& GetDatabaseCapabilities() const
200 {
201 return dbCapabilities_;
202 } 194 }
203 195
204 /** 196 /**
205 * Higher-level constructions 197 * Higher-level constructions
206 **/ 198 **/
389 381
390 class ReadWriteTransaction : public ReadOnlyTransaction 382 class ReadWriteTransaction : public ReadOnlyTransaction
391 { 383 {
392 public: 384 public:
393 ReadWriteTransaction(IDatabaseWrapper::ITransaction& transaction, 385 ReadWriteTransaction(IDatabaseWrapper::ITransaction& transaction,
394 ITransactionContext& context, 386 ITransactionContext& context) :
395 const IDatabaseWrapper::Capabilities& dbCapabilities) : 387 ReadOnlyTransaction(transaction, context)
396 ReadOnlyTransaction(transaction, context, dbCapabilities)
397 { 388 {
398 } 389 }
399 390
400 void AddAttachment(int64_t id, 391 void AddAttachment(int64_t id,
401 const FileInfo& attachment, 392 const FileInfo& attachment,