# HG changeset patch # User Sebastien Jodogne # Date 1580486515 -3600 # Node ID 0c9a8f6d23493a86f17338071133a2afc902e5ae # Parent ae866fc06df51cbd688005b40b54afeade105356 better unserialization diff -r ae866fc06df5 -r 0c9a8f6d2349 OrthancServer/ServerJobs/StorageCommitmentScpJob.cpp --- a/OrthancServer/ServerJobs/StorageCommitmentScpJob.cpp Fri Jan 31 16:53:23 2020 +0100 +++ b/OrthancServer/ServerJobs/StorageCommitmentScpJob.cpp Fri Jan 31 17:01:55 2020 +0100 @@ -101,6 +101,14 @@ AnswerCommand(StorageCommitmentScpJob& that) : that_(that) { + if (that_.ready_) + { + throw OrthancException(ErrorCode_BadSequenceOfCalls); + } + else + { + that_.ready_ = true; + } } virtual bool Execute() @@ -126,6 +134,7 @@ Unserializer(StorageCommitmentScpJob& that) : that_(that) { + that_.ready_ = false; } virtual ICommand* Unserialize(const Json::Value& source) const @@ -243,15 +252,7 @@ void StorageCommitmentScpJob::MarkAsReady() { - if (ready_) - { - throw OrthancException(ErrorCode_BadSequenceOfCalls); - } - else - { - AddCommand(new AnswerCommand(*this)); - ready_ = true; - } + AddCommand(new AnswerCommand(*this)); } @@ -269,8 +270,7 @@ StorageCommitmentScpJob::StorageCommitmentScpJob(ServerContext& context, const Json::Value& serialized) : SetOfCommandsJob(new Unserializer(*this), serialized), - context_(context), - ready_(false) + context_(context) { transactionUid_ = SerializationToolbox::ReadString(serialized, TRANSACTION_UID); remoteModality_ = RemoteModalityParameters(serialized[REMOTE_MODALITY]); @@ -279,8 +279,6 @@ SerializationToolbox::ReadListOfStrings(successSopInstanceUids_, serialized, SUCCESS_SOP_INSTANCE_UIDS); SerializationToolbox::ReadListOfStrings(failedSopClassUids_, serialized, FAILED_SOP_CLASS_UIDS); SerializationToolbox::ReadListOfStrings(failedSopInstanceUids_, serialized, FAILED_SOP_INSTANCE_UIDS); - - MarkAsReady(); }