Mercurial > hg > orthanc
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 {