Mercurial > hg > orthanc
comparison OrthancServer/ServerJobs/StorageCommitmentScpJob.cpp @ 3639:0c9a8f6d2349 storage-commitment
better unserialization
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 31 Jan 2020 17:01:55 +0100 |
parents | ae866fc06df5 |
children | fddf3fc82362 |
comparison
equal
deleted
inserted
replaced
3638:ae866fc06df5 | 3639:0c9a8f6d2349 |
---|---|
99 | 99 |
100 public: | 100 public: |
101 AnswerCommand(StorageCommitmentScpJob& that) : | 101 AnswerCommand(StorageCommitmentScpJob& that) : |
102 that_(that) | 102 that_(that) |
103 { | 103 { |
104 if (that_.ready_) | |
105 { | |
106 throw OrthancException(ErrorCode_BadSequenceOfCalls); | |
107 } | |
108 else | |
109 { | |
110 that_.ready_ = true; | |
111 } | |
104 } | 112 } |
105 | 113 |
106 virtual bool Execute() | 114 virtual bool Execute() |
107 { | 115 { |
108 that_.Answer(); | 116 that_.Answer(); |
124 | 132 |
125 public: | 133 public: |
126 Unserializer(StorageCommitmentScpJob& that) : | 134 Unserializer(StorageCommitmentScpJob& that) : |
127 that_(that) | 135 that_(that) |
128 { | 136 { |
137 that_.ready_ = false; | |
129 } | 138 } |
130 | 139 |
131 virtual ICommand* Unserialize(const Json::Value& source) const | 140 virtual ICommand* Unserialize(const Json::Value& source) const |
132 { | 141 { |
133 const std::string type = SerializationToolbox::ReadString(source, TYPE); | 142 const std::string type = SerializationToolbox::ReadString(source, TYPE); |
241 } | 250 } |
242 | 251 |
243 | 252 |
244 void StorageCommitmentScpJob::MarkAsReady() | 253 void StorageCommitmentScpJob::MarkAsReady() |
245 { | 254 { |
246 if (ready_) | 255 AddCommand(new AnswerCommand(*this)); |
247 { | |
248 throw OrthancException(ErrorCode_BadSequenceOfCalls); | |
249 } | |
250 else | |
251 { | |
252 AddCommand(new AnswerCommand(*this)); | |
253 ready_ = true; | |
254 } | |
255 } | 256 } |
256 | 257 |
257 | 258 |
258 void StorageCommitmentScpJob::GetPublicContent(Json::Value& value) | 259 void StorageCommitmentScpJob::GetPublicContent(Json::Value& value) |
259 { | 260 { |
267 | 268 |
268 | 269 |
269 StorageCommitmentScpJob::StorageCommitmentScpJob(ServerContext& context, | 270 StorageCommitmentScpJob::StorageCommitmentScpJob(ServerContext& context, |
270 const Json::Value& serialized) : | 271 const Json::Value& serialized) : |
271 SetOfCommandsJob(new Unserializer(*this), serialized), | 272 SetOfCommandsJob(new Unserializer(*this), serialized), |
272 context_(context), | 273 context_(context) |
273 ready_(false) | |
274 { | 274 { |
275 transactionUid_ = SerializationToolbox::ReadString(serialized, TRANSACTION_UID); | 275 transactionUid_ = SerializationToolbox::ReadString(serialized, TRANSACTION_UID); |
276 remoteModality_ = RemoteModalityParameters(serialized[REMOTE_MODALITY]); | 276 remoteModality_ = RemoteModalityParameters(serialized[REMOTE_MODALITY]); |
277 calledAet_ = SerializationToolbox::ReadString(serialized, CALLED_AET); | 277 calledAet_ = SerializationToolbox::ReadString(serialized, CALLED_AET); |
278 SerializationToolbox::ReadListOfStrings(successSopClassUids_, serialized, SUCCESS_SOP_CLASS_UIDS); | 278 SerializationToolbox::ReadListOfStrings(successSopClassUids_, serialized, SUCCESS_SOP_CLASS_UIDS); |
279 SerializationToolbox::ReadListOfStrings(successSopInstanceUids_, serialized, SUCCESS_SOP_INSTANCE_UIDS); | 279 SerializationToolbox::ReadListOfStrings(successSopInstanceUids_, serialized, SUCCESS_SOP_INSTANCE_UIDS); |
280 SerializationToolbox::ReadListOfStrings(failedSopClassUids_, serialized, FAILED_SOP_CLASS_UIDS); | 280 SerializationToolbox::ReadListOfStrings(failedSopClassUids_, serialized, FAILED_SOP_CLASS_UIDS); |
281 SerializationToolbox::ReadListOfStrings(failedSopInstanceUids_, serialized, FAILED_SOP_INSTANCE_UIDS); | 281 SerializationToolbox::ReadListOfStrings(failedSopInstanceUids_, serialized, FAILED_SOP_INSTANCE_UIDS); |
282 | |
283 MarkAsReady(); | |
284 } | 282 } |
285 | 283 |
286 | 284 |
287 bool StorageCommitmentScpJob::Serialize(Json::Value& target) | 285 bool StorageCommitmentScpJob::Serialize(Json::Value& target) |
288 { | 286 { |