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;