]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Model/src/main.cpp
no se que mas puede faltar
[z.facultad/75.42/plaqui.git] / Model / src / main.cpp
index 237e158770bf98af83eee5e10622be36ab783714..01f9ecb402d17fb0a174cc94325d389568766ac0 100644 (file)
@@ -3,6 +3,7 @@
 /* Compilar : g++ -Wall -o test -I../include *.cpp */
 #include "bomb.h"
 #include "conduct.h"
+#include "union.h"
 #include <unistd.h>
 
 using namespace std;
@@ -10,42 +11,70 @@ using namespace PlaQui::Model;
 
 int main(int argc, char *argv[])
 {
-       Bomb *bomba;
+       Bomb *bomba1, *bomba2;
        Conduct *canio1;
        Conduct *canio2;
+       Conduct *salida;
+       Union *union1;
+       
 
-       bomba = new Bomb("bomba");
-       bomba->set_max_flow(3);
+       bomba1 = new Bomb("bomba1");
+       bomba1->set_max_flow(3);
+       bomba2 = new Bomb("bomba2");
+       bomba2->set_max_flow(5);
        canio1 = new Conduct("cond_1");
-       canio1->set_max_flow(10);
+       canio1->set_max_flow(5);
        canio2 = new Conduct("cond_2");
        canio2->set_max_flow(5);
 
-       bomba->connect(canio1, IConector::OUT);
-       canio1->connect(bomba, IConector::IN);
-       canio1->connect(canio2, IConector::OUT);
-       canio2->connect(canio1, IConector::IN);
+       union1 = new Union("union");
+       union1->set_max_flow(5);
+       salida = new Conduct("salida");
+       salida->set_max_flow(10);
+
+       bomba1->connect(canio1, IConector::OUT);
+       canio1->connect(bomba1, IConector::IN);
+       canio1->connect(union1, IConector::OUT);
+
+       bomba2->connect(canio2, IConector::OUT);
+       canio2->connect(bomba2, IConector::IN);
+       canio2->connect(union1, IConector::OUT);
+
+       union1->connect(canio1, IConector::IN);
+       union1->connect(canio2, IConector::IN);
+       union1->connect(salida, IConector::OUT);
+
+       salida->connect(union1, IConector::IN);
 
        int i = 0;
        while (i<10) {
-               bomba->update();
+               bomba1->update();
+               bomba2->update();
                canio1->update();
                canio2->update();
+               salida->update();
+               union1->update();
 
-               bomba->simulate();
+               bomba1->simulate();
+               bomba2->simulate();
                canio1->simulate();
                canio2->simulate();
+               salida->simulate();
+               union1->simulate();
                                        
                sleep(1);
                if (i == 5) {
-                       bomba->deactivate();
+                       bomba1->deactivate();
                }
                i++;
        }
 
-       delete bomba;
+       delete bomba1;
+       delete bomba2;
        delete canio1;
        delete canio2;
+       delete salida;
+       delete union1;
        return 1;
 }