diff OrthancServer/ServerJobs/OrthancJobUnserializer.cpp @ 2655:c196d76cb8fa jobs

serialization
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 05 Jun 2018 17:57:49 +0200
parents a3f0f61a14ca
children a6d3e45eeff5
line wrap: on
line diff
--- a/OrthancServer/ServerJobs/OrthancJobUnserializer.cpp	Tue Jun 05 17:09:18 2018 +0200
+++ b/OrthancServer/ServerJobs/OrthancJobUnserializer.cpp	Tue Jun 05 17:57:49 2018 +0200
@@ -37,7 +37,12 @@
 #include "../../Core/Logging.h"
 #include "../../Core/OrthancException.h"
 
+#include "Operations/DeleteResourceOperation.h"
 #include "Operations/DicomInstanceOperationValue.h"
+#include "Operations/ModifyInstanceOperation.h"
+#include "Operations/StorePeerOperation.h"
+#include "Operations/StoreScuOperation.h"
+#include "Operations/SystemCallOperation.h"
 
 namespace Orthanc
 {
@@ -49,19 +54,42 @@
 
   IJobOperation* OrthancJobUnserializer::UnserializeOperation(const Json::Value& source)
   {
-    const std::string type = GetString(source, "Type");
+    const std::string type = ReadString(source, "Type");
 
-    return GenericJobUnserializer::UnserializeOperation(source);
+    if (type == "DeleteResource")
+    {
+      return new DeleteResourceOperation(context_);
+    }
+    else if (type == "ModifyInstance")
+    {
+      return new ModifyInstanceOperation(context_, source);
+    }
+    else if (type == "StorePeer")
+    {
+      return new StorePeerOperation(source);
+    }
+    else if (type == "StoreScu")
+    {
+      return new StoreScuOperation(source);
+    }
+    else if (type == "SystemCall")
+    {
+      return new SystemCallOperation(source);
+    }
+    else
+    {
+      return GenericJobUnserializer::UnserializeOperation(source);
+    }
   }
 
 
   JobOperationValue* OrthancJobUnserializer::UnserializeValue(const Json::Value& source)
   {
-    const std::string type = GetString(source, "Type");
+    const std::string type = ReadString(source, "Type");
 
     if (type == "DicomInstance")
     {
-      return new DicomInstanceOperationValue(context_, GetString(source, "ID"));
+      return new DicomInstanceOperationValue(context_, ReadString(source, "ID"));
     }
     else
     {