]> git.llucax.com Git - z.facultad/75.42/plaqui.git/commitdiff
Se arregla el bug que hacia que se cuelgue el cliente al desconectarse.
authorLeandro Lucarella <llucax@gmail.com>
Thu, 20 Nov 2003 03:38:12 +0000 (03:38 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Thu, 20 Nov 2003 03:38:12 +0000 (03:38 +0000)
Server/include/plaqui/server/controlclient.h
Server/src/controlclient.cpp

index c2e4a2804abdb34585dba689082992beaff621dc..d046c8fa315e487a7029ef469b39b9d32cf1f501 100644 (file)
@@ -67,7 +67,7 @@ namespace Server {
                        SignalErrorReceived error_received;
 
                        /// Receptor del estado de la planta TODO Temporal.
                        SignalErrorReceived error_received;
 
                        /// Receptor del estado de la planta TODO Temporal.
-                       Receiver receiver;
+                       Receiver* receiver;
 
                // Métodos.
 
 
                // Métodos.
 
index 15b576e54801a17cbe22728017f0d4db4650e7da..e744d0d0c8066bf062569c440dea26cbffe46c0e 100644 (file)
@@ -43,7 +43,7 @@ ControlClient::~ControlClient(void) {
                << ": destructor." << endl;
 #endif // DEBUG
        // TODO Temporal: espero que el receiver muera.
                << ": destructor." << endl;
 #endif // DEBUG
        // TODO Temporal: espero que el receiver muera.
-       receiver.finish(true);
+       receiver->finish(true);
 }
 
 ControlClient::ControlClient(const string& _host,
 }
 
 ControlClient::ControlClient(const string& _host,
@@ -57,6 +57,7 @@ ControlClient::ControlClient(const string& _host,
        socket->connect(host.c_str(), port);
        host = socket->localhost();
        port = socket->localport();
        socket->connect(host.c_str(), port);
        host = socket->localhost();
        port = socket->localport();
+       receiver = new Receiver(7528, host);
 }
 
 void ControlClient::real_run(void) {
 }
 
 void ControlClient::real_run(void) {
@@ -73,7 +74,7 @@ void ControlClient::real_run(void) {
        // TODO sacar signal_connected?
        connected();
        // TODO Temporal: el receiver empieza a escuchar.
        // TODO sacar signal_connected?
        connected();
        // TODO Temporal: el receiver empieza a escuchar.
-       receiver.run();
+       receiver->run();
        while (!stop) {
                HTTPResponse response;
                try {
        while (!stop) {
                HTTPResponse response;
                try {
@@ -138,7 +139,7 @@ Receiver::SignalFrameReceived& ControlClient::signal_frame_received(void) {
        // XXX - cuidado, esto puede dar quilombo si no esta protegido por un mutex,
        // aunque no deberia porque la señal no es llamada hasta que no se empice
        // la transmision y la señal se conecta antes de pedir la transmision.
        // XXX - cuidado, esto puede dar quilombo si no esta protegido por un mutex,
        // aunque no deberia porque la señal no es llamada hasta que no se empice
        // la transmision y la señal se conecta antes de pedir la transmision.
-       return receiver.signal_frame_received();
+       return receiver->signal_frame_received();
 }
 
 } // namespace Server
 }
 
 } // namespace Server