From a6e544b03bf2ed87dea339f39b829110d620adbe Mon Sep 17 00:00:00 2001 From: wang ming <1508574735@qq.com> Date: Fri, 23 Mar 2018 15:26:01 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E4=BA=86=E9=83=A8?= =?UTF-8?q?=E5=88=86bug,=E5=AE=9E=E7=8E=B0=E4=BA=86=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E8=BF=90=E8=A1=8C=E8=AE=B0=E5=BD=95=E7=9A=84=E5=88=B7=E6=96=B0?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/NxDataConfiguration.cpp | 2 +- src/NxDataFactory.cpp | 6 ++-- src/NxDataFactory.h | 4 +-- src/NxModelServiceRecord.cpp | 48 ++++++++++++++++++++++++----- src/NxModelServiceRecord.h | 4 +-- src/NxModelServiceRecordFactory.cpp | 14 +++++++-- src/NxModelServiceRecordFactory.h | 2 +- src/NxServiceAccess.cpp | 9 ++++-- 8 files changed, 66 insertions(+), 23 deletions(-) diff --git a/src/NxDataConfiguration.cpp b/src/NxDataConfiguration.cpp index 7c8d355..6c206e7 100644 --- a/src/NxDataConfiguration.cpp +++ b/src/NxDataConfiguration.cpp @@ -28,7 +28,7 @@ int NJGIS::SERVICE::NjDataConfiguration::insertData( const char* state, const ch char* cdataid = new char[strlen(dataid)]; strcpy(cstate, state); strcpy(cevent, event); - strcpy(cdataid, dataid); + strcpy(cdataid,dataid); item.state = cstate; item.event = cevent; item.data = cdataid; diff --git a/src/NxDataFactory.cpp b/src/NxDataFactory.cpp index 6cef725..d84b089 100644 --- a/src/NxDataFactory.cpp +++ b/src/NxDataFactory.cpp @@ -3,7 +3,7 @@ #include "NxDataConfiguration.h" #include "NxDataFactory.h" -NJGIS::SERVICE::INjData* NJGIS::SERVICE::NjDataFactory::createDataByJSON( Json::Value jData, const char* ip, int port ) +NJGIS::SERVICE::INjData* NJGIS::SERVICE::NjDataFactory::createDataByJSON( Json::Value &jData, const char* ip, int port ) { std::string gd_id = jData["gd_id"].asString(); std::string gd_tag = jData["gd_tag"].asString(); @@ -34,7 +34,7 @@ NJGIS::SERVICE::INjData* NJGIS::SERVICE::NjDataFactory::createDataByJSON( Json:: return pData; } -NJGIS::SERVICE::INjDataConfiguration* NJGIS::SERVICE::NjDataFactory::createDataConfigByJSON( Json::Value jConfig ) +NJGIS::SERVICE::INjDataConfiguration* NJGIS::SERVICE::NjDataFactory::createDataConfigByJSON( Json::Value &jConfig ) { INjDataConfiguration* pDataConfig = new NJGIS::SERVICE::NjDataConfiguration(); for(int i = 0; i < jConfig.size(); i++) @@ -42,7 +42,7 @@ NJGIS::SERVICE::INjDataConfiguration* NJGIS::SERVICE::NjDataFactory::createDataC std::string stateid = jConfig[i]["StateId"].asString(); std::string eventname = jConfig[i]["Event"].asString(); std::string dataid = jConfig[i]["DataId"].asString(); - bool destoryed = jConfig[i]["Destoryed"].asBool(); + bool destoryed = jConfig[i]["Destroyed"].asBool(); pDataConfig->insertData(stateid.c_str(), eventname.c_str(), dataid.c_str()); } return pDataConfig; diff --git a/src/NxDataFactory.h b/src/NxDataFactory.h index 256df2b..338c96d 100644 --- a/src/NxDataFactory.h +++ b/src/NxDataFactory.h @@ -12,9 +12,9 @@ namespace NJGIS class NjDataFactory { public: - static NJGIS::SERVICE::INjData* createDataByJSON(Json::Value jData, const char* ip, int port); + static NJGIS::SERVICE::INjData* createDataByJSON(Json::Value &jData, const char* ip, int port); - static NJGIS::SERVICE::INjDataConfiguration* createDataConfigByJSON(Json::Value jConfig); + static NJGIS::SERVICE::INjDataConfiguration* createDataConfigByJSON(Json::Value &jConfig); }; } } diff --git a/src/NxModelServiceRecord.cpp b/src/NxModelServiceRecord.cpp index ab199cd..b0abd00 100644 --- a/src/NxModelServiceRecord.cpp +++ b/src/NxModelServiceRecord.cpp @@ -1,5 +1,8 @@ #include "NxModelServiceRecord.h" #include "../utils/NxHttp.h" +#include "NxDataFactory.h" +#include + const char* NJGIS::SERVICE::NjModelServiceRecord::getID() { @@ -58,14 +61,43 @@ int NJGIS::SERVICE::NjModelServiceRecord::getLogs() int NJGIS::SERVICE::NjModelServiceRecord::refresh() { - Json::Value jsMsr; + + Json::Value jResponse; std::string url; this->getBaseUrl(url); - url += "/modelserrun/json/"; - url += this->getID(); - if(NJGIS::SERVICE::NjHttpHelper::request_get_json_sync(url.c_str(), jsMsr) > 0) - { - jsMsr[""]; - } - return 0; + url += "modelserrun/json/"; + url += std::string(this->getID()); + NJGIS::SERVICE::NjHttpHelper::request_get_json_sync(url.c_str(),jResponse); + + //std::cout<< jResponse["result"].asString() <_input = pInput; + this->_output = pOutput; + this->_span = jMsr["msr_span"].asDouble(); + NJGIS::SERVICE::NjRecordStatus restatus; + if(jMsr["msr_status"].asInt() == 1){ + restatus = NJGIS::SERVICE::NjRecordStatus::MSRS_FINISHED; + }else if(jMsr["msr_status"].asInt() == 0){ + restatus = NJGIS::SERVICE::NjRecordStatus::MSRS_UNFINISHED; + }else{ + restatus = NJGIS::SERVICE::NjRecordStatus::MSRS_ERROR; + } + this->_status = restatus; + + this->_invkerr = jMsr["msr_runninginfo"]["InvokeErr"].asString().c_str(); + + this->_stdout = jMsr["msr_runninginfo"]["StdOut"].asString().c_str(); + + this->_stderr = jMsr["msr_runninginfo"]["StdErr"].asString().c_str(); + } else{ + return -1; + } + + return 1; } diff --git a/src/NxModelServiceRecord.h b/src/NxModelServiceRecord.h index 3699506..dc5de4d 100644 --- a/src/NxModelServiceRecord.h +++ b/src/NxModelServiceRecord.h @@ -17,7 +17,7 @@ namespace NJGIS const char* oid, const char* msid, const char* datetime, - int span, + double span, INjDataConfiguration* input, INjDataConfiguration* output, NjRecordStatus status, @@ -71,7 +71,7 @@ namespace NJGIS std::string _datetime; - int _span; + double _span; INjDataConfiguration* _input; diff --git a/src/NxModelServiceRecordFactory.cpp b/src/NxModelServiceRecordFactory.cpp index 1e3ef8f..f01617b 100644 --- a/src/NxModelServiceRecordFactory.cpp +++ b/src/NxModelServiceRecordFactory.cpp @@ -2,18 +2,26 @@ #include "NxModelServiceRecord.h" #include "NxDataFactory.h" -NJGIS::SERVICE::INjModelServiceRecord* NJGIS::SERVICE::NjModelServiceRecordFactory::createModelServiceRecordByJSON( Json::Value jMsr, const char* ip, int port ) +NJGIS::SERVICE::INjModelServiceRecord* NJGIS::SERVICE::NjModelServiceRecordFactory::createModelServiceRecordByJSON( Json::Value &jMsr, const char* ip, int port ) { + NJGIS::SERVICE::NjRecordStatus restatus; + if(jMsr["msr_status"].asInt() == 1){ + restatus = NJGIS::SERVICE::NjRecordStatus::MSRS_FINISHED; + }else if(jMsr["msr_status"].asInt() == 0){ + restatus = NJGIS::SERVICE::NjRecordStatus::MSRS_UNFINISHED; + }else{ + restatus = NJGIS::SERVICE::NjRecordStatus::MSRS_ERROR; + } NJGIS::SERVICE::INjDataConfiguration* pInput = NJGIS::SERVICE::NjDataFactory::createDataConfigByJSON(jMsr["msr_input"]); NJGIS::SERVICE::INjDataConfiguration* pOutput = NJGIS::SERVICE::NjDataFactory::createDataConfigByJSON(jMsr["msr_output"]); NJGIS::SERVICE::INjModelServiceRecord* pMsr = new NJGIS::SERVICE::NjModelServiceRecord( jMsr["_id"].asString().c_str(), jMsr["ms_id"].asString().c_str(), jMsr["msr_datetime"].asString().c_str(), - jMsr["msr_span"].asInt(), + jMsr["msr_span"].asDouble(), pInput, pOutput, - NJGIS::SERVICE::NjRecordStatus::MSRS_FINISHED, + restatus, jMsr["msr_runninginfo"]["StdOut"].asString().c_str(), jMsr["msr_runninginfo"]["StdErr"].asString().c_str(), jMsr["msr_runninginfo"]["InvokeErr"].asString().c_str(), diff --git a/src/NxModelServiceRecordFactory.h b/src/NxModelServiceRecordFactory.h index 19b98b6..4196187 100644 --- a/src/NxModelServiceRecordFactory.h +++ b/src/NxModelServiceRecordFactory.h @@ -11,7 +11,7 @@ namespace NJGIS class NjModelServiceRecordFactory { public: - static INjModelServiceRecord* createModelServiceRecordByJSON(Json::Value jMsr, const char* ip, int port); + static INjModelServiceRecord* createModelServiceRecordByJSON(Json::Value &jMsr, const char* ip, int port); }; } } diff --git a/src/NxServiceAccess.cpp b/src/NxServiceAccess.cpp index f4ddd5e..dca1cb8 100644 --- a/src/NxServiceAccess.cpp +++ b/src/NxServiceAccess.cpp @@ -127,14 +127,17 @@ NJGIS::SERVICE::INjModelServiceRecord* NJGIS::SERVICE::NjServiceAccess::getModel std::string url; this->getBaseUrl(url); url += "modelserrun/json/" + std::string(msrid); - NJGIS::SERVICE::INjModelServiceRecord* pRecord = NULL; + //NJGIS::SERVICE::INjModelServiceRecord* pRecord = NULL; Json::Value jResponse; NJGIS::SERVICE::NjHttpHelper::request_get_json_sync(url.c_str(), jResponse); if(jResponse["result"].asString() == "suc") { - NJGIS::SERVICE::NjModelServiceRecordFactory::createModelServiceRecordByJSON(jResponse["data"], this->getIP(), this->getPort()); + Json::Value jMsr = jResponse["data"]; + return NJGIS::SERVICE::NjModelServiceRecordFactory::createModelServiceRecordByJSON(jMsr, this->getIP(), this->getPort()); + }else{ + return NULL; } - return pRecord; + } -- Gitee From 2a6f49de047962cb04c2eb3f52a4d6f702beecfb Mon Sep 17 00:00:00 2001 From: wang ming <1508574735@qq.com> Date: Mon, 26 Mar 2018 21:24:59 +0800 Subject: [PATCH 2/2] modelservice refresh function add --- src/NxModelService.cpp | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/NxModelService.cpp b/src/NxModelService.cpp index 3f2519d..be30a50 100644 --- a/src/NxModelService.cpp +++ b/src/NxModelService.cpp @@ -130,5 +130,24 @@ int NJGIS::SERVICE::NjModelService::invoke( INjDataConfiguration* config, std::s int NJGIS::SERVICE::NjModelService::refresh() { //! TODO DX - return NULL; + std::string url; + Json::Value jResponse; + this->getBaseUrl(url); + + url += "modelser/json/"; + url += std::string(this->getServiceOID()); + + NJGIS::SERVICE::NjHttpHelper::request_get_json_sync(url.c_str(),jResponse); + + if(jResponse["result"].asString() == "suc"){ + Json::Value jMs = jResponse["data"]; + this->_status = (NJGIS::SERVICE::NjModelServiceStatus)jMs["ms_status"].asInt(); + this->_limit = (NJGIS::SERVICE::NjModelServiceLimitation)jMs["ms_limited"].asInt(); + this->_permission = (NJGIS::SERVICE::NjModelServicePermission)jMs["ms_permission"].asInt(); + }else{ + return -1; + } + + return 1; + } -- Gitee