| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- #pragma once
- #include <string>
- #include <memory>
- #include <list>
- #include <json/json.h>
- #define CFGPATH "cfg.json"
- struct FsCfg {
- std::string fsIp; // freeSwitch ip
- std::int16_t fsPort; // freeswitch 端口
- std::string fsPwd; // freeswitch 密码
- std::int32_t trunkCount; // 线路数量
- bool operator==(const FsCfg&a) const{
- return this->fsIp == a.fsIp && this->fsPort == a.fsPort &&this->fsPwd == a.fsPwd;
- }
- };
- class CConfig
- {
- public:
- ~CConfig();
- bool load();
- // freeswitch属性
- std::string fsIp() const { return m_fsIp; }
- std::int16_t fsPort() const { return m_fsPort; }
- std::string fsPwd() const { return m_fsPwd; }
- std::list<FsCfg> fs()const { return m_lstFsCfg; }
- void addFs(const std::string&strIP,const std::int16_t&nPort, const std::string&strPwd,const std::int32_t&nTrunkCount);
- // websocket属性
- std::int16_t wsPort()const { return m_wsPort; }
- std::int16_t wssPort()const { return m_wssPort; }
- std::string sslFile()const { return m_sslFilePath; }
- std::string sslPwd()const { return m_sslPwd; }
- // 数据库属性
- std::string dbHost()const { return m_DBhost; }
- std::string dbUser()const { return m_DBusername; }
- std::string dbPwd()const { return m_DBpasswd; }
- std::string dbName()const { return m_DBdatabase; }
- //rabbitmq
- std::string amqHost()const { return m_amqHost; }
- std::int32_t amqPort() const { return m_amqPort; }
- std::string amqUser()const { return m_amqUser; }
- std::string amqPwd()const { return m_amqPwd; }
- std::string amqQueueName()const { return m_amqQueueName; }
- // 任务起止时间
- std::string taskStartTime() const { return m_taskStartTime; }
- std::string taskEndTime() const { return m_taskEndTime; }
- static std::shared_ptr<CConfig> GetInstance() { return pInstance; }
- private:
- CConfig();
- CConfig(const CConfig&) = default;
- CConfig& operator=(const CConfig&) = default;
- bool write();
- private:
- // FreeSWITCH 连接信息
- std::string m_fsIp; // freeSwitch ip
- std::int16_t m_fsPort; // freeswitch 端口
- std::string m_fsPwd; // freeswitch 密码
- std::list<FsCfg> m_lstFsCfg; // 要连接的fs
- // websocket 信息
- std::int16_t m_wsPort; // websocket ws端口
- std::int16_t m_wssPort; // websocket wss端口
- std::string m_sslFilePath; // ssl 证书
- std::string m_sslPwd; // SSL 证书密码
- // 数据库信息
- std::string m_DBhost;
- std::string m_DBusername;
- std::string m_DBpasswd;
- std::string m_DBdatabase;
- // rabbitmq信息
- std::string m_amqHost;
- std::int32_t m_amqPort;
- std::string m_amqUser;
- std::string m_amqPwd;
- std::string m_amqQueueName;
- // 任务起止时间
- std::string m_taskStartTime;
- std::string m_taskEndTime;
- Json::Value root;
- static std::shared_ptr<CConfig> pInstance;
- };
|