#ifndef RVC_MOD_UPLOAD_H_ #define RVC_MOD_UPLOAD_H_ #include "stdafx.h" #include "SpBase.h" #include "SpIni.h" #ifdef RVC_OS_WIN #else #include "SpTest.h" #include "modVer.h" #endif #include "UploadFSM.h" #include "Upload_server_g.h" using namespace Upload; class CUploadEntity; class UploadSession : public UploadService_ServerSessionBase { public: UploadSession(CUploadEntity* pEntity) : m_pEntity(pEntity) {} virtual ~UploadSession() {} virtual void Handle_UploadProgess(SpReqAnsContext::Pointer ctx); virtual void Handle_UploadNumber(SpReqAnsContext::Pointer ctx); virtual void Handle_UploadDateList(SpReqAnsContext::Pointer ctx); virtual void Handle_ClearUploadDate(SpReqAnsContext::Pointer ctx); private: CUploadEntity* m_pEntity; }; class CUploadEntity : public CEntityBase { public: CUploadEntity() {} virtual ~CUploadEntity() {} virtual const char* GetEntityName() const { return "Upload"; } virtual bool IsService()const { return true; } #ifdef RVC_OS_WIN #else const char* GetEntityVersion() const override { return MODULE_VERSION_FULL; } ON_ENTITYT_TEST() #endif virtual void OnPreStart(CAutoArray strArgs, CSmartPointer pTransactionContext) { ErrorCodeEnum Error = Error_Succeed; //MessageBoxA(0,0,0,0); Error = m_fsm.Init(this); pTransactionContext->SendAnswer(Error); } virtual void OnSelfTest(EntityTestEnum eTestType, CSmartPointer pTransactionContext) { if (Test_ShakeHand == eTestType) { pTransactionContext->SendAnswer(Error_Succeed); } } virtual void OnPreClose(EntityCloseCauseEnum eCloseCause, CSmartPointer pTransactionContext) { pTransactionContext->SendAnswer(Error_Succeed); } // 实体服务化 virtual CServerSessionBase* OnNewSession(const char*, const char*) { return new UploadSession(this); } //查询当前上传进度 ErrorCodeEnum UploadProgess(SpReqAnsContext::Pointer ctx) { ErrorCodeEnum ret = Error_Succeed; //UploadProgress progress; //m_fsm.getUploadProgress(progress); //ctx->Ans.uploadState=progress.uploadState; //ctx->Ans.uploadNumber=progress.uploadNumber; //ctx->Ans.elapseTime=CSimpleStringA2W(progress.elapseTime); //Dbg("UploadProgess: state %d uploadNumber %d elapseTime %s",progress.uploadState,progress.uploadNumber,progress.elapseTime.GetData()); ctx->Ans.uploadState = 2; ctx->Ans.uploadNumber = 0; ctx->Ans.elapseTime = CSimpleStringA2W(""); //Dbg("UploadProgess is disable"); DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("UploadProgess is disable"); return ret; } //查询剩余待上传的文件个数 ErrorCodeEnum UploadNumber(SpReqAnsContext::Pointer ctx) { ErrorCodeEnum ret = Error_Succeed; //Dbg("UploadNumber req silentTime is %d",ctx->Req.silentTime); //废弃接口 //int fileNum = m_fsm.getCheckDirFile(ctx->Req.silentTime); //Dbg("UploadNumber is %d",fileNum); //ctx->Ans.uploadNumber=fileNum; ctx->Ans.uploadNumber = 0; //Dbg("UploadNumber is disable"); DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("UploadNumber is disable"); return ret; } //查询上传日期列表 ErrorCodeEnum UploadDateList(SpReqAnsContext::Pointer ctx) { ErrorCodeEnum ret = Error_Succeed; CAutoArray str; //废弃接口 //ret = m_fsm.getUploadDate(str); //if(ret==Error_Succeed){ // ctx->Ans.uploadDateStr=str; //} ctx->Ans.uploadDateStr = str; //Dbg("UploadDateList is disable"); DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("UploadDateList is disable"); return ret; } //清空上传日期列表 ErrorCodeEnum ClearUploadDate(SpReqAnsContext::Pointer ctx) { ErrorCodeEnum ret = Error_Succeed; //废弃接口 //bool bret = m_fsm.clearUploadDate(); //if(bret){ // ctx->Ans.isOK=true; //}else{ // ctx->Ans.isOK=false; //} //Dbg("ClearUploadDate is disable"); DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("ClearUploadDate is disable"); ctx->Ans.isOK = true; return ret; } private: UploadFSM m_fsm; }; #endif