diff Core/JobsEngine/Operations/JobOperationValues.cpp @ 2621:83ac5a05ce84 jobs

primitives for unserializing jobs
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 22 May 2018 17:37:16 +0200
parents 2f3007bf0708
children c196d76cb8fa
line wrap: on
line diff
--- a/Core/JobsEngine/Operations/JobOperationValues.cpp	Tue May 22 14:08:57 2018 +0200
+++ b/Core/JobsEngine/Operations/JobOperationValues.cpp	Tue May 22 17:37:16 2018 +0200
@@ -34,9 +34,11 @@
 #include "../../PrecompiledHeaders.h"
 #include "JobOperationValues.h"
 
+#include "../IJobUnserializer.h"
 #include "../../OrthancException.h"
 
 #include <cassert>
+#include <memory>
 
 namespace Orthanc
 {
@@ -117,4 +119,25 @@
       target.append(tmp);
     }
   }
+
+
+  JobOperationValues* Unserialize(IJobUnserializer& unserializer,
+                                  const Json::Value& source)
+  {
+    if (source.type() != Json::arrayValue)
+    {
+      throw OrthancException(ErrorCode_BadFileFormat);
+    }
+
+    std::auto_ptr<JobOperationValues> result(new JobOperationValues);
+
+    result->Reserve(source.size());
+    
+    for (Json::Value::ArrayIndex i = 0; i < source.size(); i++)
+    {
+      result->Append(unserializer.UnserializeValue(source[i]));
+    }
+    
+    return result.release();
+  }
 }