InteractiveLog_server_g.h 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327
  1. #ifndef __INTERACTIVELOG_SERVER_G_H
  2. #define __INTERACTIVELOG_SERVER_G_H
  3. #pragma once
  4. // This code is generated by spgen tool!
  5. #include "InteractiveLog_def_g.h"
  6. namespace InteractiveLog {
  7. class LogService_ServerSessionBase : public CServerSessionBase
  8. {
  9. public:
  10. LogService_ServerSessionBase() { }
  11. virtual ~LogService_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 LogService_Method_LogFunction:
  19. if (dwSignature == LogService_MethodSignature_LogFunction) {
  20. bOverlap = true;
  21. } else {
  22. Error = Error_MethodSignatureFailed;
  23. }
  24. break;
  25. case LogService_Method_LogCustomerID:
  26. if (dwSignature == LogService_MethodSignature_LogCustomerID) {
  27. bOverlap = true;
  28. } else {
  29. Error = Error_MethodSignatureFailed;
  30. }
  31. break;
  32. case LogService_Method_LogAgreement:
  33. if (dwSignature == LogService_MethodSignature_LogAgreement) {
  34. bOverlap = true;
  35. } else {
  36. Error = Error_MethodSignatureFailed;
  37. }
  38. break;
  39. case LogService_Method_LogReceipt:
  40. if (dwSignature == LogService_MethodSignature_LogReceipt) {
  41. bOverlap = true;
  42. } else {
  43. Error = Error_MethodSignatureFailed;
  44. }
  45. break;
  46. case LogService_Method_LogOperation:
  47. if (dwSignature == LogService_MethodSignature_LogOperation) {
  48. bOverlap = true;
  49. } else {
  50. Error = Error_MethodSignatureFailed;
  51. }
  52. break;
  53. case LogService_Method_LogResponse:
  54. if (dwSignature == LogService_MethodSignature_LogResponse) {
  55. bOverlap = true;
  56. } else {
  57. Error = Error_MethodSignatureFailed;
  58. }
  59. break;
  60. case LogService_Method_LogAgent:
  61. if (dwSignature == LogService_MethodSignature_LogAgent) {
  62. bOverlap = true;
  63. } else {
  64. Error = Error_MethodSignatureFailed;
  65. }
  66. break;
  67. case LogService_Method_LogBegin:
  68. if (dwSignature == LogService_MethodSignature_LogBegin) {
  69. bOverlap = true;
  70. } else {
  71. Error = Error_MethodSignatureFailed;
  72. }
  73. break;
  74. case LogService_Method_LogEnd:
  75. if (dwSignature == LogService_MethodSignature_LogEnd) {
  76. bOverlap = true;
  77. } else {
  78. Error = Error_MethodSignatureFailed;
  79. }
  80. break;
  81. case LogService_Method_LogCallID:
  82. if (dwSignature == LogService_MethodSignature_LogCallID) {
  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 LogService_Method_LogFunction:
  99. if (dwSignature != LogService_MethodSignature_LogFunction) {
  100. Error = Error_MethodSignatureFailed;
  101. }
  102. break;
  103. case LogService_Method_LogCustomerID:
  104. if (dwSignature != LogService_MethodSignature_LogCustomerID) {
  105. Error = Error_MethodSignatureFailed;
  106. }
  107. break;
  108. case LogService_Method_LogAgreement:
  109. if (dwSignature != LogService_MethodSignature_LogAgreement) {
  110. Error = Error_MethodSignatureFailed;
  111. }
  112. break;
  113. case LogService_Method_LogReceipt:
  114. if (dwSignature != LogService_MethodSignature_LogReceipt) {
  115. Error = Error_MethodSignatureFailed;
  116. }
  117. break;
  118. case LogService_Method_LogOperation:
  119. if (dwSignature != LogService_MethodSignature_LogOperation) {
  120. Error = Error_MethodSignatureFailed;
  121. }
  122. break;
  123. case LogService_Method_LogResponse:
  124. if (dwSignature != LogService_MethodSignature_LogResponse) {
  125. Error = Error_MethodSignatureFailed;
  126. }
  127. break;
  128. case LogService_Method_LogAgent:
  129. if (dwSignature != LogService_MethodSignature_LogAgent) {
  130. Error = Error_MethodSignatureFailed;
  131. }
  132. break;
  133. case LogService_Method_LogBegin:
  134. if (dwSignature != LogService_MethodSignature_LogBegin) {
  135. Error = Error_MethodSignatureFailed;
  136. }
  137. break;
  138. case LogService_Method_LogEnd:
  139. if (dwSignature != LogService_MethodSignature_LogEnd) {
  140. Error = Error_MethodSignatureFailed;
  141. }
  142. break;
  143. case LogService_Method_LogCallID:
  144. if (dwSignature != LogService_MethodSignature_LogCallID) {
  145. Error = Error_MethodSignatureFailed;
  146. }
  147. break;
  148. default:
  149. Error = Error_MethodNotFound;
  150. break;
  151. }
  152. return Error;
  153. }
  154. virtual void Handle_LogFunction(SpOnewayCallContext<LogService_LogFunction_Info>::Pointer ctx)
  155. {
  156. /// override by user
  157. }
  158. virtual void Handle_LogCustomerID(SpOnewayCallContext<LogService_LogCustomerID_Info>::Pointer ctx)
  159. {
  160. /// override by user
  161. }
  162. virtual void Handle_LogAgreement(SpOnewayCallContext<LogService_LogAgreement_Info>::Pointer ctx)
  163. {
  164. /// override by user
  165. }
  166. virtual void Handle_LogReceipt(SpOnewayCallContext<LogService_LogReceipt_Info>::Pointer ctx)
  167. {
  168. /// override by user
  169. }
  170. virtual void Handle_LogOperation(SpOnewayCallContext<LogService_LogOperation_Info>::Pointer ctx)
  171. {
  172. /// override by user
  173. }
  174. virtual void Handle_LogResponse(SpOnewayCallContext<LogService_LogResponse_Info>::Pointer ctx)
  175. {
  176. /// override by user
  177. }
  178. virtual void Handle_LogAgent(SpOnewayCallContext<LogService_LogAgent_Info>::Pointer ctx)
  179. {
  180. /// override by user
  181. }
  182. virtual void Handle_LogBegin(SpOnewayCallContext<LogService_LogBegin_Info>::Pointer ctx)
  183. {
  184. /// override by user
  185. }
  186. virtual void Handle_LogEnd(SpOnewayCallContext<LogService_LogEnd_Info>::Pointer ctx)
  187. {
  188. /// override by user
  189. }
  190. virtual void Handle_LogCallID(SpOnewayCallContext<LogService_LogCallID_Info>::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 LogService_Method_LogFunction:
  211. {
  212. SpOnewayCallContext<LogService_LogFunction_Info>::Pointer ctx;
  213. ctx.Attach(new SpOnewayCallContext<LogService_LogFunction_Info>());
  214. SpBuffer2Object(Buf, ctx->Info);
  215. Handle_LogFunction(ctx);
  216. }
  217. break;
  218. case LogService_Method_LogCustomerID:
  219. {
  220. SpOnewayCallContext<LogService_LogCustomerID_Info>::Pointer ctx;
  221. ctx.Attach(new SpOnewayCallContext<LogService_LogCustomerID_Info>());
  222. SpBuffer2Object(Buf, ctx->Info);
  223. Handle_LogCustomerID(ctx);
  224. }
  225. break;
  226. case LogService_Method_LogAgreement:
  227. {
  228. SpOnewayCallContext<LogService_LogAgreement_Info>::Pointer ctx;
  229. ctx.Attach(new SpOnewayCallContext<LogService_LogAgreement_Info>());
  230. SpBuffer2Object(Buf, ctx->Info);
  231. Handle_LogAgreement(ctx);
  232. }
  233. break;
  234. case LogService_Method_LogReceipt:
  235. {
  236. SpOnewayCallContext<LogService_LogReceipt_Info>::Pointer ctx;
  237. ctx.Attach(new SpOnewayCallContext<LogService_LogReceipt_Info>());
  238. SpBuffer2Object(Buf, ctx->Info);
  239. Handle_LogReceipt(ctx);
  240. }
  241. break;
  242. case LogService_Method_LogOperation:
  243. {
  244. SpOnewayCallContext<LogService_LogOperation_Info>::Pointer ctx;
  245. ctx.Attach(new SpOnewayCallContext<LogService_LogOperation_Info>());
  246. SpBuffer2Object(Buf, ctx->Info);
  247. Handle_LogOperation(ctx);
  248. }
  249. break;
  250. case LogService_Method_LogResponse:
  251. {
  252. SpOnewayCallContext<LogService_LogResponse_Info>::Pointer ctx;
  253. ctx.Attach(new SpOnewayCallContext<LogService_LogResponse_Info>());
  254. SpBuffer2Object(Buf, ctx->Info);
  255. Handle_LogResponse(ctx);
  256. }
  257. break;
  258. case LogService_Method_LogAgent:
  259. {
  260. SpOnewayCallContext<LogService_LogAgent_Info>::Pointer ctx;
  261. ctx.Attach(new SpOnewayCallContext<LogService_LogAgent_Info>());
  262. SpBuffer2Object(Buf, ctx->Info);
  263. Handle_LogAgent(ctx);
  264. }
  265. break;
  266. case LogService_Method_LogBegin:
  267. {
  268. SpOnewayCallContext<LogService_LogBegin_Info>::Pointer ctx;
  269. ctx.Attach(new SpOnewayCallContext<LogService_LogBegin_Info>());
  270. SpBuffer2Object(Buf, ctx->Info);
  271. Handle_LogBegin(ctx);
  272. }
  273. break;
  274. case LogService_Method_LogEnd:
  275. {
  276. SpOnewayCallContext<LogService_LogEnd_Info>::Pointer ctx;
  277. ctx.Attach(new SpOnewayCallContext<LogService_LogEnd_Info>());
  278. SpBuffer2Object(Buf, ctx->Info);
  279. Handle_LogEnd(ctx);
  280. }
  281. break;
  282. case LogService_Method_LogCallID:
  283. {
  284. SpOnewayCallContext<LogService_LogCallID_Info>::Pointer ctx;
  285. ctx.Attach(new SpOnewayCallContext<LogService_LogCallID_Info>());
  286. SpBuffer2Object(Buf, ctx->Info);
  287. Handle_LogCallID(ctx);
  288. }
  289. break;
  290. default:
  291. assert(0);
  292. break;
  293. }
  294. } else {
  295. pTransactionContext->SendAnswer(Error);
  296. }
  297. }
  298. };
  299. ///////////////////////////
  300. } // namespace InteractiveLog
  301. #endif // __INTERACTIVELOG_SERVER_G_H