mod_vtmloader.h 5.5 KB

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