123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- #ifndef _CHROMIUM_ENTITY_H
- #define _CHROMIUM_ENTITY_H
- #include "Chromium_server_g.h"
- #include "CWebsocketServer.h"
- #include<map>
- #include<string>
- #include<tuple>
- #if (defined _WIN32 || defined _WIN64)
- #include "job.h"
- #include "..\\mod_browser\\IEBrowser_client_g.h"
- #include "..\\mod_browser\\IEBrowser_def_g.h"
- #include "..\\mod_browser\\IEBrowser_msg_g.h"
- #endif
- #include "modVer.h"
- #include "guitask/enum.h"
- #include "../mod_healthmanager/HealthManager_msg_g.h"
- #define SP_MSG_HANDLE_NS_EX(ns, msg, ns_msg, OnMsg) \
- case eMsg_##msg: \
- if (eMsgSig_##msg == dwMessageSignature) { \
- ns_msg t; \
- ErrorCodeEnum Error = SpBuffer2Object(Buffer, t); \
- if (Error == Error_Succeed) \
- OnMsg(pszEntityName, dwMessageId, dwMessageSignature, t); \
- } else { \
- LOG_TRACE("%s signature mismatched!", #msg); \
- } \
- break;
- #pragma once
- namespace Chromium {
- #define BROWSER_TIMER_ID 0xF001
- #define BROWSER_TIMER_INTERVAL 3600000
- class CChromiumEntity : public CEntityBase, public ILogListener, public IBroadcastListener, public ISysVarListener
- {
- public:
- CChromiumEntity();
- virtual ~CChromiumEntity();
- virtual const char* GetEntityName() const { return "Chromium"; }
- const char* GetEntityVersion() const { return MODULE_VERSION_FULL; }
- virtual bool IsService()const { return true; }
- virtual void OnPreStart(CAutoArray<CSimpleStringA> strArgs, CSmartPointer<ITransactionContext> pTransactionContext);
- virtual void OnPreClose(EntityCloseCauseEnum eCloseCause, CSmartPointer<ITransactionContext> pTransactionContext);
- void CefClintNotify();
- bool HasCustomMainUrl() const { return !m_strCustomMainUrl.IsNullOrEmpty(); }
- const char* GetCustomMainUrl() const { return m_strCustomMainUrl; }
- private:
- void OnTaskTimerListener(void* pData);
- #if (defined _WIN32 || defined _WIN64)
- void JobNotify();
- void OnCustomerCmd(const char* pszEntityName, DWORD dwMessageId, DWORD dwMessageSignature, IEBrowser::CustomerCmd& evt);
- #endif
- void generateCefclientTimer();
- void generateBussinessLimitTimer();
- private:
- CSystemStaticInfo m_sysInfo;
- CWebsocketServer* m_pWsServer;
- ITimerListener *m_pTimerListener, * pBusinessLimitTimerListener;//浏览器监控Timer,业务禁用Timer
- int m_iTcpBridgePort;
- std::map<std::string, std::tuple<HANDLE, HANDLE, std::string>> m_cefArr;//open discribe: slv, job Handle, process Handle, cmdline
- HANDLE m_hIOCP;
- HANDLE m_hThreadIOCP;
- CSimpleStringA m_strCustomMainUrl;
- private:
- //subscribe
- CUUID m_uidCameraListener, m_uuidAccessAuth, m_uidBrowserListenser, m_uuidAccessAuthErr;
- 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);
- virtual void OnSysVarEvent(const char* pszKey, const char* pszValue, const char* pszOldValue, const char* pszEntityName);
- void OnTerminalManage(const char* pszEntityName, DWORD dwMessageId, DWORD dwMessageSignature, HealthManager::TerminalManager& evt);//终端锁定罚出
- void OnBusinessLimitTimerListener(void* pData);//每3600s检测业务禁用
- SP_BEGIN_MSG_DISPATCH_MAP(CChromiumEntity)
- #if (defined _WIN32 || defined _WIN64)
- SP_BEGIN_ENTITY_MSG("IEBrowser")
- SP_MSG_HANDLE_NS(IEBrowser, CustomerCmd, OnCustomerCmd)
- SP_END_ENTITY_MSG()
- #endif
- SP_BEGIN_ENTITY_MSG("HealthManager")
- //SP_MSG_HANDLE_NS(HealthManager, TradeManage, OnTradeManage)
- SP_MSG_HANDLE_NS_EX(HealthManager, TerminalManager, HealthManager::TerminalManager, OnTerminalManage)
- SP_END_ENTITY_MSG()
- SP_END_MSG_DISPATCH_MAP()
- };
- }
- #endif
|