//----------------------------------------------------------------// bool CSettings::LoadSettings() { std::string fileName = GetConfigFileName(); LOG4CPLUS_INFO(ProviderLog, _T("ConfigurationFile: ") << fileName.c_str()); if (fileName.length() > 0) { IniReader config_reader(fileName); IniReader::Section activ_settings("ACTIV"); config_reader.read_section(activ_settings); activ_settings.get_value("UserID", m_UserID, ""); activ_settings.get_value("Password", m_Password, ""); activ_settings.get_value("ServiceLocationINI", m_ServiceLocationINI, ""); IniReader::Section db_settings("DATABASE"); config_reader.read_section(db_settings); db_settings.get_value("ConnectionString", m_DBConnectionString, ""); m_ACTIVSettings.m_enableUiService = false; m_ACTIVSettings.m_createSystemLog = false; m_ACTIVSettings.m_systemLogMode = AgentApplication::Settings::SYSTEM_LOG_MODE_OFF; m_ACTIVSettings.m_serviceLocationIniFile = m_ServiceLocationINI; return true; } return false; };
void Application::LoadParameters(int argc, char** argv) { std::unordered_map<std::string, std::string> params; for (int i = 1; i < argc; ++i) { std::vector<std::string> tmp_strs = Common::Split(argv[i], '='); if (tmp_strs.size() == 2) { std::string key = Common::RemoveQuotationSymbol(Common::Trim(tmp_strs[0])); std::string value = Common::RemoveQuotationSymbol(Common::Trim(tmp_strs[1])); if (key.size() <= 0) { continue; } params[key] = value; } else { Log::Warning("Unknown parameter in command line: %s", argv[i]); } } // check for alias ParameterAlias::KeyAliasTransform(¶ms); // read parameters from config file if (params.count("config_file") > 0) { TextReader<size_t> config_reader(params["config_file"].c_str(), false); config_reader.ReadAllLines(); if (!config_reader.Lines().empty()) { for (auto& line : config_reader.Lines()) { // remove str after "#" if (line.size() > 0 && std::string::npos != line.find_first_of("#")) { line.erase(line.find_first_of("#")); } line = Common::Trim(line); if (line.size() == 0) { continue; } std::vector<std::string> tmp_strs = Common::Split(line.c_str(), '='); if (tmp_strs.size() == 2) { std::string key = Common::RemoveQuotationSymbol(Common::Trim(tmp_strs[0])); std::string value = Common::RemoveQuotationSymbol(Common::Trim(tmp_strs[1])); if (key.size() <= 0) { continue; } // Command-line has higher priority if (params.count(key) == 0) { params[key] = value; } } else { Log::Warning("Unknown parameter in config file: %s", line.c_str()); } } } else { Log::Warning("Config file %s doesn't exist, will ignore", params["config_file"].c_str()); } } // check for alias again ParameterAlias::KeyAliasTransform(¶ms); // load configs config_.Set(params); Log::Info("Finished loading parameters"); }