#pragma once #include "SpBase.h" #include "VtmLoaderFSM.h" //#include "IHttpFunc.h" #include "VtmLoader_server_g.h" using namespace VtmLoader; class CVtmLoaderEntity; class VtmLoaderServerSession : public VtmLoaderService_ServerSessionBase { public: VtmLoaderServerSession(CVtmLoaderEntity* pEntity) :m_pEntity(pEntity) {} virtual ~VtmLoaderServerSession() {} virtual void Handle_SetTerminalNo(SpReqAnsContext::Pointer ctx); virtual void Handle_NoticeAppReady(SpReqAnsContext::Pointer ctx); virtual void Handle_CheckDeviceEntity(SpReqAnsContext::Pointer ctx); virtual void Handle_SaveTerminalNo(SpReqAnsContext::Pointer ctx); private: CVtmLoaderEntity* m_pEntity; }; class CVtmLoaderEntity : public CEntityBase, public ILogListener { public: CVtmLoaderEntity() :m_SubLogID1(0), m_SubLogID2(0), m_dwBeginTime(0), m_strUserID(""), m_strUserName(""), m_strAuthorizer(""), m_strCurRight(""), m_strAuthTime("") { } virtual ~CVtmLoaderEntity() {} virtual const char *GetEntityName() const { return "VtmLoader"; } virtual bool IsService()const{return true;} virtual void OnPreStart(CAutoArray strArgs,CSmartPointer pTransactionContext); virtual void OnPreClose(EntityCloseCauseEnum eCloseCause,CSmartPointer pTransactionContext) ; virtual CServerSessionBase *OnNewSession(const char* /*pszRemoteEntityName*/, const char * /*pszParam*/) { return new VtmLoaderServerSession(this); } virtual void OnLog(const CAutoArray &SubIDs, const CUUID nLogID,const LogTypeEnum eLogType, const SeverityLevelEnum eLevel, const DWORD dwSysError,const DWORD dwUserCode,const DWORD dwEntityInstanceID, const WORD wEntityDevelID, const CAutoArray &Param, const char *pszEntityName, const char *pszModuleName,const char *pszMessage, const linkContext &pLinkInfo); ErrorCodeEnum UnsubscribeEntitysEvents(); CSimpleStringA GetCurMaintainer(){ return m_strUserID;} void SetTerminalNo(SpReqAnsContext::Pointer ctx) { m_FSM.SetTerminalNo(ctx); } //void NoticeAppReady(SpReqAnsContext::Pointer ctx); void CheckDeviceEntity(SpReqAnsContext::Pointer ctx) { CheckDeviceEntityEvent* pEvt = new CheckDeviceEntityEvent(); pEvt->ctx = ctx; m_FSM.PostEventFIFO(pEvt); } void SaveTerminalNo(SpReqAnsContext::Pointer ctx) { SaveTerminalNoEvent* pEvt = new SaveTerminalNoEvent(); pEvt->ctx = ctx; m_FSM.PostEventFIFO(pEvt); } protected: //GUITask m_task; CVtmLoaderFSM m_FSM; CUUID m_SubLogID1; CUUID m_SubLogID2; CUUID m_SubLogID3; CUUID m_SubLogID4; // 当前维护用户信息 CSimpleStringA m_strUserID; CSimpleStringA m_strUserName; CSimpleStringA m_strCurRight; CSimpleStringA m_strAuthorizer; CSimpleStringA m_strAuthTime; DWORD m_dwBeginTime; public: //static std::string m_httpToken; //IHttpFunc* m_pHttpFunc; };