CLashConfig.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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. virtual int GetHttpPort() override;
  19. virtual int GetSocketPort() override;
  20. virtual int GetClasApiPort() override;
  21. public:
  22. std::filesystem::path GetRunConfig();
  23. BOOL SetProxy();
  24. private:
  25. YAML::Node buildShadowsocks(CServerListMode* node);
  26. YAML::Node buildtrojan(CServerListMode* node);
  27. YAML::Node buildv2ray(CServerListMode* node);
  28. std::vector<YAML::Node> buildv2rayHost(CServerListMode* node);
  29. YAML::Node builTunConfig();
  30. YAML::Node buildDnsConfig();
  31. std::vector<YAML::Node> buildProxyGroups();
  32. YAML::Node buildProxyproviders();
  33. std::vector<YAML::Node> buildRules();
  34. std::vector<YAML::Node> buildruleproviders();
  35. private:
  36. void ThreadFun_process_Config(LPARAM lParam);
  37. void ThreadFun_ProcessMonitor_Config(LPARAM lParam);
  38. /*winrt::fire_and_forget _StartClash();
  39. winrt::Windows::Foundation::IAsyncAction ProcessMonitor();*/
  40. private:
  41. int m_socks_port;
  42. int m_http_port;
  43. int m_c_port;
  44. bool m_is_qut;
  45. CProcess* m_process;
  46. AsynTaskHandle<LPARAM> m_Asyntask;
  47. AsynTaskHandle<LPARAM> m_AsyntaskProcessMonitor;
  48. std::vector<std::string> m_rules;
  49. std::filesystem::path m_run_config;
  50. };