CModTools.h 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #ifndef CHROMIUM_CMODTOOLS_H
  2. #define CHROMIUM_CMODTOOLS_H
  3. #define CHROMIUM_TIMER_ID 0xF001
  4. #include <tuple>
  5. #include <mutex>
  6. #include "guitask/enum.h"
  7. #include <memory>
  8. #include <boost/serialization/singleton.hpp>
  9. using boost::serialization::singleton;
  10. #if (defined _WIN32 || defined _WIN64)
  11. #define CEFCLIENT_NAME "cefclient.exe"
  12. #else
  13. #define CEFCLIENT_NAME "cefclient"
  14. #endif
  15. namespace Chromium{
  16. BETTER_ENUM(ERR_PAGE_REASON, int, CameraConfig, CardStoreIsBusy, MachineTypeError, TerminalManagerKickOut,
  17. TerminalManagerOff, breakdown, disabled, jobuncomplete, ErrNotify, normal)
  18. BETTER_ENUM(PAGE_TYPE, int, CameraConfig, TerminalManager, errPage, Ad, slv, init, TradeManager)
  19. BETTER_ENUM(TradeManageCodeEnum, int, Undefined, Trade, JobUncomplete, Disabled)
  20. BETTER_ENUM(TerminalManageCodeEnum, int, Off, On, KickOut)
  21. class CModTools : public singleton<CModTools>
  22. {
  23. private:
  24. CEntityBase* m_pEntity;
  25. public:
  26. void InitCModTools(CEntityBase* pEntity);
  27. std::pair<ErrorCodeEnum, int> StartChromiumBrowser(ERR_PAGE_REASON reason = ERR_PAGE_REASON::normal, std::tuple<std::string, std::string, std::string, DWORD, DWORD> exParam = {"", "", "", 0, 0});
  28. bool killAllChromium(); //通过taskkill 关闭掉所有的cefclient
  29. bool killChromiumByName(std::string name);
  30. void RestartProxyServer();
  31. TradeManageCodeEnum CheckJobLimited();
  32. private:
  33. std::pair<CSimpleStringA, int> ReadConfig(); //读本地配置,已废弃
  34. std::tuple<CSimpleStringA, CSimpleStringA, CSimpleStringA, CSimpleStringA, CSimpleStringA> ReadCenterConfigStr(CSimpleStringA entityName = "");
  35. std::pair<bool, std::string> getMainUrl();
  36. std::pair<bool, std::string> getAdUrl();
  37. std::pair<bool, std::string> getErrUrl();
  38. std::string generateCefclientCmd(bool isExtend, std::string mainUrl);
  39. std::string generateAdCmd(std::string AdUrl);
  40. std::pair<ErrorCodeEnum, int> openCef(std::string cmdline, bool isGuard = false);
  41. void cefClientGuardian(std::string cmdline);
  42. void openAdPage();
  43. std::pair<bool, std::string> GenerateErrPage(ERR_PAGE_REASON errType, std::tuple<std::string, std::string, std::string, DWORD, DWORD> exParam);
  44. std::string GetSpShellBootTime();
  45. bool isOutsidePad();
  46. void setLimitReason(const char* reason);
  47. int StandardToStamp(const char* str_time, bool dateOnly);
  48. bool CheckTradeRecord();
  49. private:
  50. CSimpleString m_strSite, m_strMachineType;
  51. };
  52. template<class T>
  53. class TimerOutHelper : public ITimerListener
  54. {
  55. public:
  56. typedef void (T::*FuncTimer)(void *pUserdata);
  57. TimerOutHelper(T *p, FuncTimer pTimerFunc, void *pUserData, bool bDeleteSelf = false)
  58. : m_pObject(p), m_pUserData(pUserData), m_pTimer(pTimerFunc), m_bDeleteSelf(bDeleteSelf) {}
  59. virtual void OnTimeout(DWORD dwTimerID)
  60. {
  61. (m_pObject->*m_pTimer)(m_pUserData);
  62. if (m_bDeleteSelf)
  63. delete this;
  64. }
  65. private:
  66. void *m_pUserData;
  67. T *m_pObject;
  68. FuncTimer m_pTimer;
  69. bool m_bDeleteSelf;
  70. };
  71. }
  72. #endif