1 /** 2 * Orthanc - A Lightweight, RESTful DICOM Store 3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics 4 * Department, University Hospital of Liege, Belgium 5 * Copyright (C) 2017-2021 Osimis S.A., Belgium 6 * 7 * This program is free software: you can redistribute it and/or 8 * modify it under the terms of the GNU Lesser General Public License 9 * as published by the Free Software Foundation, either version 3 of 10 * the License, or (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, but 13 * WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * Lesser General Public License for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public 18 * License along with this program. If not, see 19 * <http://www.gnu.org/licenses/>. 20 **/ 21 22 23 #include "../PrecompiledHeaders.h" 24 #include "JobStatus.h" 25 26 #include "../OrthancException.h" 27 28 namespace Orthanc 29 { JobStatus()30 JobStatus::JobStatus() : 31 errorCode_(ErrorCode_InternalError), 32 progress_(0), 33 jobType_("Invalid"), 34 publicContent_(Json::objectValue), 35 hasSerialized_(false) 36 { 37 } 38 39 JobStatus(ErrorCode code,const std::string & details,IJob & job)40 JobStatus::JobStatus(ErrorCode code, 41 const std::string& details, 42 IJob& job) : 43 errorCode_(code), 44 progress_(job.GetProgress()), 45 publicContent_(Json::objectValue), 46 details_(details) 47 { 48 if (progress_ < 0) 49 { 50 progress_ = 0; 51 } 52 53 if (progress_ > 1) 54 { 55 progress_ = 1; 56 } 57 58 job.GetJobType(jobType_); 59 job.GetPublicContent(publicContent_); 60 61 hasSerialized_ = job.Serialize(serialized_); 62 } 63 64 GetSerialized() const65 const Json::Value& JobStatus::GetSerialized() const 66 { 67 if (!hasSerialized_) 68 { 69 throw OrthancException(ErrorCode_BadSequenceOfCalls); 70 } 71 else 72 { 73 return serialized_; 74 } 75 } 76 } 77