/* Compilar : g++ -Wall -o test -I../include *.cpp */
#include "bomb.h"
#include "conduct.h"
+#include "union.h"
#include <unistd.h>
using namespace std;
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;
}