mod_vtmloader.h 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. #pragma once
  2. #include "SpBase.h"
  3. #include "VtmLoaderFSM.h"
  4. //#include "IHttpFunc.h"
  5. #include "VtmLoader_server_g.h"
  6. using namespace VtmLoader;
  7. class CVtmLoaderEntity;
  8. class VtmLoaderServerSession : public VtmLoaderService_ServerSessionBase
  9. {
  10. public:
  11. VtmLoaderServerSession(CVtmLoaderEntity* pEntity) :m_pEntity(pEntity) {}
  12. virtual ~VtmLoaderServerSession() {}
  13. virtual void Handle_SetTerminalNo(SpReqAnsContext<VtmLoaderService_SetTerminalNo_Req, VtmLoaderService_SetTerminalNo_Ans>::Pointer ctx);
  14. virtual void Handle_NoticeAppReady(SpReqAnsContext<VtmLoaderService_NoticeAppReady_Req, VtmLoaderService_NoticeAppReady_Ans>::Pointer ctx);
  15. virtual void Handle_CheckDeviceEntity(SpReqAnsContext<VtmLoaderService_CheckDeviceEntity_Req, VtmLoaderService_CheckDeviceEntity_Ans>::Pointer ctx);
  16. virtual void Handle_SaveTerminalNo(SpReqAnsContext<VtmLoaderService_SaveTerminalNo_Req, VtmLoaderService_SaveTerminalNo_Ans>::Pointer ctx);
  17. virtual void Handle_DealWithOldEvent(SpReqAnsContext<VtmLoaderService_DealWithOldEvent_Req, VtmLoaderService_DealWithOldEvent_Ans>::Pointer ctx);
  18. virtual void Handle_QueryLocalInfo(SpReqAnsContext<VtmLoaderService_QueryLocalInfo_Req, VtmLoaderService_QueryLocalInfo_Ans>::Pointer ctx);
  19. private:
  20. CVtmLoaderEntity* m_pEntity;
  21. };
  22. DWORD thread_testEvent(LPVOID param)
  23. {
  24. while (true)
  25. {
  26. //LogEvent(SeverityLevelEnum::Severity_Middle, 0x10f00101, "for test event");
  27. //LogWarn(SeverityLevelEnum::Severity_Middle, ErrorCodeEnum::Error_BlockTimeOut, 0x10f00102, "for test Warn");
  28. LogError(SeverityLevelEnum::Severity_Middle, ErrorCodeEnum::Error_BlockTimeOut, 0x10f00103, "for test Error");
  29. Sleep(500);
  30. }
  31. return 0;
  32. }
  33. class CVtmLoaderEntity : public CEntityBase, public ILogListener, public IEntityStateListener
  34. {
  35. public:
  36. CVtmLoaderEntity() :m_SubLogID1(0), m_SubLogID2(0), m_dwBeginTime(0),
  37. m_strUserID(""), m_strUserName(""), m_strAuthorizer(""), m_strCurRight(""), m_strAuthTime(""), m_bSubsribeMedia(false)
  38. {
  39. }
  40. virtual ~CVtmLoaderEntity() {}
  41. virtual const char *GetEntityName() const { return "VtmLoader"; }
  42. virtual bool IsService()const{return true;}
  43. virtual void OnPreStart(CAutoArray<CSimpleStringA> strArgs,CSmartPointer<ITransactionContext> pTransactionContext);
  44. virtual void OnPreClose(EntityCloseCauseEnum eCloseCause,CSmartPointer<ITransactionContext> pTransactionContext) ;
  45. virtual CServerSessionBase *OnNewSession(const char* /*pszRemoteEntityName*/, const char * /*pszParam*/)
  46. {
  47. return new VtmLoaderServerSession(this);
  48. }
  49. virtual void OnLog(const CAutoArray<CUUID> &SubIDs, const CUUID nLogID,const LogTypeEnum eLogType, const SeverityLevelEnum eLevel,
  50. const DWORD dwSysError,const DWORD dwUserCode,const DWORD dwEntityInstanceID, const WORD wEntityDevelID,
  51. const CAutoArray<DWORD> &Param, const char *pszEntityName, const char *pszModuleName,const char *pszMessage, const linkContext &pLinkInfo);
  52. ErrorCodeEnum UnsubscribeEntitysEvents();
  53. CSimpleStringA GetCurMaintainer(){ return m_strUserID;}
  54. void SetTerminalNo(SpReqAnsContext<VtmLoaderService_SetTerminalNo_Req, VtmLoaderService_SetTerminalNo_Ans>::Pointer ctx) { m_FSM.SetTerminalNo(ctx); }
  55. //void NoticeAppReady(SpReqAnsContext<VtmLoaderService_NoticeAppReady_Req, VtmLoaderService_NoticeAppReady_Ans>::Pointer ctx);
  56. void CheckDeviceEntity(SpReqAnsContext<VtmLoaderService_CheckDeviceEntity_Req, VtmLoaderService_CheckDeviceEntity_Ans>::Pointer ctx)
  57. {
  58. if (!m_bSubsribeMedia)
  59. {
  60. GetFunction()->SubscribeLog(m_uuidMediaController, this, Log_Event, Severity_Middle, Error_IgnoreAll, -1, "MediaController");
  61. m_bSubsribeMedia = true;
  62. }
  63. CheckDeviceEntityEvent* pEvt = new CheckDeviceEntityEvent();
  64. pEvt->ctx = ctx;
  65. m_FSM.PostEventFIFO(pEvt);
  66. }
  67. void SaveTerminalNo(SpReqAnsContext<VtmLoaderService_SaveTerminalNo_Req, VtmLoaderService_SaveTerminalNo_Ans>::Pointer ctx)
  68. {
  69. SaveTerminalNoEvent* pEvt = new SaveTerminalNoEvent();
  70. pEvt->ctx = ctx;
  71. m_FSM.PostEventFIFO(pEvt);
  72. }
  73. void DealWithOldEvent(SpReqAnsContext<VtmLoaderService_DealWithOldEvent_Req, VtmLoaderService_DealWithOldEvent_Ans>::Pointer ctx);
  74. void QueryLocalInfo(SpReqAnsContext<VtmLoaderService_QueryLocalInfo_Req, VtmLoaderService_QueryLocalInfo_Ans>::Pointer ctx)
  75. {
  76. QueryLocalInfoEvent* pEvt = new QueryLocalInfoEvent();
  77. pEvt->ctx = ctx;
  78. m_FSM.PostEventFIFO(pEvt);
  79. }
  80. virtual void OnEntityStateHook(const char* pszEntityName, const char* pszTriggerEntity, EntityStateEnum eState, EntityStateEnum eLastState);
  81. virtual void OnUserStateHook(const char* pszEntityName, DWORD dwState, DWORD dwLastState) { return; }
  82. virtual void OnCeateConnection(const char* pszCallerEntity, const char* pszServiceEntity) { return; }
  83. virtual void OnCloseConnection(const char* pszCallerEntity, const char* pszServiceEntity) { return; }
  84. void EntityLostProc(CSimpleStringA entityName);
  85. void SetVideoEntityOK() { m_FSM.SetVideoEntityOK(); }
  86. /*GifutTest20250314 begin*/
  87. //void OnStateChanged(AppBootStateEnum oldState, AppBootStateEnum curState, const char* triggerEntity)
  88. //{
  89. // LOG_FUNCTION();
  90. // DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("state changed from %s to %s by %s", SpStrAppBootState(oldState), SpStrAppBootState(curState), triggerEntity);
  91. //}
  92. /*GifutTest20250314 end*/
  93. protected:
  94. //GUITask m_task;
  95. CVtmLoaderFSM m_FSM;
  96. CUUID m_SubLogID1;
  97. CUUID m_SubLogID2;
  98. CUUID m_SubLogID3;
  99. CUUID m_SubLogID4;
  100. CUUID m_uuidMediaController;
  101. // 当前维护用户信息
  102. CSimpleStringA m_strUserID;
  103. CSimpleStringA m_strUserName;
  104. CSimpleStringA m_strCurRight;
  105. CSimpleStringA m_strAuthorizer;
  106. CSimpleStringA m_strAuthTime;
  107. DWORD m_dwBeginTime;
  108. bool m_bSubsribeMedia;
  109. public:
  110. //static std::string m_httpToken;
  111. //IHttpFunc* m_pHttpFunc;
  112. };
  113. struct EntityLostProcTask : public ITaskSp
  114. {
  115. CVtmLoaderEntity* pEntity;
  116. CSimpleStringA entityName;
  117. EntityLostProcTask(CVtmLoaderEntity* entity, CSimpleStringA entityName) : pEntity(entity), entityName(entityName) {}
  118. void Process()
  119. {
  120. pEntity->EntityLostProc(entityName);
  121. }
  122. };