Upload_server_g.h 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. #ifndef __UPLOAD_SERVER_G_H
  2. #define __UPLOAD_SERVER_G_H
  3. #pragma once
  4. // This code is generated by spgen tool!
  5. #include "Upload_def_g.h"
  6. namespace Upload {
  7. class UploadService_ServerSessionBase : public CServerSessionBase
  8. {
  9. public:
  10. UploadService_ServerSessionBase() { }
  11. virtual ~UploadService_ServerSessionBase() { }
  12. virtual bool IsExclusive() { return false; }
  13. virtual bool IsSessionOverlap() { return true; }
  14. virtual ErrorCodeEnum GetMessageAttr(DWORD dwMessageID, DWORD dwSignature, bool &bOverlap)
  15. {
  16. ErrorCodeEnum Error = Error_Succeed;
  17. switch (dwMessageID) {
  18. case UploadService_Method_UploadProgess:
  19. if (dwSignature == UploadService_MethodSignature_UploadProgess) {
  20. bOverlap = true;
  21. } else {
  22. Error = Error_MethodSignatureFailed;
  23. }
  24. break;
  25. case UploadService_Method_UploadNumber:
  26. if (dwSignature == UploadService_MethodSignature_UploadNumber) {
  27. bOverlap = true;
  28. } else {
  29. Error = Error_MethodSignatureFailed;
  30. }
  31. break;
  32. case UploadService_Method_UploadDateList:
  33. if (dwSignature == UploadService_MethodSignature_UploadDateList) {
  34. bOverlap = true;
  35. } else {
  36. Error = Error_MethodSignatureFailed;
  37. }
  38. break;
  39. case UploadService_Method_ClearUploadDate:
  40. if (dwSignature == UploadService_MethodSignature_ClearUploadDate) {
  41. bOverlap = true;
  42. } else {
  43. Error = Error_MethodSignatureFailed;
  44. }
  45. break;
  46. default:
  47. Error = Error_MethodNotFound;
  48. break;
  49. }
  50. return Error;
  51. }
  52. int CheckMessageSignature(DWORD dwMessageID, DWORD dwSignature)
  53. {
  54. ErrorCodeEnum Error = Error_Succeed;
  55. switch (dwMessageID) {
  56. case UploadService_Method_UploadProgess:
  57. if (dwSignature != UploadService_MethodSignature_UploadProgess) {
  58. Error = Error_MethodSignatureFailed;
  59. }
  60. break;
  61. case UploadService_Method_UploadNumber:
  62. if (dwSignature != UploadService_MethodSignature_UploadNumber) {
  63. Error = Error_MethodSignatureFailed;
  64. }
  65. break;
  66. case UploadService_Method_UploadDateList:
  67. if (dwSignature != UploadService_MethodSignature_UploadDateList) {
  68. Error = Error_MethodSignatureFailed;
  69. }
  70. break;
  71. case UploadService_Method_ClearUploadDate:
  72. if (dwSignature != UploadService_MethodSignature_ClearUploadDate) {
  73. Error = Error_MethodSignatureFailed;
  74. }
  75. break;
  76. default:
  77. Error = Error_MethodNotFound;
  78. break;
  79. }
  80. return Error;
  81. }
  82. virtual void Handle_UploadProgess(SpReqAnsContext<UploadService_UploadProgess_Req, UploadService_UploadProgess_Ans>::Pointer ctx)
  83. {
  84. /// override by user
  85. }
  86. virtual void Handle_UploadNumber(SpReqAnsContext<UploadService_UploadNumber_Req, UploadService_UploadNumber_Ans>::Pointer ctx)
  87. {
  88. /// override by user
  89. }
  90. virtual void Handle_UploadDateList(SpReqAnsContext<UploadService_UploadDateList_Req, UploadService_UploadDateList_Ans>::Pointer ctx)
  91. {
  92. /// override by user
  93. }
  94. virtual void Handle_ClearUploadDate(SpReqAnsContext<UploadService_ClearUploadDate_Req, UploadService_ClearUploadDate_Ans>::Pointer ctx)
  95. {
  96. /// override by user
  97. }
  98. virtual void OnRequest(CSmartPointer<ITransactionContext> pTransactionContext)
  99. {
  100. CAutoBuffer Buf;
  101. DWORD dwMessageID;
  102. DWORD dwMessageSignature;
  103. ErrorCodeEnum Error = pTransactionContext->GetReceiveBuffer(dwMessageID, dwMessageSignature, Buf);
  104. if (Error == Error_Succeed) {
  105. #ifdef DEBUG
  106. assert(CheckMessageSignature(dwMessageID, dwMessageSignature) == Error_Succeed);
  107. #else
  108. if (CheckMessageSignature(dwMessageID, dwMessageSignature) != Error_Succeed) {
  109. pTransactionContext->SendAnswer(Error_MethodSignatureFailed);
  110. return;
  111. }
  112. #endif
  113. switch (dwMessageID) {
  114. case UploadService_Method_UploadProgess:
  115. {
  116. SpReqAnsContext<UploadService_UploadProgess_Req,UploadService_UploadProgess_Ans>::Pointer ctx;
  117. ctx.Attach(new SpReqAnsContext<UploadService_UploadProgess_Req,UploadService_UploadProgess_Ans>(pTransactionContext));
  118. SpBuffer2Object(Buf, ctx->Req);
  119. Handle_UploadProgess(ctx);
  120. }
  121. break;
  122. case UploadService_Method_UploadNumber:
  123. {
  124. SpReqAnsContext<UploadService_UploadNumber_Req,UploadService_UploadNumber_Ans>::Pointer ctx;
  125. ctx.Attach(new SpReqAnsContext<UploadService_UploadNumber_Req,UploadService_UploadNumber_Ans>(pTransactionContext));
  126. SpBuffer2Object(Buf, ctx->Req);
  127. Handle_UploadNumber(ctx);
  128. }
  129. break;
  130. case UploadService_Method_UploadDateList:
  131. {
  132. SpReqAnsContext<UploadService_UploadDateList_Req,UploadService_UploadDateList_Ans>::Pointer ctx;
  133. ctx.Attach(new SpReqAnsContext<UploadService_UploadDateList_Req,UploadService_UploadDateList_Ans>(pTransactionContext));
  134. SpBuffer2Object(Buf, ctx->Req);
  135. Handle_UploadDateList(ctx);
  136. }
  137. break;
  138. case UploadService_Method_ClearUploadDate:
  139. {
  140. SpReqAnsContext<UploadService_ClearUploadDate_Req,UploadService_ClearUploadDate_Ans>::Pointer ctx;
  141. ctx.Attach(new SpReqAnsContext<UploadService_ClearUploadDate_Req,UploadService_ClearUploadDate_Ans>(pTransactionContext));
  142. SpBuffer2Object(Buf, ctx->Req);
  143. Handle_ClearUploadDate(ctx);
  144. }
  145. break;
  146. default:
  147. assert(0);
  148. break;
  149. }
  150. } else {
  151. pTransactionContext->SendAnswer(Error);
  152. }
  153. }
  154. };
  155. ///////////////////////////
  156. } // namespace Upload
  157. #endif // __UPLOAD_SERVER_G_H