#ifndef __HEALTHMANAGER_SERVER_G_H #define __HEALTHMANAGER_SERVER_G_H #pragma once // This code is generated by spgen tool! #include "HealthManager_def_g.h" namespace HealthManager { class HealthManagerService_ServerSessionBase : public CServerSessionBase { public: HealthManagerService_ServerSessionBase() { /// override by user } virtual ~HealthManagerService_ServerSessionBase() { /// override by user } 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 HealthManagerService_Method_EnterState: if (dwSignature == HealthManagerService_MethodSignature_EnterState) { bOverlap = true; } else { Error = Error_MethodSignatureFailed; } break; case HealthManagerService_Method_ExitState: if (dwSignature == HealthManagerService_MethodSignature_ExitState) { bOverlap = true; } else { Error = Error_MethodSignatureFailed; } break; case HealthManagerService_Method_DoEvent: if (dwSignature == HealthManagerService_MethodSignature_DoEvent) { bOverlap = true; } else { Error = Error_MethodSignatureFailed; } break; case HealthManagerService_Method_RealCheck: if (dwSignature == HealthManagerService_MethodSignature_RealCheck) { bOverlap = true; } else { Error = Error_MethodSignatureFailed; } break; case HealthManagerService_Method_GetNetworkState: if (dwSignature == HealthManagerService_MethodSignature_GetNetworkState) { bOverlap = true; } else { Error = Error_MethodSignatureFailed; } break; case HealthManagerService_Method_QueryHardwareInfo: if (dwSignature == HealthManagerService_MethodSignature_QueryHardwareInfo) { bOverlap = true; } else { Error = Error_MethodSignatureFailed; } break; case HealthManagerService_Method_ReadCenterConfigStr: if (dwSignature == HealthManagerService_MethodSignature_ReadCenterConfigStr) { bOverlap = true; } else { Error = Error_MethodSignatureFailed; } break; case HealthManagerService_Method_GetAuthErrMsg: if (dwSignature == HealthManagerService_MethodSignature_GetAuthErrMsg) { bOverlap = true; } else { Error = Error_MethodSignatureFailed; } break; case HealthManagerService_Method_QueryCenterCfg: if (dwSignature == HealthManagerService_MethodSignature_QueryCenterCfg) { 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 HealthManagerService_Method_EnterState: if (dwSignature != HealthManagerService_MethodSignature_EnterState) { Error = Error_MethodSignatureFailed; } break; case HealthManagerService_Method_ExitState: if (dwSignature != HealthManagerService_MethodSignature_ExitState) { Error = Error_MethodSignatureFailed; } break; case HealthManagerService_Method_DoEvent: if (dwSignature != HealthManagerService_MethodSignature_DoEvent) { Error = Error_MethodSignatureFailed; } break; case HealthManagerService_Method_RealCheck: if (dwSignature != HealthManagerService_MethodSignature_RealCheck) { Error = Error_MethodSignatureFailed; } break; case HealthManagerService_Method_GetNetworkState: if (dwSignature != HealthManagerService_MethodSignature_GetNetworkState) { Error = Error_MethodSignatureFailed; } break; case HealthManagerService_Method_QueryHardwareInfo: if (dwSignature != HealthManagerService_MethodSignature_QueryHardwareInfo) { Error = Error_MethodSignatureFailed; } break; case HealthManagerService_Method_ReadCenterConfigStr: if (dwSignature != HealthManagerService_MethodSignature_ReadCenterConfigStr) { Error = Error_MethodSignatureFailed; } break; case HealthManagerService_Method_GetAuthErrMsg: if (dwSignature != HealthManagerService_MethodSignature_GetAuthErrMsg) { Error = Error_MethodSignatureFailed; } break; case HealthManagerService_Method_QueryCenterCfg: if (dwSignature != HealthManagerService_MethodSignature_QueryCenterCfg) { Error = Error_MethodSignatureFailed; } break; default: Error = Error_MethodNotFound; break; } return Error; } virtual void Handle_EnterState(SpReqAnsContext::Pointer ctx) { /// override by user } virtual void Handle_ExitState(SpReqAnsContext::Pointer ctx) { /// override by user } virtual void Handle_DoEvent(SpReqAnsContext::Pointer ctx) { /// override by user } virtual void Handle_RealCheck(SpReqAnsContext::Pointer ctx) { /// override by user } virtual void Handle_GetNetworkState(SpReqAnsContext::Pointer ctx) { /// override by user } virtual void Handle_QueryHardwareInfo(SpReqAnsContext::Pointer ctx) { /// override by user } virtual void Handle_ReadCenterConfigStr(SpReqAnsContext::Pointer ctx) { /// override by user } virtual void Handle_GetAuthErrMsg(SpReqAnsContext::Pointer ctx) { /// override by user } virtual void Handle_QueryCenterCfg(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 HealthManagerService_Method_EnterState: { SpReqAnsContext::Pointer ctx; ctx.Attach(new SpReqAnsContext(pTransactionContext)); SpBuffer2Object(Buf, ctx->Req); pTransactionContext->GetLinkContext(ctx->link); EntityResource::setLink(ctx->link); Handle_EnterState(ctx); } break; case HealthManagerService_Method_ExitState: { SpReqAnsContext::Pointer ctx; ctx.Attach(new SpReqAnsContext(pTransactionContext)); SpBuffer2Object(Buf, ctx->Req); pTransactionContext->GetLinkContext(ctx->link); EntityResource::setLink(ctx->link); Handle_ExitState(ctx); } break; case HealthManagerService_Method_DoEvent: { SpReqAnsContext::Pointer ctx; ctx.Attach(new SpReqAnsContext(pTransactionContext)); SpBuffer2Object(Buf, ctx->Req); pTransactionContext->GetLinkContext(ctx->link); EntityResource::setLink(ctx->link); Handle_DoEvent(ctx); } break; case HealthManagerService_Method_RealCheck: { SpReqAnsContext::Pointer ctx; ctx.Attach(new SpReqAnsContext(pTransactionContext)); SpBuffer2Object(Buf, ctx->Req); pTransactionContext->GetLinkContext(ctx->link); EntityResource::setLink(ctx->link); Handle_RealCheck(ctx); } break; case HealthManagerService_Method_GetNetworkState: { SpReqAnsContext::Pointer ctx; ctx.Attach(new SpReqAnsContext(pTransactionContext)); SpBuffer2Object(Buf, ctx->Req); pTransactionContext->GetLinkContext(ctx->link); EntityResource::setLink(ctx->link); Handle_GetNetworkState(ctx); } break; case HealthManagerService_Method_QueryHardwareInfo: { SpReqAnsContext::Pointer ctx; ctx.Attach(new SpReqAnsContext(pTransactionContext)); SpBuffer2Object(Buf, ctx->Req); pTransactionContext->GetLinkContext(ctx->link); EntityResource::setLink(ctx->link); Handle_QueryHardwareInfo(ctx); } break; case HealthManagerService_Method_ReadCenterConfigStr: { SpReqAnsContext::Pointer ctx; ctx.Attach(new SpReqAnsContext(pTransactionContext)); SpBuffer2Object(Buf, ctx->Req); pTransactionContext->GetLinkContext(ctx->link); EntityResource::setLink(ctx->link); Handle_ReadCenterConfigStr(ctx); } break; case HealthManagerService_Method_GetAuthErrMsg: { SpReqAnsContext::Pointer ctx; ctx.Attach(new SpReqAnsContext(pTransactionContext)); SpBuffer2Object(Buf, ctx->Req); pTransactionContext->GetLinkContext(ctx->link); EntityResource::setLink(ctx->link); Handle_GetAuthErrMsg(ctx); } break; case HealthManagerService_Method_QueryCenterCfg: { SpReqAnsContext::Pointer ctx; ctx.Attach(new SpReqAnsContext(pTransactionContext)); SpBuffer2Object(Buf, ctx->Req); pTransactionContext->GetLinkContext(ctx->link); EntityResource::setLink(ctx->link); Handle_QueryCenterCfg(ctx); } break; default: assert(0); break; } } else { pTransactionContext->SendAnswer(Error); } } }; /////////////////////////// } // namespace HealthManager #endif // __HEALTHMANAGER_SERVER_G_H