void ConfigFileWriter::writeRouterModelFile(std::string filename, NodeSet& ns) { std::fstream out; std::set<std::string>::iterator it = ns.modelsUsed().begin(); if (it != ns.modelsUsed().end()) { out.open(filename.c_str(), std::fstream::out | std::fstream::trunc); } while (it != ns.modelsUsed().end()) { ParameterMap* parameters = Config::instance().getModelParameterList(*it); const Parameter& model = parameters->getParameter("ROUTER-MODEL"); if (model != Parameter::unknownParameter) { out << model << std::endl; ParameterMap::iterator pit = parameters->begin(); while (pit != parameters->end()) { if (pit->first != "ROUTER-MODEL") out << pit->second << std::endl; pit++; } out << std::endl; } it++; } }
void writePhysicalSection(std::ostream& out, Config& config, NodeSet& ns) { out << "# Physical" << std::endl; NetworkSet& nets = ns.networksUsed(); std::string defaultModel = config.getParameter("VRLINK-DEFAULT-ROUTER-MODEL").value; std::set<std::string> models; NetworkSet::iterator nit = nets.begin(); while (nit != nets.end()) { if ((*nit)->models.size() == 0) { models.insert(defaultModel); } else { models.insert((*nit)->models.begin(), (*nit)->models.end()); } nit++; } if (models.size() == 1) { ParameterMap* parameters = config.getModelParameterList(*models.begin()); if (parameters) { writeParameters(out, "", parameters); } } else if (models.size() > 1) { nit = nets.begin(); while (nit != nets.end()) { Network* n = *nit; ParameterMap* common = n->getCommonParameters(); std::stringstream subnet; subnet << "[" << n->address << "]"; writeParameters(out, subnet.str(), common); std::set<std::string>::iterator mit = n->models.begin(); while (mit != n->models.end()) { ParameterMap* parameters = config.getModelParameterList(*mit); ParameterMap* specfic = *parameters - *common; std::string group = n->getGroup(*mit); if (parameters && !group.empty()) { writeParameters(out, group, specfic); } delete specfic; mit++; } nit++; } } std::set<std::string>::iterator it = ns.modelsUsed().begin(); if (it != ns.modelsUsed().end()) { out << config.getParameter("ROUTER-MODEL-CONFIG-FILE") << std::endl; } }