#pragma once #include #include #include using namespace ofen; struct TransmSet { std::string group; std::string ip{}; std::string comment{}; long port{}; long grp_id{}; }; struct CmdParam { std::string removeValue; std::string appendValue; bool showValue{false}; long use_config{-1}; bool parsed{false}; bool direct_use{false}; bool last_use{false}; bool null_use{false}; }; class CServerConfig { public: CServerConfig(); ~CServerConfig(); public: bool baseInit(); bool read_ini(std::vector& set); long have_ini(const std::vector& set, const std::string& ip, long port); bool write_ini(const std::vector& set); long append_ini(const std::string& ip, long port, const std::string& comment); bool remove_ini(long num); static bool get_ini(const std::vector& set, long num, TransmSet& use); std::string get_config_dir() const; public: bool save_last_use(const std::string& ip, long port); bool get_last_use(std::string& ip, long& port); private: void gen_default_ini(const std::string& path); private: bool init_{false}; CSimpleIniA ini_handle_{}; std::string config_path_{}; std::string config_dir_{}; };