]> git.llucax.com Git - z.facultad/75.42/plaqui.git/commitdiff
- Se levanta una planta por defecto desde un archivo (prueba.xml).
authorLeandro Lucarella <llucax@gmail.com>
Mon, 17 Nov 2003 22:05:51 +0000 (22:05 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Mon, 17 Nov 2003 22:05:51 +0000 (22:05 +0000)
- 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)

Server/include/plaqui/server/server.h
Server/src/plant.cpp
Server/src/server.cpp
Server/tests/prueba.xml [new file with mode: 0644]
Server/tests/server_test.cpp

index 5f2e959deb794bb2cf3fed3cf7a8dc24231db28b..75fbfdaca53014914cf5b728b5abb1144f01ef7d 100644 (file)
@@ -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.
index 49ad53ae60e25b7b878fe491d82deafa4bc7bd6a..c56035cb6cd18aedbbfebc3168bd9a60399463f2 100644 (file)
@@ -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) {
index 8704d696af2645528786b967c20a16a3d7912149..837295fbb071f54ba1753e0dd57283f32d5b8871 100644 (file)
@@ -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<const char*>(
                                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 (file)
index 0000000..c3a4fb5
--- /dev/null
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="iso-8859-1" ?>
+<planta>
+       <tubo nombre="tubo0" id="1">
+               <caudal>3,50</caudal>
+               <conector>
+                       <entrada>codo3</entrada>
+                       <salida>union2</salida>
+               </conector>
+               <orientacion>0</orientacion>
+               <x>96</x>
+               <y>64</y>
+       </tubo>
+       <empalme nombre="union2" id="2">
+               <tipo>union</tipo>
+               <conector>
+                       <entrada>codo10</entrada>
+                       <entrada>exclusa11</entrada>
+                       <salida>union2</salida>
+               </conector>
+               <caudal>10,00</caudal>
+               <orientacion>3</orientacion>
+               <x>96</x>
+               <y>160</y>
+       </empalme>
+       <bomba nombre="bomba2" id="3">
+               <entrega>0,90</entrega>
+               <color>
+                       <rojo>57852</rojo>
+                       <verde>17196</verde>
+                       <azul>17196</azul>
+               </color>
+               <conector>
+                       <salida>codo3</salida>
+               </conector>
+               <orientacion>1</orientacion>
+               <x>160</x>
+               <y>0</y>
+       </bomba>
+       <codo nombre="codo3" id="4">
+               <caudal>17,90</caudal>
+               <conector>
+                       <salida>tubo0</salida>
+                       <entrada>bomba2</entrada>
+               </conector>
+               <orientacion>3</orientacion>
+               <x>96</x>
+               <y>0</y>
+       </codo>
+       <bomba nombre="bomba4" id="5">
+               <entrega>26,00</entrega>
+               <color>
+                       <rojo>0</rojo>
+                       <verde>0</verde>
+                       <azul>0</azul>
+               </color>
+               <conector>
+                       <salida>codo6</salida>
+               </conector>
+               <orientacion>1</orientacion>
+               <x>160</x>
+               <y>352</y>
+       </bomba>
+       <codo nombre="codo6" id="7">
+               <caudal>2,10</caudal>
+               <conector>
+                       <entrada>bomba4</entrada>
+                       <salida>exclusa11</salida>
+               </conector>
+               <orientacion>2</orientacion>
+               <x>96</x>
+               <y>320</y>
+       </codo>
+       <drenaje nombre="drenaje7" id="8">
+               <conector>
+                       <entrada>drenaje7</entrada>
+               </conector>
+               <orientacion>0</orientacion>
+               <x>352</x>
+               <y>288</y>
+       </drenaje>
+       <tanque nombre="tanque8" id="9">
+               <capacidad>40,00</capacidad>
+               <inicial>6,00</inicial>
+               <color>
+                       <rojo>52477</rojo>
+                       <verde>53774</verde>
+                       <azul>16764</azul>
+               </color>
+               <conector>
+                       <entrada>tanque8</entrada>
+                       <salida>tanque8</salida>
+               </conector>
+               <orientacion>0</orientacion>
+               <x>192</x>
+               <y>256</y>
+       </tanque>
+       <tubo nombre="tubo9" id="10">
+               <caudal>0,00</caudal>
+               <conector>
+                       <salida>tubo9</salida>
+                       <salida>tubo9</salida>
+               </conector>
+               <orientacion>1</orientacion>
+               <x>256</x>
+               <y>288</y>
+       </tubo>
+       <codo nombre="codo10" id="11">
+               <caudal>0,00</caudal>
+               <conector>
+                       <salida>codo10</salida>
+                       <salida>codo10</salida>
+               </conector>
+               <orientacion>0</orientacion>
+               <x>160</x>
+               <y>192</y>
+       </codo>
+       <exclusa nombre="exclusa11" id="12">
+               <conector>
+                       <salida>exclusa11</salida>
+                       <salida>exclusa11</salida>
+               </conector>
+               <orientacion>1</orientacion>
+               <estado>1</estado>
+               <x>96</x>
+               <y>256</y>
+       </exclusa>
+</planta>
index 033bb2e892271b0f99e03cdde784f6bf9e8f9a1e..323341318652281ec42297770d8012809cdfd3b5 100644 (file)
@@ -25,6 +25,7 @@
 // $Id$
 //
 
+#include "plaqui/server/connection.h"
 #include "plaqui/server/server.h"
 #include <socket++/sockinet.h>
 #include <iostream>
@@ -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 = "