MobileDial_server_g.h 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. #ifndef __MOBILEDIAL_SERVER_G_H
  2. #define __MOBILEDIAL_SERVER_G_H
  3. #pragma once
  4. // This code is generated by spgen tool!
  5. #include "MobileDial_def_g.h"
  6. namespace MobileDial {
  7. class MobileDialService_ServerSessionBase : public CServerSessionBase
  8. {
  9. public:
  10. MobileDialService_ServerSessionBase() { }
  11. virtual ~MobileDialService_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 MobileDialService_Method_Query:
  19. if (dwSignature == MobileDialService_MethodSignature_Query) {
  20. bOverlap = true;
  21. } else {
  22. Error = Error_MethodSignatureFailed;
  23. }
  24. break;
  25. case MobileDialService_Method_GetDevInfo:
  26. if (dwSignature == MobileDialService_MethodSignature_GetDevInfo) {
  27. bOverlap = true;
  28. } else {
  29. Error = Error_MethodSignatureFailed;
  30. }
  31. break;
  32. case MobileDialService_Method_ShowDialog:
  33. if (dwSignature == MobileDialService_MethodSignature_ShowDialog) {
  34. bOverlap = true;
  35. } else {
  36. Error = Error_MethodSignatureFailed;
  37. }
  38. break;
  39. default:
  40. Error = Error_MethodNotFound;
  41. break;
  42. }
  43. return Error;
  44. }
  45. int CheckMessageSignature(DWORD dwMessageID, DWORD dwSignature)
  46. {
  47. ErrorCodeEnum Error = Error_Succeed;
  48. switch (dwMessageID) {
  49. case MobileDialService_Method_Query:
  50. if (dwSignature != MobileDialService_MethodSignature_Query) {
  51. Error = Error_MethodSignatureFailed;
  52. }
  53. break;
  54. case MobileDialService_Method_GetDevInfo:
  55. if (dwSignature != MobileDialService_MethodSignature_GetDevInfo) {
  56. Error = Error_MethodSignatureFailed;
  57. }
  58. break;
  59. case MobileDialService_Method_ShowDialog:
  60. if (dwSignature != MobileDialService_MethodSignature_ShowDialog) {
  61. Error = Error_MethodSignatureFailed;
  62. }
  63. break;
  64. default:
  65. Error = Error_MethodNotFound;
  66. break;
  67. }
  68. return Error;
  69. }
  70. virtual void Handle_Query(SpReqAnsContext<MobileDialService_Query_Req, MobileDialService_Query_Ans>::Pointer ctx)
  71. {
  72. /// override by user
  73. }
  74. virtual void Handle_GetDevInfo(SpReqAnsContext<MobileDialService_GetDevInfo_Req, MobileDialService_GetDevInfo_Ans>::Pointer ctx)
  75. {
  76. /// override by user
  77. }
  78. virtual void Handle_ShowDialog(SpOnewayCallContext<MobileDialService_ShowDialog_Info>::Pointer ctx)
  79. {
  80. /// override by user
  81. }
  82. virtual void OnRequest(CSmartPointer<ITransactionContext> pTransactionContext)
  83. {
  84. CAutoBuffer Buf;
  85. DWORD dwMessageID;
  86. DWORD dwMessageSignature;
  87. ErrorCodeEnum Error = pTransactionContext->GetReceiveBuffer(dwMessageID, dwMessageSignature, Buf);
  88. if (Error == Error_Succeed) {
  89. #ifdef DEBUG
  90. assert(CheckMessageSignature(dwMessageID, dwMessageSignature) == Error_Succeed);
  91. #else
  92. if (CheckMessageSignature(dwMessageID, dwMessageSignature) != Error_Succeed) {
  93. pTransactionContext->SendAnswer(Error_MethodSignatureFailed);
  94. return;
  95. }
  96. #endif
  97. switch (dwMessageID) {
  98. case MobileDialService_Method_Query:
  99. {
  100. SpReqAnsContext<MobileDialService_Query_Req,MobileDialService_Query_Ans>::Pointer ctx;
  101. ctx.Attach(new SpReqAnsContext<MobileDialService_Query_Req,MobileDialService_Query_Ans>(pTransactionContext));
  102. SpBuffer2Object(Buf, ctx->Req);
  103. Handle_Query(ctx);
  104. }
  105. break;
  106. case MobileDialService_Method_GetDevInfo:
  107. {
  108. SpReqAnsContext<MobileDialService_GetDevInfo_Req,MobileDialService_GetDevInfo_Ans>::Pointer ctx;
  109. ctx.Attach(new SpReqAnsContext<MobileDialService_GetDevInfo_Req,MobileDialService_GetDevInfo_Ans>(pTransactionContext));
  110. SpBuffer2Object(Buf, ctx->Req);
  111. Handle_GetDevInfo(ctx);
  112. }
  113. break;
  114. case MobileDialService_Method_ShowDialog:
  115. {
  116. SpOnewayCallContext<MobileDialService_ShowDialog_Info>::Pointer ctx;
  117. ctx.Attach(new SpOnewayCallContext<MobileDialService_ShowDialog_Info>());
  118. SpBuffer2Object(Buf, ctx->Info);
  119. Handle_ShowDialog(ctx);
  120. }
  121. break;
  122. default:
  123. assert(0);
  124. break;
  125. }
  126. } else {
  127. pTransactionContext->SendAnswer(Error);
  128. }
  129. }
  130. };
  131. ///////////////////////////
  132. } // namespace MobileDial
  133. #endif // __MOBILEDIAL_SERVER_G_H