From: Leandro Lucarella Date: Mon, 17 Nov 2003 22:05:51 +0000 (+0000) Subject: - Se levanta una planta por defecto desde un archivo (prueba.xml). X-Git-Tag: svn_import~274 X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/commitdiff_plain/dd5a5045d5549015b6500726098cb43d1e1c614c - Se levanta una planta por defecto desde un archivo (prueba.xml). - El server ahora acepta dos parametros (opcionales): planta y puerto. planta: Nombre del archivo XML de la planta (por defecto prueba.xml). puerto: Puerto donde escuchar (por defecto 7522) --- diff --git a/Server/include/plaqui/server/server.h b/Server/include/plaqui/server/server.h index 5f2e959..75fbfda 100644 --- a/Server/include/plaqui/server/server.h +++ b/Server/include/plaqui/server/server.h @@ -129,7 +129,8 @@ namespace Server { * * \param port Puerto en el cual escuchar. */ - Server(int port = 7522); + Server(const std::string& plant_filename, + const Connection::Port& port = 7522); /** * Maneja los comandos recibidos por las conexiones. diff --git a/Server/src/plant.cpp b/Server/src/plant.cpp index 49ad53a..c56035c 100644 --- a/Server/src/plant.cpp +++ b/Server/src/plant.cpp @@ -55,7 +55,7 @@ Plant::Plant(const string& filename): simulator(filename) { cerr << __FILE__ << ": constructor. filename = " << filename << endl; #endif // DEBUG // TODO plant - simulator.add_pump("bomba1"); +/* simulator.add_pump("bomba1"); simulator.add_conduct("c"); simulator.add_conduct("c1"); simulator.add_drainage("d"); @@ -65,7 +65,7 @@ Plant::Plant(const string& filename): simulator(filename) { simulator.connect("c", "tanque", Model::IConector::OUT); simulator.connect("tanque", "c1", Model::IConector::OUT); simulator.connect("c1", "d", Model::IConector::OUT); - +*/ } void Plant::real_run(void) { diff --git a/Server/src/server.cpp b/Server/src/server.cpp index 8704d69..837295f 100644 --- a/Server/src/server.cpp +++ b/Server/src/server.cpp @@ -53,18 +53,19 @@ Server::~Server(void) { } } -Server::Server(int port): TCPServer(port) { +Server::Server(const string& plant_filename, const Connection::Port& port): + TCPServer(port) { #ifdef DEBUG cerr << __FILE__ << ": port = " << port << endl; #endif // DEBUG // FIXME Glib::Mutex::Lock lock(plants_mutex); - plants["prueba"] = new Plant("prueba.xml"); - plants["prueba"]->signal_finished().connect( + plants["default"] = new Plant(plant_filename); + plants["default"]->signal_finished().connect( SigC::bind( SigC::slot_class(*this, &Server::on_plant_finished), - "prueba")); - plants["prueba"]->run(); + "default")); + plants["default"]->run(); } Connection* Server::new_connection( diff --git a/Server/tests/prueba.xml b/Server/tests/prueba.xml new file mode 100644 index 0000000..c3a4fb5 --- /dev/null +++ b/Server/tests/prueba.xml @@ -0,0 +1,127 @@ + + + + 3,50 + + codo3 + union2 + + 0 + 96 + 64 + + + union + + codo10 + exclusa11 + union2 + + 10,00 + 3 + 96 + 160 + + + 0,90 + + 57852 + 17196 + 17196 + + + codo3 + + 1 + 160 + 0 + + + 17,90 + + tubo0 + bomba2 + + 3 + 96 + 0 + + + 26,00 + + 0 + 0 + 0 + + + codo6 + + 1 + 160 + 352 + + + 2,10 + + bomba4 + exclusa11 + + 2 + 96 + 320 + + + + drenaje7 + + 0 + 352 + 288 + + + 40,00 + 6,00 + + 52477 + 53774 + 16764 + + + tanque8 + tanque8 + + 0 + 192 + 256 + + + 0,00 + + tubo9 + tubo9 + + 1 + 256 + 288 + + + 0,00 + + codo10 + codo10 + + 0 + 160 + 192 + + + + exclusa11 + exclusa11 + + 1 + 1 + 96 + 256 + + diff --git a/Server/tests/server_test.cpp b/Server/tests/server_test.cpp index 033bb2e..3233413 100644 --- a/Server/tests/server_test.cpp +++ b/Server/tests/server_test.cpp @@ -25,6 +25,7 @@ // $Id$ // +#include "plaqui/server/connection.h" #include "plaqui/server/server.h" #include #include @@ -39,18 +40,22 @@ int main(int argc, char* argv[]) { // Termina con mas informacion si hay una excepcion no manejada. set_terminate (__gnu_cxx::__verbose_terminate_handler); - // Necesita argumentos. - if (argc != 2) { - cerr << "Faltan argumentos: " << endl; - cerr << "\t" << argv[0] << " port" << endl; - return 1; - } + // Bienvenida. + cout << "PlaQui Server. Modo de uso: " << endl; + cout << "\t" << argv[0] << " [planta] [puerto]" << endl; - // Obtengo puerto. - unsigned port; - { - stringstream str(argv[1]); - str >> port; + // Acepta argumentos. + string filename = "prueba.xml"; + Connection::Port port = 7522; + if (argc > 1) { + // Obtengo nombre del archivo de la planta. + filename = argv[1]; + // Si tiene 2 parĂ¡metros. + if (argc > 2) { + // Obtengo puerto. + stringstream ss(argv[1]); + ss >> port; + } } // Inicializa threads. @@ -58,7 +63,7 @@ int main(int argc, char* argv[]) { try { // Corre el server. - Server server(port); + Server server(filename, port); server.run(false); } catch (const sockerr& e) { cerr << "Socket Error: " << e.operation() << " | serrno = "