# HG changeset patch # User Sebastien Jodogne # Date 1527780622 -7200 # Node ID 740983056f9e3f5212e5497351659d7e8d695779 # Parent 5b3bfdf6b7903096e14aa5c8b002abaa0655021e StringToJobState diff -r 5b3bfdf6b790 -r 740983056f9e Core/Enumerations.cpp --- a/Core/Enumerations.cpp Wed May 30 10:50:57 2018 +0200 +++ b/Core/Enumerations.cpp Thu May 31 17:30:22 2018 +0200 @@ -1464,6 +1464,39 @@ } + JobState StringToJobState(const std::string& state) + { + if (state == "Pending") + { + return JobState_Pending; + } + else if (state == "Running") + { + return JobState_Running; + } + else if (state == "Success") + { + return JobState_Success; + } + else if (state == "Failure") + { + return JobState_Failure; + } + else if (state == "Paused") + { + return JobState_Paused; + } + else if (state == "Retry") + { + return JobState_Retry; + } + else + { + throw OrthancException(ErrorCode_ParameterOutOfRange); + } + } + + unsigned int GetBytesPerPixel(PixelFormat format) { switch (format) diff -r 5b3bfdf6b790 -r 740983056f9e Core/Enumerations.h --- a/Core/Enumerations.h Wed May 30 10:50:57 2018 +0200 +++ b/Core/Enumerations.h Thu May 31 17:30:22 2018 +0200 @@ -659,6 +659,8 @@ ModalityManufacturer StringToModalityManufacturer(const std::string& manufacturer); DicomVersion StringToDicomVersion(const std::string& version); + + JobState StringToJobState(const std::string& state); unsigned int GetBytesPerPixel(PixelFormat format); diff -r 5b3bfdf6b790 -r 740983056f9e Core/JobsEngine/GenericJobUnserializer.cpp --- a/Core/JobsEngine/GenericJobUnserializer.cpp Wed May 30 10:50:57 2018 +0200 +++ b/Core/JobsEngine/GenericJobUnserializer.cpp Thu May 31 17:30:22 2018 +0200 @@ -46,6 +46,7 @@ IJob* GenericJobUnserializer::UnserializeJob(const Json::Value& source) { const std::string type = GetString(source, "Type"); + JobState state = StringToJobState(GetString(source, "State")); LOG(ERROR) << "Cannot unserialize job of type: " << type; throw OrthancException(ErrorCode_BadFileFormat); diff -r 5b3bfdf6b790 -r 740983056f9e UnitTestsSources/UnitTestsMain.cpp --- a/UnitTestsSources/UnitTestsMain.cpp Wed May 30 10:50:57 2018 +0200 +++ b/UnitTestsSources/UnitTestsMain.cpp Thu May 31 17:30:22 2018 +0200 @@ -677,6 +677,14 @@ } ASSERT_THROW(StringToValueRepresentation("nope", true), OrthancException); + + ASSERT_EQ(JobState_Pending, StringToJobState(EnumerationToString(JobState_Pending))); + ASSERT_EQ(JobState_Running, StringToJobState(EnumerationToString(JobState_Running))); + ASSERT_EQ(JobState_Success, StringToJobState(EnumerationToString(JobState_Success))); + ASSERT_EQ(JobState_Failure, StringToJobState(EnumerationToString(JobState_Failure))); + ASSERT_EQ(JobState_Paused, StringToJobState(EnumerationToString(JobState_Paused))); + ASSERT_EQ(JobState_Retry, StringToJobState(EnumerationToString(JobState_Retry))); + ASSERT_THROW(StringToJobState("nope"), OrthancException); }