ContactlessCard_server_g.h 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302
  1. #ifndef __CONTACTLESSCARD_SERVER_G_H
  2. #define __CONTACTLESSCARD_SERVER_G_H
  3. #pragma once
  4. // This code is generated by spgen tool!
  5. #include "ContactlessCard_def_g.h"
  6. namespace ContactlessCard {
  7. class ContactlessCardService_ServerSessionBase : public CServerSessionBase
  8. {
  9. public:
  10. ContactlessCardService_ServerSessionBase() { }
  11. virtual ~ContactlessCardService_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 ContactlessCardService_Method_Insert:
  19. if (dwSignature == ContactlessCardService_MethodSignature_Insert) {
  20. bOverlap = true;
  21. } else {
  22. Error = Error_MethodSignatureFailed;
  23. }
  24. break;
  25. case ContactlessCardService_Method_CancelInsert:
  26. if (dwSignature == ContactlessCardService_MethodSignature_CancelInsert) {
  27. bOverlap = true;
  28. } else {
  29. Error = Error_MethodSignatureFailed;
  30. }
  31. break;
  32. case ContactlessCardService_Method_InsertWaitMore:
  33. if (dwSignature == ContactlessCardService_MethodSignature_InsertWaitMore) {
  34. bOverlap = true;
  35. } else {
  36. Error = Error_MethodSignatureFailed;
  37. }
  38. break;
  39. case ContactlessCardService_Method_PreOnline:
  40. if (dwSignature == ContactlessCardService_MethodSignature_PreOnline) {
  41. bOverlap = true;
  42. } else {
  43. Error = Error_MethodSignatureFailed;
  44. }
  45. break;
  46. case ContactlessCardService_Method_PostOnline:
  47. if (dwSignature == ContactlessCardService_MethodSignature_PostOnline) {
  48. bOverlap = true;
  49. } else {
  50. Error = Error_MethodSignatureFailed;
  51. }
  52. break;
  53. case ContactlessCardService_Method_Eject:
  54. if (dwSignature == ContactlessCardService_MethodSignature_Eject) {
  55. bOverlap = true;
  56. } else {
  57. Error = Error_MethodSignatureFailed;
  58. }
  59. break;
  60. case ContactlessCardService_Method_Exit:
  61. if (dwSignature == ContactlessCardService_MethodSignature_Exit) {
  62. bOverlap = true;
  63. } else {
  64. Error = Error_MethodSignatureFailed;
  65. }
  66. break;
  67. case ContactlessCardService_Method_QueryCardInfo:
  68. if (dwSignature == ContactlessCardService_MethodSignature_QueryCardInfo) {
  69. bOverlap = true;
  70. } else {
  71. Error = Error_MethodSignatureFailed;
  72. }
  73. break;
  74. case ContactlessCardService_Method_GetDevInfo:
  75. if (dwSignature == ContactlessCardService_MethodSignature_GetDevInfo) {
  76. bOverlap = true;
  77. } else {
  78. Error = Error_MethodSignatureFailed;
  79. }
  80. break;
  81. default:
  82. Error = Error_MethodNotFound;
  83. break;
  84. }
  85. return Error;
  86. }
  87. int CheckMessageSignature(DWORD dwMessageID, DWORD dwSignature)
  88. {
  89. ErrorCodeEnum Error = Error_Succeed;
  90. switch (dwMessageID) {
  91. case ContactlessCardService_Method_Insert:
  92. if (dwSignature != ContactlessCardService_MethodSignature_Insert) {
  93. Error = Error_MethodSignatureFailed;
  94. }
  95. break;
  96. case ContactlessCardService_Method_CancelInsert:
  97. if (dwSignature != ContactlessCardService_MethodSignature_CancelInsert) {
  98. Error = Error_MethodSignatureFailed;
  99. }
  100. break;
  101. case ContactlessCardService_Method_InsertWaitMore:
  102. if (dwSignature != ContactlessCardService_MethodSignature_InsertWaitMore) {
  103. Error = Error_MethodSignatureFailed;
  104. }
  105. break;
  106. case ContactlessCardService_Method_PreOnline:
  107. if (dwSignature != ContactlessCardService_MethodSignature_PreOnline) {
  108. Error = Error_MethodSignatureFailed;
  109. }
  110. break;
  111. case ContactlessCardService_Method_PostOnline:
  112. if (dwSignature != ContactlessCardService_MethodSignature_PostOnline) {
  113. Error = Error_MethodSignatureFailed;
  114. }
  115. break;
  116. case ContactlessCardService_Method_Eject:
  117. if (dwSignature != ContactlessCardService_MethodSignature_Eject) {
  118. Error = Error_MethodSignatureFailed;
  119. }
  120. break;
  121. case ContactlessCardService_Method_Exit:
  122. if (dwSignature != ContactlessCardService_MethodSignature_Exit) {
  123. Error = Error_MethodSignatureFailed;
  124. }
  125. break;
  126. case ContactlessCardService_Method_QueryCardInfo:
  127. if (dwSignature != ContactlessCardService_MethodSignature_QueryCardInfo) {
  128. Error = Error_MethodSignatureFailed;
  129. }
  130. break;
  131. case ContactlessCardService_Method_GetDevInfo:
  132. if (dwSignature != ContactlessCardService_MethodSignature_GetDevInfo) {
  133. Error = Error_MethodSignatureFailed;
  134. }
  135. break;
  136. default:
  137. Error = Error_MethodNotFound;
  138. break;
  139. }
  140. return Error;
  141. }
  142. virtual void Handle_Insert(SpReqAnsContext<ContactlessCardService_Insert_Req, ContactlessCardService_Insert_Ans>::Pointer ctx)
  143. {
  144. /// override by user
  145. }
  146. virtual void Handle_CancelInsert(SpOnewayCallContext<ContactlessCardService_CancelInsert_Info>::Pointer ctx)
  147. {
  148. /// override by user
  149. }
  150. virtual void Handle_InsertWaitMore(SpOnewayCallContext<ContactlessCardService_InsertWaitMore_Info>::Pointer ctx)
  151. {
  152. /// override by user
  153. }
  154. virtual void Handle_PreOnline(SpReqAnsContext<ContactlessCardService_PreOnline_Req, ContactlessCardService_PreOnline_Ans>::Pointer ctx)
  155. {
  156. /// override by user
  157. }
  158. virtual void Handle_PostOnline(SpReqAnsContext<ContactlessCardService_PostOnline_Req, ContactlessCardService_PostOnline_Ans>::Pointer ctx)
  159. {
  160. /// override by user
  161. }
  162. virtual void Handle_Eject(SpReqAnsContext<ContactlessCardService_Eject_Req, ContactlessCardService_Eject_Ans>::Pointer ctx)
  163. {
  164. /// override by user
  165. }
  166. virtual void Handle_Exit(SpOnewayCallContext<ContactlessCardService_Exit_Info>::Pointer ctx)
  167. {
  168. /// override by user
  169. }
  170. virtual void Handle_QueryCardInfo(SpReqAnsContext<ContactlessCardService_QueryCardInfo_Req, ContactlessCardService_QueryCardInfo_Ans>::Pointer ctx)
  171. {
  172. /// override by user
  173. }
  174. virtual void Handle_GetDevInfo(SpReqAnsContext<ContactlessCardService_GetDevInfo_Req, ContactlessCardService_GetDevInfo_Ans>::Pointer ctx)
  175. {
  176. /// override by user
  177. }
  178. virtual void OnRequest(CSmartPointer<ITransactionContext> pTransactionContext)
  179. {
  180. CAutoBuffer Buf;
  181. DWORD dwMessageID;
  182. DWORD dwMessageSignature;
  183. ErrorCodeEnum Error = pTransactionContext->GetReceiveBuffer(dwMessageID, dwMessageSignature, Buf);
  184. if (Error == Error_Succeed) {
  185. #ifdef DEBUG
  186. assert(CheckMessageSignature(dwMessageID, dwMessageSignature) == Error_Succeed);
  187. #else
  188. if (CheckMessageSignature(dwMessageID, dwMessageSignature) != Error_Succeed) {
  189. pTransactionContext->SendAnswer(Error_MethodSignatureFailed);
  190. return;
  191. }
  192. #endif
  193. switch (dwMessageID) {
  194. case ContactlessCardService_Method_Insert:
  195. {
  196. SpReqAnsContext<ContactlessCardService_Insert_Req,ContactlessCardService_Insert_Ans>::Pointer ctx;
  197. ctx.Attach(new SpReqAnsContext<ContactlessCardService_Insert_Req,ContactlessCardService_Insert_Ans>(pTransactionContext));
  198. SpBuffer2Object(Buf, ctx->Req);
  199. Handle_Insert(ctx);
  200. }
  201. break;
  202. case ContactlessCardService_Method_CancelInsert:
  203. {
  204. SpOnewayCallContext<ContactlessCardService_CancelInsert_Info>::Pointer ctx;
  205. ctx.Attach(new SpOnewayCallContext<ContactlessCardService_CancelInsert_Info>());
  206. SpBuffer2Object(Buf, ctx->Info);
  207. Handle_CancelInsert(ctx);
  208. }
  209. break;
  210. case ContactlessCardService_Method_InsertWaitMore:
  211. {
  212. SpOnewayCallContext<ContactlessCardService_InsertWaitMore_Info>::Pointer ctx;
  213. ctx.Attach(new SpOnewayCallContext<ContactlessCardService_InsertWaitMore_Info>());
  214. SpBuffer2Object(Buf, ctx->Info);
  215. Handle_InsertWaitMore(ctx);
  216. }
  217. break;
  218. case ContactlessCardService_Method_PreOnline:
  219. {
  220. SpReqAnsContext<ContactlessCardService_PreOnline_Req,ContactlessCardService_PreOnline_Ans>::Pointer ctx;
  221. ctx.Attach(new SpReqAnsContext<ContactlessCardService_PreOnline_Req,ContactlessCardService_PreOnline_Ans>(pTransactionContext));
  222. SpBuffer2Object(Buf, ctx->Req);
  223. Handle_PreOnline(ctx);
  224. }
  225. break;
  226. case ContactlessCardService_Method_PostOnline:
  227. {
  228. SpReqAnsContext<ContactlessCardService_PostOnline_Req,ContactlessCardService_PostOnline_Ans>::Pointer ctx;
  229. ctx.Attach(new SpReqAnsContext<ContactlessCardService_PostOnline_Req,ContactlessCardService_PostOnline_Ans>(pTransactionContext));
  230. SpBuffer2Object(Buf, ctx->Req);
  231. Handle_PostOnline(ctx);
  232. }
  233. break;
  234. case ContactlessCardService_Method_Eject:
  235. {
  236. SpReqAnsContext<ContactlessCardService_Eject_Req,ContactlessCardService_Eject_Ans>::Pointer ctx;
  237. ctx.Attach(new SpReqAnsContext<ContactlessCardService_Eject_Req,ContactlessCardService_Eject_Ans>(pTransactionContext));
  238. SpBuffer2Object(Buf, ctx->Req);
  239. Handle_Eject(ctx);
  240. }
  241. break;
  242. case ContactlessCardService_Method_Exit:
  243. {
  244. SpOnewayCallContext<ContactlessCardService_Exit_Info>::Pointer ctx;
  245. ctx.Attach(new SpOnewayCallContext<ContactlessCardService_Exit_Info>());
  246. SpBuffer2Object(Buf, ctx->Info);
  247. Handle_Exit(ctx);
  248. }
  249. break;
  250. case ContactlessCardService_Method_QueryCardInfo:
  251. {
  252. SpReqAnsContext<ContactlessCardService_QueryCardInfo_Req,ContactlessCardService_QueryCardInfo_Ans>::Pointer ctx;
  253. ctx.Attach(new SpReqAnsContext<ContactlessCardService_QueryCardInfo_Req,ContactlessCardService_QueryCardInfo_Ans>(pTransactionContext));
  254. SpBuffer2Object(Buf, ctx->Req);
  255. Handle_QueryCardInfo(ctx);
  256. }
  257. break;
  258. case ContactlessCardService_Method_GetDevInfo:
  259. {
  260. SpReqAnsContext<ContactlessCardService_GetDevInfo_Req,ContactlessCardService_GetDevInfo_Ans>::Pointer ctx;
  261. ctx.Attach(new SpReqAnsContext<ContactlessCardService_GetDevInfo_Req,ContactlessCardService_GetDevInfo_Ans>(pTransactionContext));
  262. SpBuffer2Object(Buf, ctx->Req);
  263. Handle_GetDevInfo(ctx);
  264. }
  265. break;
  266. default:
  267. assert(0);
  268. break;
  269. }
  270. } else {
  271. pTransactionContext->SendAnswer(Error);
  272. }
  273. }
  274. };
  275. ///////////////////////////
  276. } // namespace ContactlessCard
  277. #endif // __CONTACTLESSCARD_SERVER_G_H