123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- #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<VtmLoaderService_SetTerminalNo_Req, VtmLoaderService_SetTerminalNo_Ans>::Pointer ctx);
- virtual void Handle_NoticeAppReady(SpReqAnsContext<VtmLoaderService_NoticeAppReady_Req, VtmLoaderService_NoticeAppReady_Ans>::Pointer ctx);
- virtual void Handle_CheckDeviceEntity(SpReqAnsContext<VtmLoaderService_CheckDeviceEntity_Req, VtmLoaderService_CheckDeviceEntity_Ans>::Pointer ctx);
- virtual void Handle_SaveTerminalNo(SpReqAnsContext<VtmLoaderService_SaveTerminalNo_Req, VtmLoaderService_SaveTerminalNo_Ans>::Pointer ctx);
- virtual void Handle_DealWithOldEvent(SpReqAnsContext<VtmLoaderService_DealWithOldEvent_Req, VtmLoaderService_DealWithOldEvent_Ans>::Pointer ctx);
- virtual void Handle_QueryLocalInfo(SpReqAnsContext<VtmLoaderService_QueryLocalInfo_Req, VtmLoaderService_QueryLocalInfo_Ans>::Pointer ctx);
- private:
- CVtmLoaderEntity* m_pEntity;
- };
- DWORD thread_testEvent(LPVOID param)
- {
- while (true)
- {
- //LogEvent(SeverityLevelEnum::Severity_Middle, 0x10f00101, "for test event");
- //LogWarn(SeverityLevelEnum::Severity_Middle, ErrorCodeEnum::Error_BlockTimeOut, 0x10f00102, "for test Warn");
- LogError(SeverityLevelEnum::Severity_Middle, ErrorCodeEnum::Error_BlockTimeOut, 0x10f00103, "for test Error");
- Sleep(500);
- }
-
- return 0;
- }
- class CVtmLoaderEntity : public CEntityBase, public ILogListener, public IEntityStateListener
- {
- public:
- CVtmLoaderEntity() :m_SubLogID1(0), m_SubLogID2(0), m_dwBeginTime(0),
- m_strUserID(""), m_strUserName(""), m_strAuthorizer(""), m_strCurRight(""), m_strAuthTime(""), m_bSubsribeMedia(false)
- {
- }
- virtual ~CVtmLoaderEntity() {}
- virtual const char *GetEntityName() const { return "VtmLoader"; }
- virtual bool IsService()const{return true;}
- virtual void OnPreStart(CAutoArray<CSimpleStringA> strArgs,CSmartPointer<ITransactionContext> pTransactionContext);
- virtual void OnPreClose(EntityCloseCauseEnum eCloseCause,CSmartPointer<ITransactionContext> pTransactionContext) ;
- virtual CServerSessionBase *OnNewSession(const char* /*pszRemoteEntityName*/, const char * /*pszParam*/)
- {
- return new VtmLoaderServerSession(this);
- }
- virtual void OnLog(const CAutoArray<CUUID> &SubIDs, const CUUID nLogID,const LogTypeEnum eLogType, const SeverityLevelEnum eLevel,
- const DWORD dwSysError,const DWORD dwUserCode,const DWORD dwEntityInstanceID, const WORD wEntityDevelID,
- const CAutoArray<DWORD> &Param, const char *pszEntityName, const char *pszModuleName,const char *pszMessage, const linkContext &pLinkInfo);
- ErrorCodeEnum UnsubscribeEntitysEvents();
- CSimpleStringA GetCurMaintainer(){ return m_strUserID;}
- void SetTerminalNo(SpReqAnsContext<VtmLoaderService_SetTerminalNo_Req, VtmLoaderService_SetTerminalNo_Ans>::Pointer ctx) { m_FSM.SetTerminalNo(ctx); }
- //void NoticeAppReady(SpReqAnsContext<VtmLoaderService_NoticeAppReady_Req, VtmLoaderService_NoticeAppReady_Ans>::Pointer ctx);
- void CheckDeviceEntity(SpReqAnsContext<VtmLoaderService_CheckDeviceEntity_Req, VtmLoaderService_CheckDeviceEntity_Ans>::Pointer ctx)
- {
- if (!m_bSubsribeMedia)
- {
- GetFunction()->SubscribeLog(m_uuidMediaController, this, Log_Event, Severity_Middle, Error_IgnoreAll, -1, "MediaController");
- m_bSubsribeMedia = true;
- }
- CheckDeviceEntityEvent* pEvt = new CheckDeviceEntityEvent();
- pEvt->ctx = ctx;
- m_FSM.PostEventFIFO(pEvt);
- }
- void SaveTerminalNo(SpReqAnsContext<VtmLoaderService_SaveTerminalNo_Req, VtmLoaderService_SaveTerminalNo_Ans>::Pointer ctx)
- {
- SaveTerminalNoEvent* pEvt = new SaveTerminalNoEvent();
- pEvt->ctx = ctx;
- m_FSM.PostEventFIFO(pEvt);
- }
- void DealWithOldEvent(SpReqAnsContext<VtmLoaderService_DealWithOldEvent_Req, VtmLoaderService_DealWithOldEvent_Ans>::Pointer ctx);
- void QueryLocalInfo(SpReqAnsContext<VtmLoaderService_QueryLocalInfo_Req, VtmLoaderService_QueryLocalInfo_Ans>::Pointer ctx)
- {
- QueryLocalInfoEvent* pEvt = new QueryLocalInfoEvent();
- pEvt->ctx = ctx;
- m_FSM.PostEventFIFO(pEvt);
- }
-
- virtual void OnEntityStateHook(const char* pszEntityName, const char* pszTriggerEntity, EntityStateEnum eState, EntityStateEnum eLastState);
- virtual void OnUserStateHook(const char* pszEntityName, DWORD dwState, DWORD dwLastState) { return; }
- virtual void OnCeateConnection(const char* pszCallerEntity, const char* pszServiceEntity) { return; }
- virtual void OnCloseConnection(const char* pszCallerEntity, const char* pszServiceEntity) { return; }
- void EntityLostProc(CSimpleStringA entityName);
- void SetVideoEntityOK() { m_FSM.SetVideoEntityOK(); }
- /*GifutTest20250314 begin*/
- //void OnStateChanged(AppBootStateEnum oldState, AppBootStateEnum curState, const char* triggerEntity)
- //{
- // LOG_FUNCTION();
- // DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("state changed from %s to %s by %s", SpStrAppBootState(oldState), SpStrAppBootState(curState), triggerEntity);
- //}
- /*GifutTest20250314 end*/
- protected:
- //GUITask m_task;
- CVtmLoaderFSM m_FSM;
- CUUID m_SubLogID1;
- CUUID m_SubLogID2;
- CUUID m_SubLogID3;
- CUUID m_SubLogID4;
- CUUID m_uuidMediaController;
- // 当前维护用户信息
- CSimpleStringA m_strUserID;
- CSimpleStringA m_strUserName;
- CSimpleStringA m_strCurRight;
- CSimpleStringA m_strAuthorizer;
- CSimpleStringA m_strAuthTime;
- DWORD m_dwBeginTime;
- bool m_bSubsribeMedia;
- public:
- //static std::string m_httpToken;
- //IHttpFunc* m_pHttpFunc;
- };
- struct EntityLostProcTask : public ITaskSp
- {
- CVtmLoaderEntity* pEntity;
- CSimpleStringA entityName;
- EntityLostProcTask(CVtmLoaderEntity* entity, CSimpleStringA entityName) : pEntity(entity), entityName(entityName) {}
- void Process()
- {
- pEntity->EntityLostProc(entityName);
- }
- };
|