mod_chromium.h 3.4 KB

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