SalesAudioTrans_server_g.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. #ifndef __SALESAUDIOTRANS_SERVER_G_H
  2. #define __SALESAUDIOTRANS_SERVER_G_H
  3. #pragma once
  4. // This code is generated by spgen tool!
  5. #include "SalesAudioTrans_def_g.h"
  6. namespace SalesAudioTrans {
  7. class SalesAudioTransService_ServerSessionBase : public CServerSessionBase
  8. {
  9. public:
  10. SalesAudioTransService_ServerSessionBase() { }
  11. virtual ~SalesAudioTransService_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 SalesAudioTransService_Method_StartAudioTrans:
  19. if (dwSignature == SalesAudioTransService_MethodSignature_StartAudioTrans) {
  20. bOverlap = true;
  21. } else {
  22. Error = Error_MethodSignatureFailed;
  23. }
  24. break;
  25. default:
  26. Error = Error_MethodNotFound;
  27. break;
  28. }
  29. return Error;
  30. }
  31. int CheckMessageSignature(DWORD dwMessageID, DWORD dwSignature)
  32. {
  33. ErrorCodeEnum Error = Error_Succeed;
  34. switch (dwMessageID) {
  35. case SalesAudioTransService_Method_StartAudioTrans:
  36. if (dwSignature != SalesAudioTransService_MethodSignature_StartAudioTrans) {
  37. Error = Error_MethodSignatureFailed;
  38. }
  39. break;
  40. default:
  41. Error = Error_MethodNotFound;
  42. break;
  43. }
  44. return Error;
  45. }
  46. virtual void Handle_StartAudioTrans(SpReqAnsContext<SalesAudioTransService_StartAudioTrans_Req, SalesAudioTransService_StartAudioTrans_Ans>::Pointer ctx)
  47. {
  48. /// override by user
  49. }
  50. virtual void OnRequest(CSmartPointer<ITransactionContext> pTransactionContext)
  51. {
  52. CAutoBuffer Buf;
  53. DWORD dwMessageID;
  54. DWORD dwMessageSignature;
  55. ErrorCodeEnum Error = pTransactionContext->GetReceiveBuffer(dwMessageID, dwMessageSignature, Buf);
  56. if (Error == Error_Succeed) {
  57. #ifdef DEBUG
  58. assert(CheckMessageSignature(dwMessageID, dwMessageSignature) == Error_Succeed);
  59. #else
  60. if (CheckMessageSignature(dwMessageID, dwMessageSignature) != Error_Succeed) {
  61. pTransactionContext->SendAnswer(Error_MethodSignatureFailed);
  62. return;
  63. }
  64. #endif
  65. switch (dwMessageID) {
  66. case SalesAudioTransService_Method_StartAudioTrans:
  67. {
  68. SpReqAnsContext<SalesAudioTransService_StartAudioTrans_Req,SalesAudioTransService_StartAudioTrans_Ans>::Pointer ctx;
  69. ctx.Attach(new SpReqAnsContext<SalesAudioTransService_StartAudioTrans_Req,SalesAudioTransService_StartAudioTrans_Ans>(pTransactionContext));
  70. SpBuffer2Object(Buf, ctx->Req);
  71. Handle_StartAudioTrans(ctx);
  72. }
  73. break;
  74. default:
  75. assert(0);
  76. break;
  77. }
  78. } else {
  79. pTransactionContext->SendAnswer(Error);
  80. }
  81. }
  82. };
  83. ///////////////////////////
  84. } // namespace SalesAudioTrans
  85. #endif // __SALESAUDIOTRANS_SERVER_G_H