Mercurial > hg > orthanc
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: |