Mercurial > hg > orthanc
diff OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp @ 5677:dc96401dbe88 find-refactoring
starting the refactoring of /tools/find
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 08 Jul 2024 19:03:23 +0200 |
parents | 3f13db27b399 |
children | 527918e9c5d9 |
line wrap: on
line diff
--- a/OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp Sat Jul 06 15:04:28 2024 +0200 +++ b/OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp Mon Jul 08 19:03:23 2024 +0200 @@ -3706,23 +3706,25 @@ void StatelessDatabaseOperations::ExecuteFind(FindResponse& response, const FindRequest& request) { - class IntegratedFind : public ReadOnlyOperationsT2<FindResponse&, const FindRequest&> + class IntegratedFind : public ReadOnlyOperationsT3<FindResponse&, const FindRequest&, + const IDatabaseWrapper::Capabilities&> { public: virtual void ApplyTuple(ReadOnlyTransaction& transaction, const Tuple& tuple) ORTHANC_OVERRIDE { - transaction.ExecuteFind(tuple.get<0>(), tuple.get<1>()); + transaction.ExecuteFind(tuple.get<0>(), tuple.get<1>(), tuple.get<2>()); } }; - class FindStage : public ReadOnlyOperationsT2<std::list<std::string>&, const FindRequest&> + class FindStage : public ReadOnlyOperationsT3<std::list<std::string>&, const FindRequest&, + const IDatabaseWrapper::Capabilities&> { public: virtual void ApplyTuple(ReadOnlyTransaction& transaction, const Tuple& tuple) ORTHANC_OVERRIDE { - transaction.ExecuteFind(tuple.get<0>(), tuple.get<1>()); + transaction.ExecuteFind(tuple.get<0>(), tuple.get<1>(), tuple.get<2>()); } }; @@ -3736,6 +3738,8 @@ } }; + IDatabaseWrapper::Capabilities capabilities = db_.GetDatabaseCapabilities(); + if (db_.HasIntegratedFind()) { /** @@ -3743,7 +3747,7 @@ * executed in one single transaction. **/ IntegratedFind operations; - operations.Apply(*this, response, request); + operations.Apply(*this, response, request, capabilities); } else { @@ -3755,7 +3759,7 @@ std::list<std::string> identifiers; FindStage find; - find.Apply(*this, identifiers, request); + find.Apply(*this, identifiers, request, capabilities); ExpandStage expand;