diff Core/JobsEngine/SetOfInstancesJob.cpp @ 2652:a3f0f61a14ca jobs

fix
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 04 Jun 2018 12:36:24 +0200
parents e1893d31652a
children c196d76cb8fa
line wrap: on
line diff
--- a/Core/JobsEngine/SetOfInstancesJob.cpp	Mon Jun 04 11:53:12 2018 +0200
+++ b/Core/JobsEngine/SetOfInstancesJob.cpp	Mon Jun 04 12:36:24 2018 +0200
@@ -35,6 +35,7 @@
 #include "SetOfInstancesJob.h"
 
 #include "../OrthancException.h"
+#include "IJobUnserializer.h"
 
 namespace Orthanc
 {
@@ -188,6 +189,14 @@
 
   void SetOfInstancesJob::Serialize(Json::Value& value)
   {
+    std::string type;
+    GetJobType(type);
+    value["Type"] = type;
+
+    value["Permissive"] = permissive_;
+    value["Position"] = static_cast<unsigned int>(position_);
+    value["Description"] = description_;
+    
     Json::Value v = Json::arrayValue;
       
     for (size_t i = 0; i < instances_.size(); i++)
@@ -207,4 +216,21 @@
       
     value["FailedInstances"] = v;
   }
+
+
+  SetOfInstancesJob::SetOfInstancesJob(const Json::Value& value) :
+    started_(false),
+    permissive_(IJobUnserializer::GetBoolean(value, "Permissive")),
+    position_(IJobUnserializer::GetUnsignedInteger(value, "Position")),
+    description_(IJobUnserializer::GetString(value, "Description"))
+  {
+    IJobUnserializer::GetArrayOfStrings(instances_, value, "Instances");
+    IJobUnserializer::GetSetOfStrings(failedInstances_, value, "FailedInstances");
+
+    if (position_ > instances_.size())
+    {
+      throw OrthancException(ErrorCode_BadFileFormat);
+    }
+  }
+
 }