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 #pragma once 24 25 #include "JobStatus.h" 26 27 #include <boost/date_time/posix_time/posix_time.hpp> 28 29 namespace Orthanc 30 { 31 class ORTHANC_PUBLIC JobInfo 32 { 33 private: 34 std::string id_; 35 int priority_; 36 JobState state_; 37 boost::posix_time::ptime timestamp_; 38 boost::posix_time::ptime creationTime_; 39 boost::posix_time::ptime lastStateChangeTime_; 40 boost::posix_time::time_duration runtime_; 41 bool hasEta_; 42 boost::posix_time::ptime eta_; 43 JobStatus status_; 44 45 public: 46 JobInfo(const std::string& id, 47 int priority, 48 JobState state, 49 const JobStatus& status, 50 const boost::posix_time::ptime& creationTime, 51 const boost::posix_time::ptime& lastStateChangeTime, 52 const boost::posix_time::time_duration& runtime) ORTHANC_LOCAL; 53 54 JobInfo(); 55 56 const std::string& GetIdentifier() const; 57 58 int GetPriority() const; 59 60 JobState GetState() const; 61 62 const boost::posix_time::ptime& GetInfoTime() const; 63 64 const boost::posix_time::ptime& GetCreationTime() const; 65 66 const boost::posix_time::time_duration& GetRuntime() const; 67 68 bool HasEstimatedTimeOfArrival() const; 69 70 bool HasCompletionTime() const; 71 72 const boost::posix_time::ptime& GetEstimatedTimeOfArrival() const; 73 74 const boost::posix_time::ptime& GetCompletionTime() const; 75 76 const JobStatus& GetStatus() const; 77 78 JobStatus& GetStatus(); 79 80 void Format(Json::Value& target) const; 81 }; 82 } 83