]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Model/src/simulator.cpp
* Se agregan #ifdef DEBUG a los simulate() del modelo, para poder sacar
[z.facultad/75.42/plaqui.git] / Model / src / simulator.cpp
index 2fe6f6ecb586672da5cb106ce0eecb7b7e634d6e..72c59ca61561f2888b6413d106613f680339e0a9 100644 (file)
@@ -10,9 +10,12 @@ Simulator::Simulator(const std::string &filename)
        xmlDocPtr document;
        document = xmlParseFile(filename.c_str());
        if (document == NULL) {
        xmlDocPtr document;
        document = xmlParseFile(filename.c_str());
        if (document == NULL) {
+               is_load_ok = false;
                return;
        }
 
                return;
        }
 
+       is_load_ok = true;
+
        /* bien, el archivo se parseo bien! */
        xmlNodePtr nodo, items;
        nodo = document->children;
        /* bien, el archivo se parseo bien! */
        xmlNodePtr nodo, items;
        nodo = document->children;
@@ -40,17 +43,25 @@ Simulator::Simulator(const std::string &filename)
                // Bien, la planta esta cargada, conectemos todo!!
                do_connections(nodo->children);
        }
                // Bien, la planta esta cargada, conectemos todo!!
                do_connections(nodo->children);
        }
+       xmlFreeDoc(document);
 }
 
 Simulator::~Simulator()
 {
 }
 
 Simulator::~Simulator()
 {
-       // FIXME REMOVER TODOOOOOO
+       std::list<PlantItem *>::iterator i = items.begin();
+       PlantItem *o;
+
+       while (i != items.end()) {
+               o = (*i);
+               items.remove(o);
+               delete o;
+               i = items.begin();
+       }
 }
 
 void Simulator::add_pump(const std::string &name, float max_flow, RGB color)
 {
        Pump *p = new Pump(name);
 }
 
 void Simulator::add_pump(const std::string &name, float max_flow, RGB color)
 {
        Pump *p = new Pump(name);
-       // FIXME no va!!
        p->set_max_flow(max_flow);
        p->set_color(color);
        pump_lst.push_back(p);
        p->set_max_flow(max_flow);
        p->set_color(color);
        pump_lst.push_back(p);
@@ -60,7 +71,6 @@ void Simulator::add_pump(const std::string &name, float max_flow, RGB color)
 void Simulator::add_union(const std::string &name, float max_flow)
 {
        Union *u = new Union(name);
 void Simulator::add_union(const std::string &name, float max_flow)
 {
        Union *u = new Union(name);
-       // FIXME no va!!
        u->set_max_flow(max_flow);
        union_lst.push_back(u);
        items.push_back(u);
        u->set_max_flow(max_flow);
        union_lst.push_back(u);
        items.push_back(u);
@@ -77,8 +87,6 @@ void Simulator::add_splitter(const std::string &name, float max_flow)
 void Simulator::add_conduct(const std::string &name, float flujo)
 {
        Conduct *p = new Conduct(name);
 void Simulator::add_conduct(const std::string &name, float flujo)
 {
        Conduct *p = new Conduct(name);
-       // FIXME no va!!
-       std::cout << flujo << std::endl;
        p->set_max_flow(flujo);
        conduct_lst.push_back(p);
        items.push_back(p);
        p->set_max_flow(flujo);
        conduct_lst.push_back(p);
        items.push_back(p);