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 {