Beispiel #1
0
//----------------------------------------------------------------//
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;
};
Beispiel #2
0
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(&params);
  // 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(&params);
  // load configs
  config_.Set(params);
  Log::Info("Finished loading parameters");
}