#ifndef __CONFIG_PARSER_H__ #define __CONFIG_PARSER_H__ #include #include "./Message/CatalogParser.h" #include "sip_header.h" #include "./Utils/logger.hpp" class ConfigParser { public: static ConfigParser* getInstance(){ static ConfigParser* singleton = nullptr; if (singleton == nullptr){ singleton = new ConfigParser(); } return singleton; } public: ConfigParser(/* args */); ~ConfigParser(); bool init(); ServerInfo getServerCfg(); private: ServerInfo mInfo; }; ConfigParser::ConfigParser(/* args */) { } ConfigParser::~ConfigParser() { } bool ConfigParser::init() { std::ifstream cfgFile("./sip_server_cfg.xml"); if(cfgFile.is_open()) { string strConfig; string str; while(cfgFile >> str) { strConfig += str; } CCatalogParser catPaser; mInfo = catPaser.DecodeServerConfig(strConfig.c_str()); } else { LOG_ERROR("read config file failed!"); return false; } cfgFile.close(); return true; } ServerInfo ConfigParser::getServerCfg() { return mInfo; } #endif