comparison OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp @ 5783:56352ae88120 find-refactoring

wip: new ReadOnly configuration
author Alain Mazy <am@orthanc.team>
date Mon, 16 Sep 2024 18:31:37 +0200
parents de33982a0bf4
children 9990b4140c1c
comparison
equal deleted inserted replaced
5782:f1ccb67fce31 5783:56352ae88120
479 transaction.Commit(); 479 transaction.Commit();
480 } 480 }
481 else 481 else
482 { 482 {
483 assert(writeOperations != NULL); 483 assert(writeOperations != NULL);
484 if (readOnly_)
485 {
486 throw OrthancException(ErrorCode_ReadOnly, "The DB is trying to execute a ReadWrite transaction while Orthanc has been started in ReadOnly mode.");
487 }
484 488
485 Transaction transaction(db_, *factory_, TransactionType_ReadWrite); 489 Transaction transaction(db_, *factory_, TransactionType_ReadWrite);
486 { 490 {
487 ReadWriteTransaction t(transaction.GetDatabaseTransaction(), transaction.GetContext()); 491 ReadWriteTransaction t(transaction.GetDatabaseTransaction(), transaction.GetContext());
488 writeOperations->Apply(t); 492 writeOperations->Apply(t);
516 } 520 }
517 } 521 }
518 } 522 }
519 523
520 524
521 StatelessDatabaseOperations::StatelessDatabaseOperations(IDatabaseWrapper& db) : 525 StatelessDatabaseOperations::StatelessDatabaseOperations(IDatabaseWrapper& db, bool readOnly) :
522 db_(db), 526 db_(db),
523 mainDicomTagsRegistry_(new MainDicomTagsRegistry), 527 mainDicomTagsRegistry_(new MainDicomTagsRegistry),
524 maxRetries_(0) 528 maxRetries_(0),
529 readOnly_(readOnly)
525 { 530 {
526 } 531 }
527 532
528 533
529 void StatelessDatabaseOperations::FlushToDisk() 534 void StatelessDatabaseOperations::FlushToDisk()