comparison OrthancServer/Sources/Database/StatelessDatabaseOperations.h @ 5614:4640b7ae9a11 find-refactoring

moving normalization of constraints into FindRequest
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 09 May 2024 11:59:56 +0200
parents 3f24eb4013d8
children 824a5fb0774e
comparison
equal deleted inserted replaced
5613:f1ce8dd361b7 5614:4640b7ae9a11
22 22
23 #pragma once 23 #pragma once
24 24
25 #include "../../../OrthancFramework/Sources/DicomFormat/DicomMap.h" 25 #include "../../../OrthancFramework/Sources/DicomFormat/DicomMap.h"
26 26
27 #include "../DicomInstanceOrigin.h"
27 #include "IDatabaseWrapper.h" 28 #include "IDatabaseWrapper.h"
28 #include "../DicomInstanceOrigin.h" 29 #include "MainDicomTagsRegistry.h"
29 30
30 #include <boost/shared_ptr.hpp> 31 #include <boost/shared_ptr.hpp>
31 #include <boost/thread/shared_mutex.hpp> 32 #include <boost/thread/shared_mutex.hpp>
32 33
33 34
391 { 392 {
392 transaction_.ListAllLabels(target); 393 transaction_.ListAllLabels(target);
393 } 394 }
394 395
395 void ExecuteFind(FindResponse& response, 396 void ExecuteFind(FindResponse& response,
396 const FindRequest& request, 397 const FindRequest& request)
397 const std::vector<DatabaseConstraint>& normalized) 398 {
398 { 399 transaction_.ExecuteFind(response, request);
399 transaction_.ExecuteFind(response, request, normalized);
400 } 400 }
401 401
402 void ExecuteFind(std::list<std::string>& identifiers, 402 void ExecuteFind(std::list<std::string>& identifiers,
403 const FindRequest& request, 403 const FindRequest& request)
404 const std::vector<DatabaseConstraint>& normalized) 404 {
405 { 405 transaction_.ExecuteFind(identifiers, request);
406 transaction_.ExecuteFind(identifiers, request, normalized);
407 } 406 }
408 407
409 void ExecuteExpand(FindResponse& response, 408 void ExecuteExpand(FindResponse& response,
410 const FindRequest& request, 409 const FindRequest& request,
411 const std::string& identifier) 410 const std::string& identifier)
577 virtual void Apply(ReadWriteTransaction& transaction) = 0; 576 virtual void Apply(ReadWriteTransaction& transaction) = 0;
578 }; 577 };
579 578
580 579
581 private: 580 private:
582 class MainDicomTagsRegistry;
583 class Transaction; 581 class Transaction;
584 582
585 IDatabaseWrapper& db_; 583 IDatabaseWrapper& db_;
586 boost::shared_ptr<MainDicomTagsRegistry> mainDicomTagsRegistry_; // "shared_ptr" because of PImpl 584 boost::shared_ptr<MainDicomTagsRegistry> mainDicomTagsRegistry_; // "shared_ptr" because of PImpl
587 585
591 unsigned int maxRetries_; 589 unsigned int maxRetries_;
592 590
593 void NormalizeLookup(std::vector<DatabaseConstraint>& target, 591 void NormalizeLookup(std::vector<DatabaseConstraint>& target,
594 const DatabaseLookup& source, 592 const DatabaseLookup& source,
595 ResourceType level) const; 593 ResourceType level) const;
596
597 void NormalizeLookup(std::vector<DatabaseConstraint>& target,
598 const FindRequest& findRequest) const;
599 594
600 void ApplyInternal(IReadOnlyOperations* readOperations, 595 void ApplyInternal(IReadOnlyOperations* readOperations,
601 IReadWriteOperations* writeOperations); 596 IReadWriteOperations* writeOperations);
602 597
603 protected: 598 protected: