diff --git a/dds-tools-lib/src/ToolsProtocol.cpp b/dds-tools-lib/src/ToolsProtocol.cpp index 232b6a9e..f716b7b6 100644 --- a/dds-tools-lib/src/ToolsProtocol.cpp +++ b/dds-tools-lib/src/ToolsProtocol.cpp @@ -18,6 +18,8 @@ constexpr const char* SSlotInfoRequestData::_protocolTag; constexpr const char* SAgentCountRequestData::_protocolTag; constexpr const char* SCommanderInfoRequestData::_protocolTag; constexpr const char* SDoneResponseData::_protocolTag; +constexpr const char* SRMSJobInfoRequestData::_protocolTag; +constexpr const char* SRMSJobInfoResponseData::_protocolTag; /////////////////////////////////// // SProgressResponseData @@ -723,3 +725,87 @@ namespace dds } } // namespace tools_api } // namespace dds + +/////////////////////////////////// +// SRMSJobInfoRequestData +/////////////////////////////////// + +SRMSJobInfoRequestData::SRMSJobInfoRequestData() +{ +} + +SRMSJobInfoRequestData::SRMSJobInfoRequestData(const boost::property_tree::ptree& _pt) +{ + fromPT(_pt); +} + +void SRMSJobInfoRequestData::_toPT(boost::property_tree::ptree& _pt) const +{ + _pt.put("submissionID", m_submissionID); +} + +void SRMSJobInfoRequestData::_fromPT(const boost::property_tree::ptree& _pt) +{ + m_submissionID = _pt.get("submissionID", ""); +} + +bool SRMSJobInfoRequestData::operator==(const SRMSJobInfoRequestData& _val) const +{ + return (SBaseData::operator==(_val) && m_submissionID == _val.m_submissionID); +} + +namespace dds +{ + namespace tools_api + { + std::ostream& operator<<(std::ostream& _os, const SRMSJobInfoRequestData& _data) + { + return _os << _data.defaultToString() << "; submissionID: " << _data.m_submissionID; + } + } // namespace tools_api +} // namespace dds + +/////////////////////////////////// +// SRMSJobInfoResponseData +/////////////////////////////////// + +SRMSJobInfoResponseData::SRMSJobInfoResponseData() +{ +} + +SRMSJobInfoResponseData::SRMSJobInfoResponseData(const boost::property_tree::ptree& _pt) +{ + fromPT(_pt); +} + +void SRMSJobInfoResponseData::_toPT(boost::property_tree::ptree& _pt) const +{ + _pt.put("allocNodes", m_allocNodes); + _pt.put("state", m_state); + _pt.put("jobName", m_jobName); +} + +void SRMSJobInfoResponseData::_fromPT(const boost::property_tree::ptree& _pt) +{ + m_allocNodes = _pt.get("allocNodes", 0); + m_state = _pt.get("state", 0); + m_jobName = _pt.get("jobName", ""); +} + +bool SRMSJobInfoResponseData::operator==(const SRMSJobInfoResponseData& _val) const +{ + return (SBaseData::operator==(_val) && m_allocNodes == _val.m_allocNodes && m_state == _val.m_state && + m_jobName == _val.m_jobName); +} + +namespace dds +{ + namespace tools_api + { + std::ostream& operator<<(std::ostream& _os, const SRMSJobInfoResponseData& _data) + { + return _os << _data.defaultToString() << "; allocNodes: " << _data.m_allocNodes + << "; state: " << _data.m_state << "; jobName: " << _data.m_jobName; + } + } // namespace tools_api +} // namespace dds diff --git a/dds-tools-lib/src/ToolsProtocol.h b/dds-tools-lib/src/ToolsProtocol.h index 53a08a0c..913f77a6 100644 --- a/dds-tools-lib/src/ToolsProtocol.h +++ b/dds-tools-lib/src/ToolsProtocol.h @@ -11,7 +11,7 @@ #include #include #include -//// BOOST +// BOOST #include // DDS #include "Intercom.h" @@ -398,6 +398,55 @@ namespace dds /// \brief Request class of submit. using SAgentCommandRequest = SBaseRequestImpl; + + /// \brief Structure holds information of RMS job info request. + struct SRMSJobInfoRequestData : SBaseRequestData + { + SRMSJobInfoRequestData(); + SRMSJobInfoRequestData(const boost::property_tree::ptree& _pt); + + std::string m_submissionID; ///< Submission ID. + + private: + friend SBaseData; + void _fromPT(const boost::property_tree::ptree& _pt); + void _toPT(boost::property_tree::ptree& _pt) const; + static constexpr const char* _protocolTag = "rmsJobInfo"; + + public: + /// \brief Equality operator. + bool operator==(const SRMSJobInfoRequestData& _val) const; + /// \brief Ostream operator. + friend std::ostream& operator<<(std::ostream& _os, const SRMSJobInfoRequestData& _data); + }; + + /// \brief Structure holds information of RMS job info response. + struct SRMSJobInfoResponseData : SBaseResponseData + { + SRMSJobInfoResponseData(); + SRMSJobInfoResponseData(const boost::property_tree::ptree& _pt); + + uint32_t m_allocNodes; ///< Allocated nodes. + uint32_t m_state; ///< Job state. + std::string m_jobName; ///< Job name. + + private: + friend SBaseData; + friend SBaseResponseData; + void _fromPT(const boost::property_tree::ptree& _pt); + void _toPT(boost::property_tree::ptree& _pt) const; + static constexpr const char* _protocolTag = "rmsJobInfo"; + + public: + /// \brief Equality operator. + bool operator==(const SRMSJobInfoResponseData& _val) const; + /// \brief Ostream operator. + friend std::ostream& operator<<(std::ostream& _os, const SRMSJobInfoResponseData& _data); + }; + + /// \brief Request class of RMS job info. + using SRMSJobInfoRequest = SBaseRequestImpl; + } // namespace tools_api } // namespace dds diff --git a/dds-tools-lib/src/ToolsProtocolCore.h b/dds-tools-lib/src/ToolsProtocolCore.h index 01e39168..d6b04bc4 100644 --- a/dds-tools-lib/src/ToolsProtocolCore.h +++ b/dds-tools-lib/src/ToolsProtocolCore.h @@ -240,6 +240,8 @@ namespace dds struct SDoneResponseData; struct SMessageResponseData; struct SProgressResponseData; + struct SRMSJobInfoRequestData; + struct SRMSJobInfoResponseData; template struct SBaseRequestImpl