#ifndef __SURVEILLANCERECORDER_SERVER_G_H #define __SURVEILLANCERECORDER_SERVER_G_H #pragma once // This code is generated by spgen tool! #include "SurveillanceRecorder_def_g.h" namespace SurveillanceRecorder { class SurveillanceRecorderService_ServerSessionBase : public CServerSessionBase { public: SurveillanceRecorderService_ServerSessionBase() { } virtual ~SurveillanceRecorderService_ServerSessionBase() { /*nothing to implement*/ } 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 SurveillanceRecorderService_Method_GetContinuRecordInfo: if (dwSignature == SurveillanceRecorderService_MethodSignature_GetContinuRecordInfo) { bOverlap = true; } else { Error = Error_MethodSignatureFailed; } break; case SurveillanceRecorderService_Method_GetContinuRecordState: if (dwSignature == SurveillanceRecorderService_MethodSignature_GetContinuRecordState) { bOverlap = true; } else { Error = Error_MethodSignatureFailed; } break; case SurveillanceRecorderService_Method_GetContinuRecordMode: if (dwSignature == SurveillanceRecorderService_MethodSignature_GetContinuRecordMode) { bOverlap = true; } else { Error = Error_MethodSignatureFailed; } break; case SurveillanceRecorderService_Method_StartEwsCamera: if (dwSignature == SurveillanceRecorderService_MethodSignature_StartEwsCamera) { bOverlap = true; } else { Error = Error_MethodSignatureFailed; } break; case SurveillanceRecorderService_Method_StopEwsCamera: if (dwSignature == SurveillanceRecorderService_MethodSignature_StopEwsCamera) { 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 SurveillanceRecorderService_Method_GetContinuRecordInfo: if (dwSignature != SurveillanceRecorderService_MethodSignature_GetContinuRecordInfo) { Error = Error_MethodSignatureFailed; } break; case SurveillanceRecorderService_Method_GetContinuRecordState: if (dwSignature != SurveillanceRecorderService_MethodSignature_GetContinuRecordState) { Error = Error_MethodSignatureFailed; } break; case SurveillanceRecorderService_Method_GetContinuRecordMode: if (dwSignature != SurveillanceRecorderService_MethodSignature_GetContinuRecordMode) { Error = Error_MethodSignatureFailed; } break; case SurveillanceRecorderService_Method_StartEwsCamera: if (dwSignature != SurveillanceRecorderService_MethodSignature_StartEwsCamera) { Error = Error_MethodSignatureFailed; } break; case SurveillanceRecorderService_Method_StopEwsCamera: if (dwSignature != SurveillanceRecorderService_MethodSignature_StopEwsCamera) { Error = Error_MethodSignatureFailed; } break; default: Error = Error_MethodNotFound; break; } return Error; } virtual void Handle_GetContinuRecordInfo(SpReqAnsContext::Pointer ctx) { /// override by user } virtual void Handle_GetContinuRecordState(SpReqAnsContext::Pointer ctx) { /// override by user } virtual void Handle_GetContinuRecordMode(SpReqAnsContext::Pointer ctx) { /// override by user } virtual void Handle_StartEwsCamera(SpReqAnsContext::Pointer ctx) { /// override by user } virtual void Handle_StopEwsCamera(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 SurveillanceRecorderService_Method_GetContinuRecordInfo: { SpReqAnsContext::Pointer ctx; ctx.Attach(new SpReqAnsContext(pTransactionContext)); SpBuffer2Object(Buf, ctx->Req); Handle_GetContinuRecordInfo(ctx); } break; case SurveillanceRecorderService_Method_GetContinuRecordState: { SpReqAnsContext::Pointer ctx; ctx.Attach(new SpReqAnsContext(pTransactionContext)); SpBuffer2Object(Buf, ctx->Req); Handle_GetContinuRecordState(ctx); } break; case SurveillanceRecorderService_Method_GetContinuRecordMode: { SpReqAnsContext::Pointer ctx; ctx.Attach(new SpReqAnsContext(pTransactionContext)); SpBuffer2Object(Buf, ctx->Req); Handle_GetContinuRecordMode(ctx); } break; case SurveillanceRecorderService_Method_StartEwsCamera: { SpReqAnsContext::Pointer ctx; ctx.Attach(new SpReqAnsContext(pTransactionContext)); SpBuffer2Object(Buf, ctx->Req); Handle_StartEwsCamera(ctx); } break; case SurveillanceRecorderService_Method_StopEwsCamera: { SpReqAnsContext::Pointer ctx; ctx.Attach(new SpReqAnsContext(pTransactionContext)); SpBuffer2Object(Buf, ctx->Req); Handle_StopEwsCamera(ctx); } break; default: assert(0); break; } } else { pTransactionContext->SendAnswer(Error); } } }; /////////////////////////// } // namespace SurveillanceRecorder #endif // __SURVEILLANCERECORDER_SERVER_G_H