diff Framework/Plugins/DatabaseBackendAdapterV4.cpp @ 401:a8774581adfc db-protobuf

replaced "WithLabels" and "WithoutLabels", by "Labels" and "LabelsConstraint"
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 07 Apr 2023 22:32:15 +0200
parents 7b3acfa95bd8
children 82921a29349a
line wrap: on
line diff
--- a/Framework/Plugins/DatabaseBackendAdapterV4.cpp	Fri Apr 07 15:43:42 2023 +0200
+++ b/Framework/Plugins/DatabaseBackendAdapterV4.cpp	Fri Apr 07 22:32:15 2023 +0200
@@ -568,21 +568,35 @@
 
     assert(values.size() == countValues);
 
-    std::set<std::string> withLabels, withoutLabels;
+    std::set<std::string> labels;
 
-    for (int i = 0; i < request.with_labels().size(); i++)
+    for (int i = 0; i < request.labels().size(); i++)
     {
-      withLabels.insert(request.with_labels(i));
+      labels.insert(request.labels(i));
     }
 
-    for (int i = 0; i < request.without_labels().size(); i++)
+    Orthanc::LabelsConstraint labelsConstraint;
+    switch (request.labels_constraint())
     {
-      withoutLabels.insert(request.without_labels(i));
+      case Orthanc::DatabasePluginMessages::LABELS_CONSTRAINT_ALL:
+        labelsConstraint = Orthanc::LabelsConstraint_All;
+        break;
+            
+      case Orthanc::DatabasePluginMessages::LABELS_CONSTRAINT_ANY:
+        labelsConstraint = Orthanc::LabelsConstraint_Any;
+        break;
+            
+      case Orthanc::DatabasePluginMessages::LABELS_CONSTRAINT_NONE:
+        labelsConstraint = Orthanc::LabelsConstraint_None;
+        break;
+            
+      default:
+        throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange);
     }
-    
+
     Output output(response);
     backend.LookupResources(output, manager, lookup, Convert(request.query_level()),
-                            withLabels, withoutLabels, request.limit(), request.retrieve_instances_ids());
+                            labels, labelsConstraint, request.limit(), request.retrieve_instances_ids());
   }