#ifndef _RECORDINFO_H_ #define _RECORDINFO_H_ #include "IHttpFunc.h" #include "json/json.h" #include "SpBase.h" #ifndef RVC_UPLOAD_VIDEORECORDING_HTTP_API #define RVC_UPLOAD_VIDEORECORDING_HTTP_API "/api/upload/video_recording" #endif // !RVC_UPLOAD_VIDEORECORDING_HTTP_API #ifndef RVC_HTTPTIMEOUT #define RVC_HTTPTIMEOUT 20 #endif // !RVC_HTTPTIMEOUT #define REFLECTION(var) #var //业务状态(0 - 失败,1 - 成功,2 - 取消,3 - 中断) enum eRvcBusinessStatus { eFailed, eSuccess, eCancel, eInterrupt }; typedef struct record_item_s { std::string file_name; std::string file_path; int file_length; }record_item_t; //video_record_info_t typedef struct video_record_info_s { CSimpleStringA strServerURL; CSimpleStringA strAPI; CSimpleStringA strTerminalNo; CSimpleStringA strAppVersion; CSimpleStringA strRecordEndTime; CSimpleStringA strRecordID; int iBusinessStatus; vector vRecordList; }video_record_info_t; struct RecordInfoHTTPReq : CHTTPReq { std::string m_reqContent; virtual string ToJson() { return m_reqContent; } }; struct RecordInfoHTTPRet : CHTTPRet { std::string m_request; bool m_success; std::string m_code; std::string m_message; std::string m_returnCode; std::string m_errorMsg; bool m_data; virtual bool Parse(string strData) { Json::Value root; Json::Reader reader; if (reader.parse(strData, root, false)) { m_success = root[REFLECTION(success)].asBool(); m_code = root[REFLECTION(code)].asString(); m_message = root[REFLECTION(message)].asString(); m_returnCode = root[REFLECTION(returnCode)].asString(); m_errorMsg = root[REFLECTION(errorMsg)].asString(); m_data = root[REFLECTION(data)].asBool(); } else { m_success = false; } return m_success; } }; int post_video_recordinfo_list(unsigned int& uposttime, CSimpleStringA& errormsg, video_record_info_t* pinfo, int itimeout, bool bprintdbg); #endif