Esempio n. 1
0
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++;
    }
}
Esempio n. 2
0
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;
    }
}