#ifndef __GUICONSOLE_SERVER_G_H #define __GUICONSOLE_SERVER_G_H #pragma once // This code is generated by spgen tool! #include "GUIConsole_def_g.h" namespace GUIConsole { class GUIConsoleService_ServerSessionBase : public CServerSessionBase { public: GUIConsoleService_ServerSessionBase() { } virtual ~GUIConsoleService_ServerSessionBase() { } virtual bool IsExclusive() { return false; } virtual bool IsSessionOverlap() { return true; } virtual ErrorCodeEnum GetMessageAttr(DWORD dwMessageID, DWORD dwSignature, bool &bOverlap) { ErrorCodeEnum Error = Error_Succeed; switch (dwMessageID) { case GUIConsoleService_Method_GetCurrentMaintainer: if (dwSignature == GUIConsoleService_MethodSignature_GetCurrentMaintainer) { bOverlap = true; } else { Error = Error_MethodSignatureFailed; } break; case GUIConsoleService_Method_Empower: if (dwSignature == GUIConsoleService_MethodSignature_Empower) { bOverlap = true; } else { Error = Error_MethodSignatureFailed; } break; case GUIConsoleService_Method_Takeover: if (dwSignature == GUIConsoleService_MethodSignature_Takeover) { bOverlap = true; } else { Error = Error_MethodSignatureFailed; } break; case GUIConsoleService_Method_ForceQuit: if (dwSignature == GUIConsoleService_MethodSignature_ForceQuit) { bOverlap = true; } else { Error = Error_MethodSignatureFailed; } break; case GUIConsoleService_Method_AddMaterialCounter: if (dwSignature == GUIConsoleService_MethodSignature_AddMaterialCounter) { bOverlap = true; } else { Error = Error_MethodSignatureFailed; } break; case GUIConsoleService_Method_GetMaterialCounter: if (dwSignature == GUIConsoleService_MethodSignature_GetMaterialCounter) { bOverlap = true; } else { Error = Error_MethodSignatureFailed; } break; case GUIConsoleService_Method_ResetMaterialCounter: if (dwSignature == GUIConsoleService_MethodSignature_ResetMaterialCounter) { bOverlap = true; } else { Error = Error_MethodSignatureFailed; } break; case GUIConsoleService_Method_RegistSwallowedCard: if (dwSignature == GUIConsoleService_MethodSignature_RegistSwallowedCard) { bOverlap = true; } else { Error = Error_MethodSignatureFailed; } break; case GUIConsoleService_Method_SyncMaterialCount: if (dwSignature == GUIConsoleService_MethodSignature_SyncMaterialCount) { bOverlap = true; } else { Error = Error_MethodSignatureFailed; } break; case GUIConsoleService_Method_AddTradeManage: if (dwSignature == GUIConsoleService_MethodSignature_AddTradeManage) { bOverlap = true; } else { Error = Error_MethodSignatureFailed; } break; case GUIConsoleService_Method_QueryMaterialInfo: if (dwSignature == GUIConsoleService_MethodSignature_QueryMaterialInfo) { bOverlap = true; } else { Error = Error_MethodSignatureFailed; } break; default: Error = Error_MethodNotFound; break; } return Error; } int CheckMessageSignature(DWORD dwMessageID, DWORD dwSignature) { ErrorCodeEnum Error = Error_Succeed; switch (dwMessageID) { case GUIConsoleService_Method_GetCurrentMaintainer: if (dwSignature != GUIConsoleService_MethodSignature_GetCurrentMaintainer) { Error = Error_MethodSignatureFailed; } break; case GUIConsoleService_Method_Empower: if (dwSignature != GUIConsoleService_MethodSignature_Empower) { Error = Error_MethodSignatureFailed; } break; case GUIConsoleService_Method_Takeover: if (dwSignature != GUIConsoleService_MethodSignature_Takeover) { Error = Error_MethodSignatureFailed; } break; case GUIConsoleService_Method_ForceQuit: if (dwSignature != GUIConsoleService_MethodSignature_ForceQuit) { Error = Error_MethodSignatureFailed; } break; case GUIConsoleService_Method_AddMaterialCounter: if (dwSignature != GUIConsoleService_MethodSignature_AddMaterialCounter) { Error = Error_MethodSignatureFailed; } break; case GUIConsoleService_Method_GetMaterialCounter: if (dwSignature != GUIConsoleService_MethodSignature_GetMaterialCounter) { Error = Error_MethodSignatureFailed; } break; case GUIConsoleService_Method_ResetMaterialCounter: if (dwSignature != GUIConsoleService_MethodSignature_ResetMaterialCounter) { Error = Error_MethodSignatureFailed; } break; case GUIConsoleService_Method_RegistSwallowedCard: if (dwSignature != GUIConsoleService_MethodSignature_RegistSwallowedCard) { Error = Error_MethodSignatureFailed; } break; case GUIConsoleService_Method_SyncMaterialCount: if (dwSignature != GUIConsoleService_MethodSignature_SyncMaterialCount) { Error = Error_MethodSignatureFailed; } break; case GUIConsoleService_Method_AddTradeManage: if (dwSignature != GUIConsoleService_MethodSignature_AddTradeManage) { Error = Error_MethodSignatureFailed; } break; case GUIConsoleService_Method_QueryMaterialInfo: if (dwSignature != GUIConsoleService_MethodSignature_QueryMaterialInfo) { Error = Error_MethodSignatureFailed; } break; default: Error = Error_MethodNotFound; break; } return Error; } virtual void Handle_GetCurrentMaintainer(SpReqAnsContext::Pointer ctx) { /// override by user } virtual void Handle_Empower(SpReqAnsContext::Pointer ctx) { /// override by user } virtual void Handle_Takeover(SpReqAnsContext::Pointer ctx) { /// override by user } virtual void Handle_ForceQuit(SpReqAnsContext::Pointer ctx) { /// override by user } virtual void Handle_AddMaterialCounter(SpReqAnsContext::Pointer ctx) { /// override by user } virtual void Handle_GetMaterialCounter(SpReqAnsContext::Pointer ctx) { /// override by user } virtual void Handle_ResetMaterialCounter(SpReqAnsContext::Pointer ctx) { /// override by user } virtual void Handle_RegistSwallowedCard(SpReqAnsContext::Pointer ctx) { /// override by user } virtual void Handle_SyncMaterialCount(SpOnewayCallContext::Pointer ctx) { /// override by user } virtual void Handle_AddTradeManage(SpReqAnsContext::Pointer ctx) { /// override by user } virtual void Handle_QueryMaterialInfo(SpReqAnsContext::Pointer ctx) { /// override by user } virtual void OnRequest(CSmartPointer pTransactionContext) { CAutoBuffer Buf; DWORD dwMessageID; DWORD dwMessageSignature; ErrorCodeEnum Error = pTransactionContext->GetReceiveBuffer(dwMessageID, dwMessageSignature, Buf); if (Error == Error_Succeed) { #ifdef DEBUG assert(CheckMessageSignature(dwMessageID, dwMessageSignature) == Error_Succeed); #else if (CheckMessageSignature(dwMessageID, dwMessageSignature) != Error_Succeed) { pTransactionContext->SendAnswer(Error_MethodSignatureFailed); return; } #endif switch (dwMessageID) { case GUIConsoleService_Method_GetCurrentMaintainer: { SpReqAnsContext::Pointer ctx; ctx.Attach(new SpReqAnsContext(pTransactionContext)); SpBuffer2Object(Buf, ctx->Req); Handle_GetCurrentMaintainer(ctx); } break; case GUIConsoleService_Method_Empower: { SpReqAnsContext::Pointer ctx; ctx.Attach(new SpReqAnsContext(pTransactionContext)); SpBuffer2Object(Buf, ctx->Req); Handle_Empower(ctx); } break; case GUIConsoleService_Method_Takeover: { SpReqAnsContext::Pointer ctx; ctx.Attach(new SpReqAnsContext(pTransactionContext)); SpBuffer2Object(Buf, ctx->Req); Handle_Takeover(ctx); } break; case GUIConsoleService_Method_ForceQuit: { SpReqAnsContext::Pointer ctx; ctx.Attach(new SpReqAnsContext(pTransactionContext)); SpBuffer2Object(Buf, ctx->Req); Handle_ForceQuit(ctx); } break; case GUIConsoleService_Method_AddMaterialCounter: { SpReqAnsContext::Pointer ctx; ctx.Attach(new SpReqAnsContext(pTransactionContext)); SpBuffer2Object(Buf, ctx->Req); Handle_AddMaterialCounter(ctx); } break; case GUIConsoleService_Method_GetMaterialCounter: { SpReqAnsContext::Pointer ctx; ctx.Attach(new SpReqAnsContext(pTransactionContext)); SpBuffer2Object(Buf, ctx->Req); Handle_GetMaterialCounter(ctx); } break; case GUIConsoleService_Method_ResetMaterialCounter: { SpReqAnsContext::Pointer ctx; ctx.Attach(new SpReqAnsContext(pTransactionContext)); SpBuffer2Object(Buf, ctx->Req); Handle_ResetMaterialCounter(ctx); } break; case GUIConsoleService_Method_RegistSwallowedCard: { SpReqAnsContext::Pointer ctx; ctx.Attach(new SpReqAnsContext(pTransactionContext)); SpBuffer2Object(Buf, ctx->Req); Handle_RegistSwallowedCard(ctx); } break; case GUIConsoleService_Method_SyncMaterialCount: { Dbg("GUIConsoleService_Method_SyncMaterialCount method signature received!"); SpOnewayCallContext::Pointer ctx; ctx.Attach(new SpOnewayCallContext()); Dbg("pre SpBuffer2Object"); SpBuffer2Object(Buf, ctx->Info); Dbg("after SpBuffer2Object"); Handle_SyncMaterialCount(ctx); } break; case GUIConsoleService_Method_AddTradeManage: { SpReqAnsContext::Pointer ctx; ctx.Attach(new SpReqAnsContext(pTransactionContext)); SpBuffer2Object(Buf, ctx->Req); Handle_AddTradeManage(ctx); } break; case GUIConsoleService_Method_QueryMaterialInfo: { SpReqAnsContext::Pointer ctx; ctx.Attach(new SpReqAnsContext(pTransactionContext)); SpBuffer2Object(Buf, ctx->Req); Handle_QueryMaterialInfo(ctx); } break; default: assert(0); break; } } else { pTransactionContext->SendAnswer(Error); } } }; /////////////////////////// } // namespace GUIConsole #endif // __GUICONSOLE_SERVER_G_H