diff OrthancServer/ServerJobs/OrthancJobUnserializer.cpp @ 2664:a21b244efb37 jobs

serialization of DicomModalityStoreJob, OrthancPeerStoreJob and ResourceModificationJob
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 07 Jun 2018 21:37:40 +0200
parents a6d3e45eeff5
children 925d8dc03a23
line wrap: on
line diff
--- a/OrthancServer/ServerJobs/OrthancJobUnserializer.cpp	Thu Jun 07 18:18:02 2018 +0200
+++ b/OrthancServer/ServerJobs/OrthancJobUnserializer.cpp	Thu Jun 07 21:37:40 2018 +0200
@@ -45,11 +45,32 @@
 #include "Operations/StoreScuOperation.h"
 #include "Operations/SystemCallOperation.h"
 
+#include "DicomModalityStoreJob.h"
+#include "OrthancPeerStoreJob.h"
+#include "ResourceModificationJob.h"
+
 namespace Orthanc
 {
   IJob* OrthancJobUnserializer::UnserializeJob(const Json::Value& source)
   {
-    return GenericJobUnserializer::UnserializeJob(source);
+    const std::string type = SerializationToolbox::ReadString(source, "Type");
+
+    if (type == "DicomModalityStore")
+    {
+      return new DicomModalityStoreJob(context_, source);
+    }
+    else if (type == "OrthancPeerStore")
+    {
+      return new OrthancPeerStoreJob(context_, source);
+    }
+    else if (type == "ResourceModification")
+    {
+      return new ResourceModificationJob(context_, source);
+    }
+    else
+    {
+      return GenericJobUnserializer::UnserializeJob(source);
+    }
   }