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