// SrmRequstStatus.h #ifndef dial__SrmRequstStatus_H #define dial__SrmRequstStatus_H // Wrapper for SRM request status. #include "dial_ws_srm/SrmRequestFileStatus.h" namespace dial { class SrmRequestStatus { public: // typedefs typedef SrmRequestFileStatus::Id Id; typedef SrmRequestFileStatus::Name Name; typedef SrmRequestFileStatus::State State; typedef SrmRequestFileStatus::Time Time; typedef std::vector FileStatusList; typedef ns4__RequestStatus GsoapRequestStatus; private: // data Id m_id; Name m_type; State m_state; Time m_tup; Time m_tsubmit; Time m_tstart; Time m_tfinish; Time m_tcancel; Time m_tready; FileStatusList m_fstats; std::string m_emsg; public: // methods // Default constructor. // Object is invalid. SrmRequestStatus(); // Constructor from gsoap SRM request status. SrmRequestStatus(const GsoapRequestStatus& grs); // Validity. // Type and state must be known. bool is_valid() const; // Request Id. int id() const; // Request type. // SRM: {Get, Put, MkPermanent, pin, unpin, requestStatus, // fileStatus, ListProtocols, EstimateGetTime, // EstimatePutTime} Name type() const; // State. // SRM: {Pending, Done, Active, Failed} Name state() const; bool is_pending() const; bool is_done() const; bool is_active() const; bool is_failed() const; // Time at which this status was updated. Time update_time() const; // Time at which request was submitted. Time submit_time() const; // Time at which request was started. Time start_time() const; // Time at which request was finished. Time finish_time() const; // Time at which this request ma ybe cancelled if it // is not updated. Time cancel_time() const; // Estimated time at which request will be started.. // Zero (Jan 1, 1970) if estimate is not available. Time ready_time() const; // Status for each file in the request. const FileStatusList& file_statuses() const; // Error message. std::string error_message() const; }; } // end unnamed namespace // Output stream std::ostream& operator<<(std::ostream& lhs, const dial::SrmRequestStatus& rhs); #endif