Mercurial > hg > orthanc
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(); + } }