Train_Identify/nvidia_ascend_engine/common_engine/DataUploadEngine/ResultToHttpSrvEngine.h

58 lines
1.4 KiB
C++

/**
* 上传结果到http服务器
* */
#ifndef RESULTTOHTTPSRVENGINE_H
#define RESULTTOHTTPSRVENGINE_H
#include "AppCommon.h"
#include "MyYaml.h"
#include "EngineBase.h"
#include "EngineFactory.h"
#include <mutex>
#include <curl/curl.h>
#include <libssh2.h>
#include "json/json.h"
using namespace ai_matrix;
class ResultToHttpSrvEngine : public ai_matrix::EngineBase
{
public:
ResultToHttpSrvEngine();
~ResultToHttpSrvEngine();
APP_ERROR Init() override;
APP_ERROR DeInit() override;
APP_ERROR Process() override;
private:
//libcurl回调函数
static size_t WriteCallBack(void *pBuffer, size_t size, size_t nmemb, std::string &strResp);
// 调用http接口获取token
bool GetToken(std::string &strBladeAuth);
//列车信息提交http接口
bool ResultToHttpSrv(Json::Value &jvRequest);
//处理上传失败的信息
void DealHttpFailInfo();
// 保存http上传失败的信息
bool SaveHttpFailInfo(Json::Value &jvRequest, std::string &strFilePath);
std::string strPort0_;
std::string strUsername_;
std::string strPassword_;
std::string strURL_;
std::string strGetTokenURL_;
std::string strImageSrv_;
CURL *pCurl_ = nullptr;
int iNoDataCnt_ = 0;
std::string strFailSavePath_;
std::string strFailSaveBakPath_;
std::string strPoundNo_;
};
ENGINE_REGIST(ResultToHttpSrvEngine)
#endif