Mercurial > hg > orthanc
comparison 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 |
comparison
equal
deleted
inserted
replaced
2620:1232922c8793 | 2621:83ac5a05ce84 |
---|---|
32 | 32 |
33 | 33 |
34 #include "../../PrecompiledHeaders.h" | 34 #include "../../PrecompiledHeaders.h" |
35 #include "JobOperationValues.h" | 35 #include "JobOperationValues.h" |
36 | 36 |
37 #include "../IJobUnserializer.h" | |
37 #include "../../OrthancException.h" | 38 #include "../../OrthancException.h" |
38 | 39 |
39 #include <cassert> | 40 #include <cassert> |
41 #include <memory> | |
40 | 42 |
41 namespace Orthanc | 43 namespace Orthanc |
42 { | 44 { |
43 void JobOperationValues::Append(JobOperationValues& target, | 45 void JobOperationValues::Append(JobOperationValues& target, |
44 bool clear) | 46 bool clear) |
115 Json::Value tmp; | 117 Json::Value tmp; |
116 values_[i]->Serialize(tmp); | 118 values_[i]->Serialize(tmp); |
117 target.append(tmp); | 119 target.append(tmp); |
118 } | 120 } |
119 } | 121 } |
122 | |
123 | |
124 JobOperationValues* Unserialize(IJobUnserializer& unserializer, | |
125 const Json::Value& source) | |
126 { | |
127 if (source.type() != Json::arrayValue) | |
128 { | |
129 throw OrthancException(ErrorCode_BadFileFormat); | |
130 } | |
131 | |
132 std::auto_ptr<JobOperationValues> result(new JobOperationValues); | |
133 | |
134 result->Reserve(source.size()); | |
135 | |
136 for (Json::Value::ArrayIndex i = 0; i < source.size(); i++) | |
137 { | |
138 result->Append(unserializer.UnserializeValue(source[i])); | |
139 } | |
140 | |
141 return result.release(); | |
142 } | |
120 } | 143 } |