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 }