]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Server/tests/server_test.cpp
- Ya anda el Receiver (falta meterlo en el ControlClient).
[z.facultad/75.42/plaqui.git] / Server / tests / server_test.cpp
index f9989b5573bca730c86355351feb8459bd11cbf4..323341318652281ec42297770d8012809cdfd3b5 100644 (file)
@@ -25,6 +25,7 @@
 // $Id$
 //
 
 // $Id$
 //
 
+#include "plaqui/server/connection.h"
 #include "plaqui/server/server.h"
 #include <socket++/sockinet.h>
 #include <iostream>
 #include "plaqui/server/server.h"
 #include <socket++/sockinet.h>
 #include <iostream>
@@ -39,31 +40,53 @@ int main(int argc, char* argv[]) {
        // Termina con mas informacion si hay una excepcion no manejada.
        set_terminate (__gnu_cxx::__verbose_terminate_handler);
 
        // 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.
        Glib::thread_init();
 
        try {
        }
 
        // Inicializa threads.
        Glib::thread_init();
 
        try {
-       // Corre el server.
-       Server server(port);
-       server.run(false);
+               // Corre el server.
+               Server server(filename, port);
+               server.run(false);
+       } catch (const sockerr& e) {
+               cerr << "Socket Error: " << e.operation() << " | serrno = "
+                       << e.serrno() << " | errstr = " << e.errstr() << endl;
+               if (e.io()) {
+                       cerr << "Es: non-blocking and interrupt io recoverable error."
+                               << endl;
+               } else if (e.arg()) {
+                       cerr <<  "Es: incorrect argument supplied. recoverable error."
+                               << endl;
+               } else if (e.op()) {
+                       cerr << "Es: operational error. recovery difficult." << endl;
+               } else if (e.conn()) {
+                       cerr << "Es: connection error." << endl;
+               } else if (e.addr()) {
+                       cerr << "Es: address error." << endl;
+               } else if (e.benign()) {
+                       cerr << "Es: recoverable read/write error like EINTR etc." << endl;
+               }
+       } catch (const exception& e) {
+               cerr << "Error: " << e.what() << endl;
        } catch (const char* e) {
                cerr << "Error: " << e << endl;
        } catch (const char* e) {
                cerr << "Error: " << e << endl;
-       } catch (exception e) {
-               cerr << "Error: " << e.what() << endl;
        } catch (...) {
                cerr << "Error desconocido!" << endl;
        }
        } catch (...) {
                cerr << "Error desconocido!" << endl;
        }