mod_chromium.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #ifndef _CHROMIUM_ENTITY_H
  2. #define _CHROMIUM_ENTITY_H
  3. #include "Chromium_server_g.h"
  4. #include "CWebsocketServer.h"
  5. #include<map>
  6. #include<string>
  7. #include<tuple>
  8. #if (defined _WIN32 || defined _WIN64)
  9. #include "job.h"
  10. #include "..\\mod_browser\\IEBrowser_client_g.h"
  11. #include "..\\mod_browser\\IEBrowser_def_g.h"
  12. #include "..\\mod_browser\\IEBrowser_msg_g.h"
  13. #endif
  14. #include "modVer.h"
  15. #include "guitask/enum.h"
  16. #include "../mod_healthmanager/HealthManager_msg_g.h"
  17. #define SP_MSG_HANDLE_NS_EX(ns, msg, ns_msg, OnMsg) \
  18. case eMsg_##msg: \
  19. if (eMsgSig_##msg == dwMessageSignature) { \
  20. ns_msg t; \
  21. ErrorCodeEnum Error = SpBuffer2Object(Buffer, t); \
  22. if (Error == Error_Succeed) \
  23. OnMsg(pszEntityName, dwMessageId, dwMessageSignature, t); \
  24. } else { \
  25. LOG_TRACE("%s signature mismatched!", #msg); \
  26. } \
  27. break;
  28. #pragma once
  29. namespace Chromium {
  30. #define BROWSER_TIMER_ID 0xF001
  31. #define BROWSER_TIMER_INTERVAL 3600000
  32. class CChromiumEntity : public CEntityBase, public ILogListener, public IBroadcastListener, public ISysVarListener
  33. {
  34. public:
  35. CChromiumEntity();
  36. virtual ~CChromiumEntity();
  37. virtual const char* GetEntityName() const { return "Chromium"; }
  38. const char* GetEntityVersion() const { return MODULE_VERSION_FULL; }
  39. virtual bool IsService()const { return true; }
  40. virtual void OnPreStart(CAutoArray<CSimpleStringA> strArgs, CSmartPointer<ITransactionContext> pTransactionContext);
  41. virtual void OnPreClose(EntityCloseCauseEnum eCloseCause, CSmartPointer<ITransactionContext> pTransactionContext);
  42. void CefClintNotify();
  43. bool HasCustomMainUrl() const { return !m_strCustomMainUrl.IsNullOrEmpty(); }
  44. const char* GetCustomMainUrl() const { return m_strCustomMainUrl; }
  45. private:
  46. void OnTaskTimerListener(void* pData);
  47. #if (defined _WIN32 || defined _WIN64)
  48. void JobNotify();
  49. void OnCustomerCmd(const char* pszEntityName, DWORD dwMessageId, DWORD dwMessageSignature, IEBrowser::CustomerCmd& evt);
  50. #endif
  51. void generateCefclientTimer();
  52. void generateBussinessLimitTimer();
  53. private:
  54. CSystemStaticInfo m_sysInfo;
  55. CWebsocketServer* m_pWsServer;
  56. ITimerListener *m_pTimerListener, * pBusinessLimitTimerListener;//浏览器监控Timer,业务禁用Timer
  57. int m_iTcpBridgePort;
  58. std::map<std::string, std::tuple<HANDLE, HANDLE, std::string>> m_cefArr;//open discribe: slv, job Handle, process Handle, cmdline
  59. HANDLE m_hIOCP;
  60. HANDLE m_hThreadIOCP;
  61. CSimpleStringA m_strCustomMainUrl;
  62. private:
  63. //subscribe
  64. CUUID m_uidCameraListener, m_uuidAccessAuth, m_uidBrowserListenser, m_uuidAccessAuthErr;
  65. virtual void OnLog(const CAutoArray<CUUID>& SubIDs, const CUUID nLogID, const LogTypeEnum eLogType, const SeverityLevelEnum eLevel,
  66. const DWORD dwSysError, const DWORD dwUserCode, const DWORD dwEntityInstanceID, const WORD wEntityDevelID,
  67. const CAutoArray<DWORD>& Param, const char* pszEntityName, const char* pszModuleName, const char* pszMessage);
  68. virtual void OnSysVarEvent(const char* pszKey, const char* pszValue, const char* pszOldValue, const char* pszEntityName);
  69. void OnTerminalManage(const char* pszEntityName, DWORD dwMessageId, DWORD dwMessageSignature, HealthManager::TerminalManager& evt);//终端锁定罚出
  70. void OnBusinessLimitTimerListener(void* pData);//每3600s检测业务禁用
  71. SP_BEGIN_MSG_DISPATCH_MAP(CChromiumEntity)
  72. #if (defined _WIN32 || defined _WIN64)
  73. SP_BEGIN_ENTITY_MSG("IEBrowser")
  74. SP_MSG_HANDLE_NS(IEBrowser, CustomerCmd, OnCustomerCmd)
  75. SP_END_ENTITY_MSG()
  76. #endif
  77. SP_BEGIN_ENTITY_MSG("HealthManager")
  78. //SP_MSG_HANDLE_NS(HealthManager, TradeManage, OnTradeManage)
  79. SP_MSG_HANDLE_NS_EX(HealthManager, TerminalManager, HealthManager::TerminalManager, OnTerminalManage)
  80. SP_END_ENTITY_MSG()
  81. SP_END_MSG_DISPATCH_MAP()
  82. };
  83. }
  84. #endif