IDCertificate_server_g.h 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327
  1. #ifndef __IDCERTIFICATE_SERVER_G_H
  2. #define __IDCERTIFICATE_SERVER_G_H
  3. #pragma once
  4. // This code is generated by spgen tool!
  5. #include "IDCertificate_def_g.h"
  6. namespace IDCertificate {
  7. class IDCertService_ServerSessionBase : public CServerSessionBase
  8. {
  9. public:
  10. IDCertService_ServerSessionBase() { }
  11. virtual ~IDCertService_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 IDCertService_Method_Read:
  19. if (dwSignature == IDCertService_MethodSignature_Read) {
  20. bOverlap = true;
  21. } else {
  22. Error = Error_MethodSignatureFailed;
  23. }
  24. break;
  25. case IDCertService_Method_CancelRead:
  26. if (dwSignature == IDCertService_MethodSignature_CancelRead) {
  27. bOverlap = true;
  28. } else {
  29. Error = Error_MethodSignatureFailed;
  30. }
  31. break;
  32. case IDCertService_Method_ReadWaitMore:
  33. if (dwSignature == IDCertService_MethodSignature_ReadWaitMore) {
  34. bOverlap = true;
  35. } else {
  36. Error = Error_MethodSignatureFailed;
  37. }
  38. break;
  39. case IDCertService_Method_Exit:
  40. if (dwSignature == IDCertService_MethodSignature_Exit) {
  41. bOverlap = true;
  42. } else {
  43. Error = Error_MethodSignatureFailed;
  44. }
  45. break;
  46. case IDCertService_Method_ReadEx:
  47. if (dwSignature == IDCertService_MethodSignature_ReadEx) {
  48. bOverlap = true;
  49. } else {
  50. Error = Error_MethodSignatureFailed;
  51. }
  52. break;
  53. case IDCertService_Method_Eject:
  54. if (dwSignature == IDCertService_MethodSignature_Eject) {
  55. bOverlap = true;
  56. } else {
  57. Error = Error_MethodSignatureFailed;
  58. }
  59. break;
  60. case IDCertService_Method_ReadAndScan:
  61. if (dwSignature == IDCertService_MethodSignature_ReadAndScan) {
  62. bOverlap = true;
  63. } else {
  64. Error = Error_MethodSignatureFailed;
  65. }
  66. break;
  67. case IDCertService_Method_CrossTermCall:
  68. if (dwSignature == IDCertService_MethodSignature_CrossTermCall) {
  69. bOverlap = true;
  70. } else {
  71. Error = Error_MethodSignatureFailed;
  72. }
  73. break;
  74. case IDCertService_Method_CrossTermInvokeInfo:
  75. if (dwSignature == IDCertService_MethodSignature_CrossTermInvokeInfo) {
  76. bOverlap = true;
  77. } else {
  78. Error = Error_MethodSignatureFailed;
  79. }
  80. break;
  81. case IDCertService_Method_GetDevInfo:
  82. if (dwSignature == IDCertService_MethodSignature_GetDevInfo) {
  83. bOverlap = true;
  84. } else {
  85. Error = Error_MethodSignatureFailed;
  86. }
  87. break;
  88. default:
  89. Error = Error_MethodNotFound;
  90. break;
  91. }
  92. return Error;
  93. }
  94. int CheckMessageSignature(DWORD dwMessageID, DWORD dwSignature)
  95. {
  96. ErrorCodeEnum Error = Error_Succeed;
  97. switch (dwMessageID) {
  98. case IDCertService_Method_Read:
  99. if (dwSignature != IDCertService_MethodSignature_Read) {
  100. Error = Error_MethodSignatureFailed;
  101. }
  102. break;
  103. case IDCertService_Method_CancelRead:
  104. if (dwSignature != IDCertService_MethodSignature_CancelRead) {
  105. Error = Error_MethodSignatureFailed;
  106. }
  107. break;
  108. case IDCertService_Method_ReadWaitMore:
  109. if (dwSignature != IDCertService_MethodSignature_ReadWaitMore) {
  110. Error = Error_MethodSignatureFailed;
  111. }
  112. break;
  113. case IDCertService_Method_Exit:
  114. if (dwSignature != IDCertService_MethodSignature_Exit) {
  115. Error = Error_MethodSignatureFailed;
  116. }
  117. break;
  118. case IDCertService_Method_ReadEx:
  119. if (dwSignature != IDCertService_MethodSignature_ReadEx) {
  120. Error = Error_MethodSignatureFailed;
  121. }
  122. break;
  123. case IDCertService_Method_Eject:
  124. if (dwSignature != IDCertService_MethodSignature_Eject) {
  125. Error = Error_MethodSignatureFailed;
  126. }
  127. break;
  128. case IDCertService_Method_ReadAndScan:
  129. if (dwSignature != IDCertService_MethodSignature_ReadAndScan) {
  130. Error = Error_MethodSignatureFailed;
  131. }
  132. break;
  133. case IDCertService_Method_CrossTermCall:
  134. if (dwSignature != IDCertService_MethodSignature_CrossTermCall) {
  135. Error = Error_MethodSignatureFailed;
  136. }
  137. break;
  138. case IDCertService_Method_CrossTermInvokeInfo:
  139. if (dwSignature != IDCertService_MethodSignature_CrossTermInvokeInfo) {
  140. Error = Error_MethodSignatureFailed;
  141. }
  142. break;
  143. case IDCertService_Method_GetDevInfo:
  144. if (dwSignature != IDCertService_MethodSignature_GetDevInfo) {
  145. Error = Error_MethodSignatureFailed;
  146. }
  147. break;
  148. default:
  149. Error = Error_MethodNotFound;
  150. break;
  151. }
  152. return Error;
  153. }
  154. virtual void Handle_Read(SpReqAnsContext<IDCertService_Read_Req, IDCertService_Read_Ans>::Pointer ctx)
  155. {
  156. /// override by user
  157. }
  158. virtual void Handle_CancelRead(SpOnewayCallContext<IDCertService_CancelRead_Info>::Pointer ctx)
  159. {
  160. /// override by user
  161. }
  162. virtual void Handle_ReadWaitMore(SpOnewayCallContext<IDCertService_ReadWaitMore_Info>::Pointer ctx)
  163. {
  164. /// override by user
  165. }
  166. virtual void Handle_Exit(SpOnewayCallContext<IDCertService_Exit_Info>::Pointer ctx)
  167. {
  168. /// override by user
  169. }
  170. virtual void Handle_ReadEx(SpReqAnsContext<IDCertService_ReadEx_Req, IDCertService_ReadEx_Ans>::Pointer ctx)
  171. {
  172. /// override by user
  173. }
  174. virtual void Handle_Eject(SpReqAnsContext<IDCertService_Eject_Req, IDCertService_Eject_Ans>::Pointer ctx)
  175. {
  176. /// override by user
  177. }
  178. virtual void Handle_ReadAndScan(SpReqAnsContext<IDCertService_ReadAndScan_Req, IDCertService_ReadAndScan_Ans>::Pointer ctx)
  179. {
  180. /// override by user
  181. }
  182. virtual void Handle_CrossTermCall(SpReqAnsContext<IDCertService_CrossTermCall_Req, IDCertService_CrossTermCall_Ans>::Pointer ctx)
  183. {
  184. /// override by user
  185. }
  186. virtual void Handle_CrossTermInvokeInfo(SpOnewayCallContext<IDCertService_CrossTermInvokeInfo_Info>::Pointer ctx)
  187. {
  188. /// override by user
  189. }
  190. virtual void Handle_GetDevInfo(SpReqAnsContext<IDCertService_GetDevInfo_Req, IDCertService_GetDevInfo_Ans>::Pointer ctx)
  191. {
  192. /// override by user
  193. }
  194. virtual void OnRequest(CSmartPointer<ITransactionContext> pTransactionContext)
  195. {
  196. CAutoBuffer Buf;
  197. DWORD dwMessageID;
  198. DWORD dwMessageSignature;
  199. ErrorCodeEnum Error = pTransactionContext->GetReceiveBuffer(dwMessageID, dwMessageSignature, Buf);
  200. if (Error == Error_Succeed) {
  201. #ifdef DEBUG
  202. assert(CheckMessageSignature(dwMessageID, dwMessageSignature) == Error_Succeed);
  203. #else
  204. if (CheckMessageSignature(dwMessageID, dwMessageSignature) != Error_Succeed) {
  205. pTransactionContext->SendAnswer(Error_MethodSignatureFailed);
  206. return;
  207. }
  208. #endif
  209. switch (dwMessageID) {
  210. case IDCertService_Method_Read:
  211. {
  212. SpReqAnsContext<IDCertService_Read_Req,IDCertService_Read_Ans>::Pointer ctx;
  213. ctx.Attach(new SpReqAnsContext<IDCertService_Read_Req,IDCertService_Read_Ans>(pTransactionContext));
  214. SpBuffer2Object(Buf, ctx->Req);
  215. Handle_Read(ctx);
  216. }
  217. break;
  218. case IDCertService_Method_CancelRead:
  219. {
  220. SpOnewayCallContext<IDCertService_CancelRead_Info>::Pointer ctx;
  221. ctx.Attach(new SpOnewayCallContext<IDCertService_CancelRead_Info>());
  222. SpBuffer2Object(Buf, ctx->Info);
  223. Handle_CancelRead(ctx);
  224. }
  225. break;
  226. case IDCertService_Method_ReadWaitMore:
  227. {
  228. SpOnewayCallContext<IDCertService_ReadWaitMore_Info>::Pointer ctx;
  229. ctx.Attach(new SpOnewayCallContext<IDCertService_ReadWaitMore_Info>());
  230. SpBuffer2Object(Buf, ctx->Info);
  231. Handle_ReadWaitMore(ctx);
  232. }
  233. break;
  234. case IDCertService_Method_Exit:
  235. {
  236. SpOnewayCallContext<IDCertService_Exit_Info>::Pointer ctx;
  237. ctx.Attach(new SpOnewayCallContext<IDCertService_Exit_Info>());
  238. SpBuffer2Object(Buf, ctx->Info);
  239. Handle_Exit(ctx);
  240. }
  241. break;
  242. case IDCertService_Method_ReadEx:
  243. {
  244. SpReqAnsContext<IDCertService_ReadEx_Req,IDCertService_ReadEx_Ans>::Pointer ctx;
  245. ctx.Attach(new SpReqAnsContext<IDCertService_ReadEx_Req,IDCertService_ReadEx_Ans>(pTransactionContext));
  246. SpBuffer2Object(Buf, ctx->Req);
  247. Handle_ReadEx(ctx);
  248. }
  249. break;
  250. case IDCertService_Method_Eject:
  251. {
  252. SpReqAnsContext<IDCertService_Eject_Req,IDCertService_Eject_Ans>::Pointer ctx;
  253. ctx.Attach(new SpReqAnsContext<IDCertService_Eject_Req,IDCertService_Eject_Ans>(pTransactionContext));
  254. SpBuffer2Object(Buf, ctx->Req);
  255. Handle_Eject(ctx);
  256. }
  257. break;
  258. case IDCertService_Method_ReadAndScan:
  259. {
  260. SpReqAnsContext<IDCertService_ReadAndScan_Req,IDCertService_ReadAndScan_Ans>::Pointer ctx;
  261. ctx.Attach(new SpReqAnsContext<IDCertService_ReadAndScan_Req,IDCertService_ReadAndScan_Ans>(pTransactionContext));
  262. SpBuffer2Object(Buf, ctx->Req);
  263. Handle_ReadAndScan(ctx);
  264. }
  265. break;
  266. case IDCertService_Method_CrossTermCall:
  267. {
  268. SpReqAnsContext<IDCertService_CrossTermCall_Req,IDCertService_CrossTermCall_Ans>::Pointer ctx;
  269. ctx.Attach(new SpReqAnsContext<IDCertService_CrossTermCall_Req,IDCertService_CrossTermCall_Ans>(pTransactionContext));
  270. SpBuffer2Object(Buf, ctx->Req);
  271. Handle_CrossTermCall(ctx);
  272. }
  273. break;
  274. case IDCertService_Method_CrossTermInvokeInfo:
  275. {
  276. SpOnewayCallContext<IDCertService_CrossTermInvokeInfo_Info>::Pointer ctx;
  277. ctx.Attach(new SpOnewayCallContext<IDCertService_CrossTermInvokeInfo_Info>());
  278. SpBuffer2Object(Buf, ctx->Info);
  279. Handle_CrossTermInvokeInfo(ctx);
  280. }
  281. break;
  282. case IDCertService_Method_GetDevInfo:
  283. {
  284. SpReqAnsContext<IDCertService_GetDevInfo_Req,IDCertService_GetDevInfo_Ans>::Pointer ctx;
  285. ctx.Attach(new SpReqAnsContext<IDCertService_GetDevInfo_Req,IDCertService_GetDevInfo_Ans>(pTransactionContext));
  286. SpBuffer2Object(Buf, ctx->Req);
  287. Handle_GetDevInfo(ctx);
  288. }
  289. break;
  290. default:
  291. assert(0);
  292. break;
  293. }
  294. } else {
  295. pTransactionContext->SendAnswer(Error);
  296. }
  297. }
  298. };
  299. ///////////////////////////
  300. } // namespace IDCertificate
  301. #endif // __IDCERTIFICATE_SERVER_G_H