CLashConfig.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #pragma once
  2. #include "IBaseClash.h"
  3. #include <yaml-cpp/yaml.h>
  4. #include "CTool.h"
  5. #include "CProcess.h"
  6. #include "Logger.h"
  7. class CLashConfig : public IBaseClash
  8. {
  9. public:
  10. CLashConfig();
  11. ~CLashConfig(void);
  12. // ͨ¹ý IBaseClash ¼Ì³Ð
  13. virtual BOOL MakeClash() override;
  14. virtual BOOL InitClash() override;
  15. // ͨ¹ý IBaseClash ¼Ì³Ð
  16. virtual BOOL StartClash() override;
  17. virtual BOOL StopClash() override;
  18. private:
  19. YAML::Node buildShadowsocks();
  20. YAML::Node buildtrojan();
  21. YAML::Node buildv2ray();
  22. std::vector<YAML::Node> buildv2rayHost();
  23. YAML::Node builTunConfig();
  24. YAML::Node buildDnsConfig();
  25. std::vector<YAML::Node> buildProxyGroups();
  26. std::vector<YAML::Node> buildRules();
  27. std::vector<YAML::Node> buildruleproviders();
  28. private:
  29. void ThreadFun_process_Config(LPARAM lParam);
  30. void ThreadFun_ProcessMonitor_Config(LPARAM lParam);
  31. /*winrt::fire_and_forget _StartClash();
  32. winrt::Windows::Foundation::IAsyncAction ProcessMonitor();*/
  33. private:
  34. int m_socks_port;
  35. int m_http_port;
  36. int m_c_port;
  37. bool m_is_qut;
  38. CProcess* m_process;
  39. AsynTaskHandle<LPARAM> m_Asyntask;
  40. AsynTaskHandle<LPARAM> m_AsyntaskProcessMonitor;
  41. Logger* m_log;
  42. std::vector<std::string> m_rules;
  43. wil::unique_handle _hEvent;
  44. };