mod_upload.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. #ifndef RVC_MOD_UPLOAD_H_
  2. #define RVC_MOD_UPLOAD_H_
  3. #include "stdafx.h"
  4. #include "SpBase.h"
  5. #include "SpIni.h"
  6. #include "SpTest.h"
  7. #include "modVer.h"
  8. #include "UploadFSM.h"
  9. #include "Upload_server_g.h"
  10. using namespace Upload;
  11. class CUploadEntity;
  12. class UploadSession : public UploadService_ServerSessionBase
  13. {
  14. public:
  15. UploadSession(CUploadEntity* pEntity) : m_pEntity(pEntity) {}
  16. virtual ~UploadSession() {}
  17. virtual void Handle_UploadProgess(SpReqAnsContext<UploadService_UploadProgess_Req, UploadService_UploadProgess_Ans>::Pointer ctx);
  18. virtual void Handle_UploadNumber(SpReqAnsContext<UploadService_UploadNumber_Req, UploadService_UploadNumber_Ans>::Pointer ctx);
  19. virtual void Handle_UploadDateList(SpReqAnsContext<UploadService_UploadDateList_Req, UploadService_UploadDateList_Ans>::Pointer ctx);
  20. virtual void Handle_ClearUploadDate(SpReqAnsContext<UploadService_ClearUploadDate_Req, UploadService_ClearUploadDate_Ans>::Pointer ctx);
  21. private:
  22. CUploadEntity* m_pEntity;
  23. };
  24. class CUploadEntity : public CEntityBase
  25. {
  26. public:
  27. CUploadEntity() {}
  28. virtual ~CUploadEntity() {}
  29. virtual const char* GetEntityName() const { return "Upload"; }
  30. virtual bool IsService()const { return true; }
  31. const char* GetEntityVersion() const override
  32. {
  33. return MODULE_VERSION_FULL;
  34. }
  35. ON_ENTITYT_TEST()
  36. virtual void OnPreStart(CAutoArray<CSimpleStringA> strArgs, CSmartPointer<ITransactionContext> pTransactionContext)
  37. {
  38. ErrorCodeEnum Error = Error_Succeed;
  39. //MessageBoxA(0,0,0,0);
  40. Error = m_fsm.Init(this);
  41. pTransactionContext->SendAnswer(Error);
  42. }
  43. virtual void OnSelfTest(EntityTestEnum eTestType, CSmartPointer<ITransactionContext> pTransactionContext)
  44. {
  45. if (Test_ShakeHand == eTestType)
  46. {
  47. pTransactionContext->SendAnswer(Error_Succeed);
  48. }
  49. }
  50. virtual void OnPreClose(EntityCloseCauseEnum eCloseCause, CSmartPointer<ITransactionContext> pTransactionContext)
  51. {
  52. pTransactionContext->SendAnswer(Error_Succeed);
  53. }
  54. // 实体服务化
  55. virtual CServerSessionBase* OnNewSession(const char*, const char*)
  56. {
  57. return new UploadSession(this);
  58. }
  59. //查询当前上传进度
  60. ErrorCodeEnum UploadProgess(SpReqAnsContext<UploadService_UploadProgess_Req, UploadService_UploadProgess_Ans>::Pointer ctx)
  61. {
  62. ErrorCodeEnum ret = Error_Succeed;
  63. UploadProgress progress;
  64. m_fsm.getUploadProgress(progress);
  65. ctx->Ans.uploadState = progress.uploadState;
  66. ctx->Ans.uploadNumber = progress.uploadNumber;
  67. ctx->Ans.elapseTime = CSimpleStringA2W(progress.elapseTime);
  68. Dbg("UploadProgess: state %d uploadNumber %d elapseTime %s", progress.uploadState, progress.uploadNumber, progress.elapseTime.GetData());
  69. return ret;
  70. }
  71. //查询剩余待上传的文件个数
  72. ErrorCodeEnum UploadNumber(SpReqAnsContext<UploadService_UploadNumber_Req, UploadService_UploadNumber_Ans>::Pointer ctx)
  73. {
  74. ErrorCodeEnum ret = Error_Succeed;
  75. Dbg("UploadNumber req silentTime is %d", ctx->Req.silentTime);
  76. int fileNum = m_fsm.getCheckDirFile(ctx->Req.silentTime);
  77. Dbg("UploadNumber is %d", fileNum);
  78. ctx->Ans.uploadNumber = fileNum;
  79. return ret;
  80. }
  81. //查询上传日期列表
  82. ErrorCodeEnum UploadDateList(SpReqAnsContext<UploadService_UploadDateList_Req, UploadService_UploadDateList_Ans>::Pointer ctx)
  83. {
  84. ErrorCodeEnum ret = Error_Succeed;
  85. CAutoArray<CSimpleStringA> str;
  86. ret = m_fsm.getUploadDate(str);
  87. if (ret == Error_Succeed) {
  88. ctx->Ans.uploadDateStr = str;
  89. }
  90. return ret;
  91. }
  92. //清空上传日期列表
  93. ErrorCodeEnum ClearUploadDate(SpReqAnsContext<UploadService_ClearUploadDate_Req, UploadService_ClearUploadDate_Ans>::Pointer ctx)
  94. {
  95. ErrorCodeEnum ret = Error_Succeed;
  96. bool bret = m_fsm.clearUploadDate();
  97. if (bret) {
  98. ctx->Ans.isOK = true;
  99. }
  100. else {
  101. ctx->Ans.isOK = false;
  102. }
  103. return ret;
  104. }
  105. private:
  106. UploadFSM m_fsm;
  107. };
  108. #endif