changeset 6419:9aa989b6ce31

using ErrorPayload in JobStepResult
author Sebastien Jodogne <s.jodogne@gmail.com>
date Sat, 15 Nov 2025 11:00:42 +0100
parents 5a8dd2508358
children c557f6bdcbfd
files OrthancFramework/Sources/JobsEngine/JobStepResult.cpp OrthancFramework/Sources/JobsEngine/JobStepResult.h OrthancFramework/Sources/JobsEngine/JobsEngine.cpp OrthancFramework/Sources/JobsEngine/JobsRegistry.cpp OrthancFramework/Sources/JobsEngine/JobsRegistry.h
diffstat 5 files changed, 15 insertions(+), 39 deletions(-) [+]
line wrap: on
line diff
--- a/OrthancFramework/Sources/JobsEngine/JobStepResult.cpp	Sat Nov 15 10:51:57 2025 +0100
+++ b/OrthancFramework/Sources/JobsEngine/JobStepResult.cpp	Sat Nov 15 11:00:42 2025 +0100
@@ -70,10 +70,10 @@
 
   JobStepResult JobStepResult::Failure(const ErrorCode& error,
                                        const char* details,
-                                       const Json::Value& errorPayload)
+                                       const ErrorPayload& payload)
   {
     JobStepResult result = Failure(error, details);
-    result.errorPayload_ = errorPayload;
+    result.failurePayload_ = payload;
 
     return result;
   }
@@ -85,7 +85,7 @@
     {
       return Failure(exception.GetErrorCode(),
                      exception.HasDetails() ? exception.GetDetails() : NULL,
-                     exception.GetPayload().GetContent());
+                     exception.GetPayload());
     }
     else
     {
@@ -137,20 +137,4 @@
       throw OrthancException(ErrorCode_BadSequenceOfCalls);
     }
   }
-
-  bool JobStepResult::HasErrorPayload() const
-  {
-    return !errorPayload_.isNull();
-  }
-
-  const Json::Value& JobStepResult::GetErrorPayload() const
-  {
-    if (!HasErrorPayload())
-    {
-      throw OrthancException(ErrorCode_BadSequenceOfCalls);
-    }
-
-    return errorPayload_;
-  }
-
 }
--- a/OrthancFramework/Sources/JobsEngine/JobStepResult.h	Sat Nov 15 10:51:57 2025 +0100
+++ b/OrthancFramework/Sources/JobsEngine/JobStepResult.h	Sat Nov 15 11:00:42 2025 +0100
@@ -25,15 +25,14 @@
 #pragma once
 
 #include "../Enumerations.h"
+#include "../OrthancException.h"
+
 #include <boost/shared_ptr.hpp>
 #include <json/value.h>
 #include <stdint.h>
 
 namespace Orthanc
 {
-  class OrthancException;
-  class IExceptionPayload;
-  
   class ORTHANC_PUBLIC JobStepResult
   {
   private:
@@ -41,7 +40,7 @@
     unsigned int  timeout_;
     ErrorCode     error_;
     std::string   failureDetails_;
-    Json::Value   errorPayload_;
+    ErrorPayload  failurePayload_;
     
     explicit JobStepResult(JobStepCode code) :
       code_(code),
@@ -64,8 +63,7 @@
 
     static JobStepResult Failure(const ErrorCode& error,
                                  const char* details,
-                                 /* TODO PAYLOAD */
-                                 const Json::Value& errorPayload);
+                                 const ErrorPayload& payload);
 
     static JobStepResult Failure(const OrthancException& exception);
 
@@ -77,8 +75,9 @@
 
     const std::string& GetFailureDetails() const;
 
-    bool HasErrorPayload() const;
-
-    const Json::Value& GetErrorPayload() const;
+    const ErrorPayload& GetFailurePayload() const
+    {
+      return failurePayload_;
+    }
   };
 }
--- a/OrthancFramework/Sources/JobsEngine/JobsEngine.cpp	Sat Nov 15 10:51:57 2025 +0100
+++ b/OrthancFramework/Sources/JobsEngine/JobsEngine.cpp	Sat Nov 15 11:00:42 2025 +0100
@@ -87,14 +87,7 @@
 
       case JobStepCode_Failure:
         running.GetJob().Stop(JobStopReason_Failure);
-        if (result.HasErrorPayload())
-        {
-          running.UpdateStatus(result.GetFailureCode(), result.GetFailureDetails(), result.GetErrorPayload());
-        }
-        else
-        {
-          running.UpdateStatus(result.GetFailureCode(), result.GetFailureDetails());
-        }
+        running.UpdateStatus(result.GetFailureCode(), result.GetFailureDetails(), result.GetFailurePayload());
         running.MarkFailure();
         return false;
 
--- a/OrthancFramework/Sources/JobsEngine/JobsRegistry.cpp	Sat Nov 15 10:51:57 2025 +0100
+++ b/OrthancFramework/Sources/JobsEngine/JobsRegistry.cpp	Sat Nov 15 11:00:42 2025 +0100
@@ -1475,7 +1475,7 @@
 
   void JobsRegistry::RunningJob::UpdateStatus(ErrorCode code,
                                               const std::string& details,
-                                              const Json::Value& errorPayload)
+                                              const ErrorPayload& errorPayload)
   {
     if (!IsValid())
     {
@@ -1484,7 +1484,7 @@
     else
     {
       JobStatus status(code, details, *job_);
-      status.GetErrorPayload().SetContent(ErrorPayloadType_None /* TODO PAYLOAD */, errorPayload);
+      status.GetErrorPayload() = errorPayload;
 
       boost::mutex::scoped_lock lock(registry_.mutex_);
       registry_.CheckInvariants();
--- a/OrthancFramework/Sources/JobsEngine/JobsRegistry.h	Sat Nov 15 10:51:57 2025 +0100
+++ b/OrthancFramework/Sources/JobsEngine/JobsRegistry.h	Sat Nov 15 11:00:42 2025 +0100
@@ -246,7 +246,7 @@
 
       void UpdateStatus(ErrorCode code,
                         const std::string& details,
-                        const Json::Value& errorPayload);
+                        const ErrorPayload& errorPayload);
     };
   };
 }