15 #include "iconector.h"
25 void add_pump(const std::string &name);
26 void add_union(const std::string &name);
27 void add_splitter(const std::string &name);
28 void add_conduct(const std::string &name);
29 void add_exclusa(const std::string &name);
30 void add_tank(const std::string &name);
31 void add_drainage(const std::string &name);
33 /** Conecta 2 elementos
35 * Esta funcion conecta el elemanto name1 con el elemento name2.
36 * El parámetro flag define donde se conecta name2 respecto de name1.
37 * Es decir, si flag = IConector::OUT, name2 se conecta a la salida de
39 * \return true si se pudo conectar
41 bool connect(const std::string &name1, const std::string &name2, int flag);
45 /// Tipos de elementos
46 enum {PUMP, UNION, SPLITTER, CONDUCT, EXCLUSA, TANK, DRAINAGE};
48 bool pump_deactivate(const std::string &name);
50 // Los mantengo en listas separadas para ahorrar
51 // CPU y no tener que usar dinamic_cast
52 std::list<Pump *> pump_lst;
53 std::list<Union *> union_lst;
54 std::list<Splitter *> split_lst;
55 std::list<Conduct *> conduct_lst;
56 std::list<Tank *> tank_lst;
57 std::list<Drainage *> drainage_lst;
58 std::list<Exclusa *> exclusa_lst;
60 // Tambien tengo una lista generica!
61 std::list<PlantItem *> items;
64 IConector *find(const std::string &name);
70 #endif // _SIMULADOR_H_